基于LCD1602的简易秒表的设计与实现.doc 立即下载
2024-08-11
约3.1万字
约30页
0
149KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

基于LCD1602的简易秒表的设计与实现.doc

基于LCD1602的简易秒表的设计与实现.doc

预览

免费试读已结束,剩余 25 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开


第页共NUMPAGES30页

2010211123班许晨雪10210702电子电路综合设计实验
数字电路与逻辑设计
实验报告
学院:电子工程学院
班级:2014211212
姓名:
学号:
班内序号:设计课题的任务要求
简易秒表的设计与实现
设计制作一个计时精度为百分之一秒的计时秒表
基本要求:
用LCD1602液晶屏显示计时;
秒表计时长度为23小时59分59。99秒;
用BTN0作为启动/停止开关;
用BTN1作为复位开关,在任何情况下,只要按下复位开关,秒表都要无条件执行清零操作。
提高要求:
1.增加定时器功能,可根据用户设定的时间进行倒计时,时间到0后蜂鸣器报警提示;
2。自拟其他功能。
系统设计(设计思路、总体框图、分块设计)
设计思路:
①分别设计6进制计数器、10进制计数器和24进制计数器用于秒表计时部分。具体来说:将两个10进制计数器级联分别作为秒表的十分秒位(最小单位为0。1秒)和百分秒位(最小单位为0.01秒);将一个10进制计数器和6进制计数器级联,分别作为秒表秒钟部分的个位(最小单位为1秒)和十位(最小单位为10秒);再将一个10进制计数器和6进制计数器级联,分别作为秒表分钟部分的个位(最小单位为1分钟)和十位(最小单位为10分钟);将24进制计数器作为秒表小时部分,其中低位输出作为秒表小时部分的个位(最小单位为1小时),高位输出作为秒表小时部分的十位(最小单位为10小时)。最后把秒表百分秒、十分秒部分、秒钟部分、分钟部分、小时部分这四部分级联起来便构成了简易数字秒表的计时部分。
②将各个计数器部分的输出信号通过译码模块,变成LCD1602液晶屏能够读取并从而显示相关字符的8位二进制数据。再定义一个存储器ram,存储各个计数器部分的输出信号经过译码部分之后得到的数据,然后将这个存储器ram代表的数据在LCD1602液晶屏上显示。
③考虑到秒表的最小计时长度为0。01秒(频率为100HZ),如果系统时钟设置为50MHZ,则需要500000分频;实验时发现LCD1602液晶屏的时钟在1KHZ时,显示效果较好,故需要在系统时钟为50MHZ的基础上进行50000分频。
④考虑到基本要求中需要用BTN0作为启动/停止开关,用BTN1作为复位开关,所以需要设计相应的按键防抖电路,这里我采用的是计数型防抖。
总体框图:
图1系统结构框图
分块设计:
系统共通过9个模块实现,分别是:
500000分频模块fpq
50000分频模块fpq1
6进制计数器模块cnt6
10进制计数器模块cnt10
24进制计数器模块cnt24
译码模块yima
LCD1602显示模块LCD1602
BTN0启动/停止开关消抖模块xiaodou
BTN1复位开关消抖模块fuweixiaodou
具体设计如下:
①500000分频模块fpq
输入端口:clk:instd_logic;
输出端口:clkout:outstd_logic;
生成符号:
设计思路:利用计数法实现分频
主要代码:(完整代码请见源程序)
signalclktmp:std_logic;
signaltmp:integerrange0to249999;
begin
process(clk)
begin
	ifclk’eventandclk=’1’then
	iftmp=249999then——500000分频
	tmp<=0;clktmp〈=notclktmp;
	else
	tmp〈=tmp+1;
	endif;
	endif;
endprocess;
clkout〈=clktmp;
②50000分频模块fpq1:
输入端口:clk:instd_logic;
输出端口:clkout:outstd_logic;
生成符号:
设计思路:利用计数法实现分频
主要代码:(完整代码请见源程序)
signalclktmp:std_logic;
signaltmp:integerrange0to24999;
begin
process(clk)
begin
	ifclk’eventandclk=’1’then
	iftmp=24999then——50000分频
	tmp<=0;clktmp〈=notclktmp;
	else
	tmp〈=tmp+1;
	endif;
	endif;
endprocess;
clkout〈=clktmp;
③6进制计数器模块cnt6:
输入端口:reset,en,clk:INSTD_LOGIC;
输出端口:carry:OUTSTD_LOGIC;
q:OUTSTD_LOGIC_VECTOR(3DOWNTO0);
生成符号:
设计思路:正常的计数状态是0—〉1-〉2—>3-〉4—>5-〉0—〉1……;
当计数到5时,进位信号变
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

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

文档大小:149KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用