单片机课设 059s计时器Word格式.docx
- 文档编号:20701465
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:12
- 大小:186.83KB
单片机课设 059s计时器Word格式.docx
《单片机课设 059s计时器Word格式.docx》由会员分享,可在线阅读,更多相关《单片机课设 059s计时器Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
由于秒表计时器主要的功能有启动、暂停和清零(复位)。
秒表计时器按启动键后每一秒计数一次,当计数超过59次时返回到0从新计时;
当按暂停键后系统停止计时秒表显示当前的计数次数,当再次按下启动键时在原来的计数基础上系统恢复计时;
在计数过程中当按下复位键后,系统显示的秒数清零。
通常还是用石英晶体振荡器电路构成整个秒表的结构电路。
利用proteus系统仿真软件对0-59秒计时器系统进行模拟,同时用相应的编程软件对编写的系统程序进行检验,以检验设计方案和程序的准确性,快速性和实用性。
二、设计目的
1)掌握51系列单片机的基本硬件结构及工作原理;
2)掌握51系列单片机的汇编语言及基本程序设计方法;
3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。
4)学会利用单片机定时器中断和定时器计数方式实现秒定时。
5)通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。
三、设计要求及功能分析
该作品是基于AT89S52单片机为核心;
可实现的功能:
设计要求:
1)实现0-59秒计时,显示时间位一秒。
2)具有开始,暂停和复位功能。
1开始计时:
利用外部中断0与定时中断0进行开始功能与计
功能。
2暂停计时:
利用外部中断0关闭定时实现暂停功能。
3硬件复位:
利用外部中断1实现定时实现清零功能。
用AT98C52单片机做一个最小系统板。
秒表的显示用三位数码管显示,秒表的秒计数和循环通过程序控制单片机的输出来显示在数码管上。
使用外部中断0、1,用于控制启动和清零。
显示精度位0.1秒。
当第一次按K1时系统启动开始计时,当第二次按下K1时系统暂停,当再次按下K1后系统从新开始计时;
当计时过程中按下K键后系统计时清零。
四、系统方案设计
方案一:
采用两位数码管作为显示器,同时采用3个开关作为开启,暂停和清零键。
采用单片机定时器中断技术实现开启和暂停功能,而对于清零键用电容的充电与放电特性实现硬件复位。
方案二:
采用3位数码管作为显示器,采用2个开关作为开启,暂停和清零键。
利用单片机定时器的中断技术实现这些功能。
其中开启和暂停公用一个开关键。
通过对两种方案的比较我们采用了方案二,因为方案二的精确度高设计简单可靠性高。
五.系统框图
单片机系统
数码管显示
功能系统:
开始,暂停
复位
设计所需原件:
序号
名称
数量
备注
1
单片机AT89C51
2
1位共阳数码管
3
电阻10K
4
电容30pf
6
单片机底座
8
极性电容电容10uf
9
按键开关
10
晶振12M
采用码管的结构图
电路原理仿真图
硬件连线按上图所示连接,该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片AT89C51中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能和“暂停”按键功能;
将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能.;
定时器T0作为每秒加1的定时器。
其中“开始”K1按键按下一次(由上向下拨)时开始计时,当再次按下K1按键时,计时器计数暂停;
“清零”K2按键按下一次时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
七、程序框
1、主程序流程图2、加一子程序流程图
3、INT0中断子程序
4、数码显示流程图5、定时器T0子程序
八、实验程序
;
设计选题:
秒表系统设计
描述:
8位LED数码显示"
秒表"
显示时间为00~59秒,每秒自动加1,
一个"
开始、暂停"
键,一个"
复位"
键。
调用子程序:
暂停键子程序,计时键子程序,清0键子程序,
显示子程序,定时子程序
;
所用特殊寄存器:
寄存器A,寄存器C
所用中断:
外部中断INT0和INT1,定时器T0和定时器T0。
程序仿真模拟
程序
ORG0000H
AJMPMAIN
ORG0003H
AJMPX0_INT
ORG000BH
AJMPT0_INT
ORG0013H
AJMPX1_INT
MAIN:
MOVTMOD,#01H;
T0定时方式1
MOVTH0,#(65536-50000)/256;
50ms@12MHz
MOVTL0,#(65536-50000)MOD256;
SETBTR0
SETBET0;
开启定时中断
SETBEX0
SETBEX1
SETBEA;
开中断
MOVR1,#0;
0~59秒计数
MOVR2,#0;
0.1秒数
MOVR7,#1;
50ms计数
MOVP0,#0C0H;
显示00.0
MOVP2,#0C0H
MOVP1,#0C0H
LOOP:
SJMPLOOP
DELAY:
;
延时子程序.
MOVR4,#0
DJNZR4,$
RET
X0_INT:
启动/停止
CPLF0
RETI
X1_INT:
清零
MOVR1,#0
MOVP0,#0C0H
MOVP1,#0C0H
T0_INT:
50ms中断执行一次.
DJNZR7,T0_END;
中断不到20次.
MOVR7,#2;
#20
JNBF0,T0_END
MOVA,R2
ADDA,#1
DAA
ANLA,#0FH
MOVR2,A
JNZdisp
MOVA,R1
DAA
MOVR1,A
disp:
MOVA,R2
ANLA,#0FH
MOVCA,@A+DPTR;
查出段码
MOVp1,a;
显示0.1秒
MOVDPTR,#TAB
MOVP2,A;
显示个位
SWAPA
MOVB,A
CLRC
SUBBA,#06H
JZX1_INT;
寄存器A与立即数06H相等转移
MOVA,B
MOVP0,A;
显示十位
T0_END:
TAB:
DB0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H
END
九、课程设计心得体会
认真审题,看懂题目的要求!
选择适当的课题,不益太简单或者太难。
做到既能把课题完成又能锻炼自己的能力!
根据课题要求,复习相关的知识,查询相关的资料。
1、根据实验条件,找到适合的方案,找到需要的元器件及工具,准备实验。
2、根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。
然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。
3、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。
4、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。
5、该实验的程序可以参考DVCC系列单片机微机仿真实验系统实验指导书中的串并转换实验,也可自己根据自己熟悉的方法来编程。
6、在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。
7、这次的单片机课程设计重点是理论与实际的相结合。
不再只读书了。
8、该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。
十、参考文献
1、DVCC系列单片机微机仿真实验系统实验指导书
2、苏家健等编的《单片机原理及应用技术》高等教育出版社2004年11月
3、张义和《例说8051》人民邮电出版社2010年1月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课设 059s计时器 单片机 059 计时器