单片机课程设计倒计时秒表.docx
- 文档编号:27067692
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:19
- 大小:298.27KB
单片机课程设计倒计时秒表.docx
《单片机课程设计倒计时秒表.docx》由会员分享,可在线阅读,更多相关《单片机课程设计倒计时秒表.docx(19页珍藏版)》请在冰豆网上搜索。
单片机课程设计倒计时秒表
一、设计目的
此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。
通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本寧:
握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。
本次设汁注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。
本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。
掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。
提高学生在单片机应用方面的实践技能和科学作风;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。
用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。
通过本次课程设计,应加强培养如下能力:
⑴加强自身独立的动手能力和思考解决问题的能九提高创造能力;
(2)学会使用软件Proteus画原理图和仿真调试。
(3)学会基本焊接电路板的技能
通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
二、设计要求
1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等:
2、可以自111设定倒计时时间(10s、20s、30s・・・),并进行倒计时;
3、显示方式自选;
4、任选一款51单片机;
5、扩展功能:
在秒表的基础上增加时钟功能,倒汁时完成时加入报警单元,如声音、灯光等。
三、总体设计
3.1总体框图
本硬件设计总共包括五部分电路:
显示电路、振荡电路、复位电路、报警电路、按键电路。
除了单片机工作必须的振荡电路,复位电路外,该设计增加了报警电路用来提示倒计时完成,显示电路用来显示倒汁时,按键电路用来设定倒计时间以及控制开始暂停。
总体设计框图如图3.1所示。
图1总体框图
3.2工作原理
以AT89S51单片机为核心元件,利用两位7段共阳极数码管作为显示器件。
在此设计中共接入2个两位一体7段共阳LED数码管,来显示实时数字,其中1个用于显示十位,1个用于显示个位,通过查表指令分别动态显示个位和十位。
2个LED数码管显示范W可达到0-99。
按下开始键开始计时,按下倒计时键开始设定倒计时时间,再按开始键开始倒计时。
利用中断实现记录,利用单片机的外部中断0和外部中断1来实现记录和显示,把记录处理和显示处理做成分别做成外部中断0和外部中断1的中断服务程序,通过中断服务程序处理不同的动作。
利用TO做一个1秒的中断,从而实现倒计时。
另外通过数区来记录记录值。
通过显示子程序来显示当前倒计时和记录值。
3.3主程序框图
图2主程序流程图
本程序采用定时器T0产生1秒定时来实现秒表的倒计时,采用外部中断0来记录不同的记录值,通过外部中断1来显示已经记录的记录值。
在主程序中初始化各个数值并且仅仅循环执行显示程序,有中断来时才转去做相应的中断服务程序。
(1)主程序
ORG00H
AJMPMAIN
ORGOBH
AJMPTOINT
ORG30H
MAIN:
MOVSP,#60H
MOVDPTR,#TAB
MOVTMOD,#01H;T0定时方式1
SETBEA
SETBET0
MOVTH0,#3CH;50ms定时常数
MOVTLO,#OBOH
MOVRO,#20;20x50mS=lS
T0INTR:
RETI
四、各部分电路设计
4.1复位电路
AT89S-5I单片机的复位是幕外部电路实现的。
MCS-52单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。
MCS-52单片机通常采用上电自动复位和按键复位两种方式。
最简单的按键复位电路如下图:
RST
100u
25
30
34
OR 图3复位电路 按键按下瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。 4.2振荡电路 在ATS9S-51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激震荡器,本模块用了一个12MHZ的晶振外加两个30pf的电容 C2 RST Hl 30p 图4振荡电路 4.3按键电路 由六个相同按键组成,分别作为开始,暂停,清零,倒计时,十位加一,个位加一,电路图如下: 图5按键电路 4.4两位数码显示电路 山两位共阳极led数码管和Ik欧排阻构成。 数码管的位山p2-1和p2・() 口决定,段选山P0口决定。 如下图: 图6显示电路 4・5•报警电路 报警电路山小扬声器组成,计时完成后,利用显示子程序延时约2ins求反,产生250II的方波,从而扬声器发声,电路如下 五.整体电路图 C1 C2 tlEO C3 13u打QT *Ten> LSI SCU»EA U1 图7报警电路 RP1 iXIXLI roanoE xmi2 IQW1row: Hmukj Fer KI阿io&2iraanoeFQTinOT K5l pziraPZJfASI2ZAW zie D FZ5Wn PIO FZSAI* IlTWf 罚映D Pi.i rai/r F12 nmnc P13 p33ir PU P3MC MS pisrn PIG 叮测 PIT P3W 91 SIST 311 13 ATKSI 整体电路图 15-0 六、仿真及调试 RP1 WACK总 图9Proteus仿真图 调试问题及解决方法 开始在主程序的循环中没有添加调用显示子程序的语句导致在没有按键按下的悄况下LED数码管没有显示。 当在主程序循环检测按键的过程中添加了调用显示子程序的语句后就解决了这一问题。 曲于键盘需要消抖延时和等待按键释放所以相似的悄况乂出现了一一按下按键后有一段时间LED数码管断续显示或者按下按键后不释放按键时LED数码管没有显示。 仔细分析后发现问题出现的原因还是一样的,山于本设汁的LED数码管采用了动态显示,故需要不断调用显示子程序,否则会导致LED数码管没有显示。 所以最终做了以下改进1.按键的消抖延时选择调用两次显示子程序每次显示子程序大约用时5ms,两次即为1Oms左右来取代原来的10ms软件延时。 在等待按键释放时使用循环调用显示子程序来替代原来的循环等待。 经过上述两点的改进后LED数码管无显示或者断续显示的问题就得到了彻底的解决。 七、设计总结 刚接到课程设计的时候完全没有思路,不知该如何下手,好像自己学到的东西一点都用不上,后来经过翻阅资料从最基本的着手,开始对倒计时秒表有了一点认识,从单元电路到整体电路按部就班。 在整个课程设计完后,总的感觉是: 很累,很有压力,但是很有收获。 在这个过程中,我的确学得到很多在书本上学不到的东西,如: 如何将学过的单片机知识加以运用,如何查找资料,如何利用计算机来画图以及如何利用Pr0teus进行单片机仿真等等。 通过查阅资料、接口设计、程序设计、安装调试等环节,完成AT89S-51单片机多种资源应用并具有综合功能的小系统U标板的设计与编程应用。 让我不仅能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,增进对单片机的感性认识,加深对单片机理论方面的理解,掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O口等。 更重要的是,团结精神,合作精神在这次课程设计中得到了很好地体现,仅凭我个人的力量是无法完成任务的。 但现在回过头来看,还是挺有成就感的,毕竟这是大学里第一次进行实物课程设计,第一次真正的将理论转化为实际,第一次实际接触电路板。 这是一笔无法估量的财富。 对单片机有了更深刻的认识和掌握,我感到很欣慰,付出的中就会有收获! 。 但是山于理论和实际存在差距,我们成功进行了仿真,但是在制作电路板时始终有部分功能不能实现,尽管我们不停地调试但是终究没有效果,我们的倒计时秒表能实现自山设定时间,倒计时,报警。 最令我高兴的是我们设计的倒计时秒表不仅能倒计时也能正计时,这是在要求之外的。 山于时间有限,只有一个星期,我相信,我们还可以实现更多的功能,虽然课程设汁结束了,但是在课余时间,我还会继续进行实践,从实践中学习知识掌握单片机! [7]李广弟《单片机基础》玮北京航空航天大学出版社玮2001年*附录源程序代码: STRTEQUP2.2 P_SEQUP2.3 CLRREQUP2.4 CDWNEQUP2.5 ADJIIEQUP2.6 ADJLEQUP2.7 ORGOOH AJMPMAIN ORGOBH AJMP TOINT ORG MAIN: MOV 30H SP,#60H MOVDPTR,#TAB MOVTMOD,#0111: TO定时方式1 SETBEA SETSETO MOVTH0,#3CH;50nis定时常数 MOVTLO,#OBOH MOVRO,#20;20x50mS=lS MAINl: ACALLALARM;调用报警子程序kl: ;按键检测子程序开始键 LCALLDISP JBSTRT,K2 ACALLDISP JNBSTRT,$-2 AJMPSTART k2: ;暂停键 JBP_S,K3 LCALLDISP JNBP_S,$-3 AJMPPAUSE K3: ;清零键 JBCLRR,K4 LCALLDISP JNBCLRR,$-3 AJMPCLEAR K4: ;倒计时键 JBCDffN,K5 ACALLDISP JNBCDWN,$-2 AJMPCDOWN ;倒计时设定十位 7EH,K51 MAIN1 Ko: JB AJMP K51: JBADJH.K6 ACALLDISP JNBADJH,$-2 AJMPSHINC K6: ;倒计时设定个位 JB7EII,K61 AJMPMAINI K61: JBADJL,MAINI ACALLDISP JNBADJL,$-2 AJMPSLINC START: ;开始后此标志清0,跳过显示子程序的设定部分;蜂鸣3S SETBTRO CLR7DH MOVR3,#3 AJMPK1 PAUSE: CLRTROAJMPK2CLEAR: CLRMOV AJMPCDOWN: SETS7EH SETS7DH AJMPK4SHINC: INC23H; MOVA.2311CJNEA,#10,MOV23H,#0AJMPKoSLINC: INC22H TRO R4,#0 K3 ;倒计标志,作倒计减1计数用 ;倒计标志,作倒计设定显示用 23H为设定值十位缓存 K5 ;22H为设定值个位缓存 M0VA,22H CJNEA,#10,K6MOV2211,#0 AJMPK5 ALARM: ;7FH为时间到标志,RAM内存2FII的D7位 ;时间未到,跳出报警 ;利用显示子程序延时约2ms求反,产生250H的方波。 JB7FH.ALARMOAJMPALARMRTALARMO: CPLPl.0 ACALLDISPAJMPALARMALARMRT: RET JOINT: ;定时中断子程序。 重装定时常数 MOVTH0,#03CH; MOVTLO.ttOBOH: DJNZRO,TOINTR: 50msX20=1S,未满20次,跳出中断子程序 MOVRO,#20 JNB7FII,TOINTOO;时间未到转TOIXTOO DJNZR3,TOINTR: 未到3S跳出中断子程序 CLR7FH: 3S时间到,清计时时间到标志 CLRTR0;关定时器 AJMPTOINTR;跳出中断 TOINTOO: JNB7EII.TOINTO;7EH为倒计时标志,1为倒计时 DECR4: =1,R4-1 CJNER4,#0,TOINTR CLR7EII ;时间到标志 SETB7FH AJMPTOINTR T0INTO: INCR4 CJNER4,#99,TOINTR SETB7FH;时间到标志 TOINTR: RETI DISP: JNB7DH,DISPl MOV2OH,2211;22H存设定个位 MOV21H,23H;23H存设定十位 MOVA,2311 MOVB,#10 MULAB ADDA,2211 MOVR4,A DISPl: MOV MOV DIV MOV MOV A,R4 B,#10AB 2OH.A 21H,B : 当询值除以10 ;得出的商送给十位 ;得出的余数送给个位 MOV Move MOVPO.A SETBP2.1 LCALLDELAY CLRP2.1 A.20H A,@A+DPTR ;十位显示 MOVA.2IH;个位显示 MOVCA,@A+DPTR MOVPO,A SETBP2.0 LCALLDELAY CLRP2.0 RET DELAY: ;误差Ous MOVR6,#l0 DLO: MOVR5,#5O DJNZRo,$ DJNZ RET TAB: DB END R6,DLO DB0C0H.0F9H,0A4H.OBOH,9911 92H.82H,0F8H,80II,9011 ;共阳极0-9显示代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 倒计时 秒表