基于lcd1602的简易秒表的设计与实现

基于lcd1602的简易秒表的设计与实现

ID:32480691

大小:405.60 KB

页数:37页

时间:2019-02-07

基于lcd1602的简易秒表的设计与实现_第1页
基于lcd1602的简易秒表的设计与实现_第2页
基于lcd1602的简易秒表的设计与实现_第3页
基于lcd1602的简易秒表的设计与实现_第4页
基于lcd1602的简易秒表的设计与实现_第5页
资源描述:

《基于lcd1602的简易秒表的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、...数字电路与逻辑设计实验报告学院:电子工程学院班级:2014211212姓名:学号:班内序号:WORD格式整理...一、设计课题的任务要求简易秒表的设计与实现设计制作一个计时精度为百分之一秒的计时秒表基本要求:1.用LCD1602液晶屏显示计时;2.秒表计时长度为23小时59分59.99秒;3.用BTN0作为启动/停止开关;4.用BTN1作为复位开关,在任何情况下,只要按下复位开关,秒表都要无条件执行清零操作。提高要求:1.增加定时器功能,可根据用户设定的时间进行倒计时,时间到0后蜂鸣器报警提示;2.自拟其他功能。二、系统设计(设计思路、总体框图、分块设计)1.设

2、计思路:①分别设计6进制计数器、10进制计数器和24进制计数器用于秒表计时部分。具体来说:将两个10进制计数器级联分别作为秒表的十分秒位(最小单位为0.1秒)和百分秒位(最小单位为0.01秒);将一个10进制计数器和6进制计数器级联,分别作为秒表秒钟部分的个位(最小单位为1秒)和十位(最小单位为10秒);再将一个10进制计数器和6进制计数器级联,分别作为秒表分钟部分的个位(最小单位为1分钟)和十位(最小单位为10分钟);将24进制计数器作为秒表小时部分,其中低位输出作为秒表小时部分的个位(最小单位为1小时),高位输出作为秒表小时部分的十位(最小单位为10小时)。最后把

3、秒表百分秒、十分秒部分、秒钟部分、分钟部分、小时部分这四部分级联起来便构成了简易数字秒表的计时部分。②将各个计数器部分的输出信号通过译码模块,变成LCD1602液晶屏能够读取并从而显示相关字符的8位二进制数据。再定义一个存储器ram,存储各个计数器部分的输出信号经过译码部分之后得到的数据,然后将这个存储器ram代表的数据在LCD1602液晶屏上显示。③考虑到秒表的最小计时长度为0.01秒(频率为100HZ),如果系统时钟设置为50MHZ,则需要500000分频;实验时发现LCD1602液晶屏的时钟在1KHZ时,显示效果较好,故需要在系统时钟为50MHZ的基础上进行50

4、000分频。④考虑到基本要求中需要用BTN0作为启动/停止开关,用BTN1作为复位开关,所以需要设计相应的按键防抖电路,这里我采用的是计数型防抖。2.总体框图:WORD格式整理...图1系统结构框图1.分块设计:系统共通过9个模块实现,分别是:500000分频模块fpq50000分频模块fpq16进制计数器模块cnt610进制计数器模块cnt1024进制计数器模块cnt24译码模块yimaLCD1602显示模块LCD1602BTN0启动/停止开关消抖模块xiaodouBTN1复位开关消抖模块fuweixiaodou具体设计如下:①500000分频模块fpq输入端口:c

5、lk:instd_logic;输出端口:clkout:outstd_logic;生成符号:设计思路:利用计数法实现分频主要代码:(完整代码请见源程序)signalclktmp:std_logic;signaltmp:integerrange0to249999;beginprocess(clk)beginifclk'eventandclk='1'theniftmp=249999then--500000分频WORD格式整理...tmp<=0;clktmp<=notclktmp;elsetmp<=tmp+1;endif;endif;endprocess;clkout<=cl

6、ktmp;②50000分频模块fpq1:输入端口:clk:instd_logic;输出端口:clkout:outstd_logic;生成符号:设计思路:利用计数法实现分频主要代码:(完整代码请见源程序)signalclktmp:std_logic;signaltmp:integerrange0to24999;beginprocess(clk)beginifclk'eventandclk='1'theniftmp=24999then--50000分频tmp<=0;clktmp<=notclktmp;elsetmp<=tmp+1;endif;endif;endproces

7、s;clkout<=clktmp;③6进制计数器模块cnt6:输入端口:reset,en,clk:INSTD_LOGIC;输出端口:carry:OUTSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);生成符号:WORD格式整理...设计思路:正常的计数状态是0->1->2->3->4->5->0->1……;当计数到5时,进位信号变为‘1’;否则状态自增,进位信号保持在‘0’主要代码:(完整代码请见源程序)SIGNALqs:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALca:STD_LOGIC;BE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。