ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:340.89KB ,
资源ID:19474685      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19474685.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(根据LCD1602的简单秒表的设计与实现Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

根据LCD1602的简单秒表的设计与实现Word文件下载.docx

1、BTN0启动/停止开关消抖模块 xiaodouBTN1复位开关消抖模块 fuweixiaodou具体设计如下:500000分频模块fpq 输入端口:clk : in std_logic; 输出端口:clkout : out std_logic; 生成符号: 设计思路:利用计数法实现分频 主要代码:(完整代码请见源程序)signal clktmp : std_logic;signal tmp : integer range 0 to 249999;begin process (clk) begin if clkevent and clk=1 then if tmp=249999 then -50

2、0000分频 tmp=0; clktmp=not clktmp; else tmp=tmp+1; end if; end if; end process; clkout1-2-3-4-5-0-1; 当计数到5时,进位信号变为1;否则状态自增,进位信号保持在0 SIGNAL qs :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL ca :STD_LOGIC;BEGIN PROCESS(clk) IF(reset=)THEN qs=0000; ELSIF(clkEVENT AND clk=)THEN IF(en=0) THEN IF(qs=0101) THEN -计数到5

3、 qs= ca= ELSE=qs+1; END IF; END IF; END PROCESS; PROCESS(ca,en) BEGIN q=qs; carry7-8-9-1 当计数到9时,进位信号变为1;1001) THEN -计数到9 PROCESS(ca)24进制计数器模块cnt24: 输入端口en,Reset,clk: in STD_LOGIC; 输出端口 carry: out STD_LOGIC;qa: out STD_LOGIC_VECTOR(3 DOWNTO 0);qb:低位qa状态变化: 高位qb状态变化: 当低位qa计数到9时,qb自增,进位信号保持在0 当低位qa为3且高

4、位qb为2时,进位信号变为1, 同时qa变为0、qb变为0主要代码:process(clk,Reset,en)variable tma: STD_LOGIC_VECTOR(3 DOWNTO 0);variable tmb:If Reset = then tma: tmb: else if clk-当BTN0键没有第一次按下时,正常计数 if tma=tmb:=tmb+1; elsif tmb=0010 and tma=0011 then -计数到23 tma: else tma:=tma+1; end if;qa=tma;qb=tmb;carryend process;译码模块yima:car

5、ry:data: in std_logic_vector(3 downto 0); dataout: out std_logic_vector(7 downto 0); 设计思路: 根据输入信号的不同,使用case语句进行不同的译码操作即可。具体来说: (四位二进制)译为30(八位二进制)31232333434535636737838939其他译为20 signal dis:std_logic_vector(7 downto 0); process(data) if(carry=) then disdis00100000-其他译为 end case;dataout=dis;LCD1602显示模

6、块LCD1602: 输入端口:YIMA_DATA1: in std_logic_vector(7 downto 0); -译码数据信号1 YIMA_DATA2: -译码数据信号2 YIMA_DATA3: -译码数据信号3 YIMA_DATA4: -译码数据信号4 YIMA_DATA5: -译码数据信号5 YIMA_DATA6: -译码数据信号6 YIMA_DATA7: -译码数据信号7 YIMA_DATA8: -译码数据信号8LCD_Clk :-状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间 carry : LCD_RS : -寄存器选择信号 LCD_RW : -液晶读

7、写信号 LCD_EN : -液晶时钟信号 LCD_Data : out std_logic_vector(7 downto 0); -液晶数据信号 设计思路: 主要代码: (完整代码请见源程序)type ram is array(0 to 10) of std_logic_vector(7 downto 0);signal ram1:ram; LCD_EN = LCD_Clk ; LCD_RW = ; ram1(0)=YIMA_DATA8;-译码数据信号8,秒表小时部分十位 ram1(1)=YIMA_DATA7;-译码数据信号7,秒表小时部分个位 ram1(2)=x3a -显示冒号: ram1

8、(3)=YIMA_DATA6;-译码数据信号6,秒表分钟部分十位 ram1(4)=YIMA_DATA5;-译码数据信号5,秒表分钟部分个位 ram1(5) ram1(6)=YIMA_DATA4;-译码数据信号4,秒表秒钟部分十位 ram1(7)=YIMA_DATA3;-译码数据信号3,秒表秒钟部分个位 ram1(8)2e -显示小数点. ram1(9)=YIMA_DATA2;-译码数据信号2,秒表十分秒位 ram1(10)LCD_RSlcd_data00001100-0x0Cwhen 2 =00000001-0x01 when 3 =00000110-0x06- when 4 =1000000

9、0-0x80-display,0x00+0x80-data display-when 5=10100000-空格 when 6=when 7=when 8=ram1(0);-秒表小时部分十位 when 9=ram1(1);-秒表小时部分个位 when 10=ram1(2);-冒号:when 11=ram1(3);-秒表分钟部分十位 when 12=ram1(4);-秒表分钟部分个位 when 13=ram1(5);when 14=ram1(6);-秒表秒钟部分十位 when 15=ram1(7);-秒表秒钟部分个位 when 16=ram1(8);-小数点. when 17=ram1(9);-

10、秒表十分秒位 when 18=ram1(10);-秒表百分秒位 when 19=-空格 when 20=-空格 -when 21=11000000-设定显示的位置在40H+80H,when 22=when 23=when 24=-空格when 25=when 26=when 27=when 28=when 29=when 30=when 31=when 32=when 33=when 34=when 35=when 36= when 37=BTN0启动/停止开关消抖模块xiaodou:in std_logic; key_en: 输出端口: en_out:out std_logic;采用计数型防

11、抖当key_en第一次为时,en_out延迟一段时间后变为, 并且en_out就此保持在高电平; 直到key_en第二次为。 signal cnt:integer range 0 to 3; -采用计数型防抖 signal en,en_tmp:std_logic; p0:process(clk)event and clk = if key_en = if cnt = 3 then en else cnt=cnt+1;en end if; else cnt end process p0; p1:process(en) if enevent and en= en_tmp=not en_tmp; en_out=en_tmp; end process p1;BTN1复位开关消抖模块fuweixiaodou: fuwei:fuwei_out: out std_logic;当fuwei为时,fuwei_out延迟一段时间后变为 然后fuwei_o

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1