单片机毕业课程设计电子钟.docx
- 文档编号:4539139
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:21
- 大小:61.18KB
单片机毕业课程设计电子钟.docx
《单片机毕业课程设计电子钟.docx》由会员分享,可在线阅读,更多相关《单片机毕业课程设计电子钟.docx(21页珍藏版)》请在冰点文库上搜索。
单片机毕业课程设计电子钟
单片机课程设计
课题:
电子钟
系别:
电气与电子工程学院
专业:
电气工程及其自动化
姓名:
学号:
XXXX学院
2014年01月01日
成绩评定·
一、指导教师评语
课程设计成绩评定
目录
一、设计目的2
二、设计要求3
三、总体设计3
1、系统总体框图3
2、系统软件设计3
四、各部分电路设计3
1、单片机模块4
2、晶振与复位电路5
3、控制电路6
4、数码管显示电路6
5、整点报时电路7
五、整体电路图8
六、设计总结8
参考文献9
附录10
一、设计目的
1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;
2、使学生掌握单片机的内部功能模块的应用,如定时器计数器、中断、片内外存贮器、IO口、AD、DA、串行口通讯等;
3、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
二、设计要求
1、可以实现23h59m59s的显示,用六位LED七段显示器显示出来;
2、可以利用按键设置任意的时分秒各位,并具有按键复位功能;
3、整点报时可以触发一音频器实现报时;
三、总体设计
1、系统总体框图
图1系统总体框图
2、系统软件设计
图2系统流程图
注:
程序清单附后
四、各部分电路设计
本设计电路由五部分组成,分别是单片机模块,晶振与复位电路,控制电路,数码管显示电路,整点报时电路。
1、单片机模块
图3单片机模块
如图3所示,AT89S51有40引脚,双列直插(DIP)封装,所用引脚功能如下:
(1)VCC——运行时加+4.5V
(2)GND——接地
(3)XTAL1——振荡器反相放大器及内部时钟发生器的输入端
(4)XTAL2——振荡器反相放大器的输出端
(5)RST——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFTAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
2、晶振与复位电路
图4晶振与复位电路
该电路包括两部分:
晶振电路和复位电路
(1)晶振电路该电路采用12M的晶振。
晶振的作用是给单片机正常工作提供稳定的时钟信号。
单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为112时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接的是30pF的电容。
机器周期=10*晶振周期=12*系统时钟周期
(2)复位电路复位电路有上电自动复位电路和按钮复位电路。
本次设计中采用的是上电自动复位电路,它是通过外部复位电路给电容C充电加至RET引脚一个短的高电平信号,此信号随着Vcc对电容C的充电过程而逐渐回落,即RET引脚上的高电平持续时间取决于电容C的充电时间。
因此为保证系统能可靠复位,RET引脚上的高电平必须维持足够长的时间。
3、控制电路
图5控制电路
该控制电路由五条包含开关和二极管的支路并联接地而成。
五个开关分别为SET键、ADD键、DEC键、RESET键、OK键,按SET键可以将时间调整到时位、分位或秒位,按ADD键和DEC键用于时间的加减,按RESET键时间回到00:
00:
00,按OK键时间调整结束。
4、数码管显示电路
图6数码管显示电路
该部分电路采用的是六位一体的共阳数码管用于时间的显示。
共阴极LED数码管的发光二极管的阴极连接在一起,通常此公共阴极接正电压。
当某个二极管的阴极为低电平时,发光二极管点亮,相应的时间段被显示。
该电路采用的是动态显示方式。
5、整点报时电路
图7整点报时电路
该报时电路采用的是喇叭报时,喇叭一端接电源,一端接单片机的P2.0口,每到整点时刻,P2.0产生高电平使喇叭报时,每次报时喇叭响三声。
五、整体电路图
图8整体电路图
六、设计总结
1、设计过程中遇到的问题及解决方法
在本次设计中遇到很多问题,比如程序运行不出来,仿真图正确但就出不来正确结果等等,但都通过查资料解决。
印象最深的就是关于整点报时功能,本次设计原本采用的是蜂鸣器报时,在做仿真图时蜂鸣器连接正确,而且采用驱动,但到整点时刻,蜂鸣器就是不会报时,修改很多次都没有成功,最后采用喇叭,不仅功能实现,而且电路简单。
2、设计体会
通过本次设计,我收获很多,不仅对书本知识有了更深的理解,而且还提高了动手操作能力。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
在这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。
我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。
学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。
这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。
在本次设计中遇到了很多问题,但都通过查资料,问同学老师得到解决,虽然过程很辛苦,但努力的过程让我感觉很充实。
3、对设计的建议
设计时,首先要有个整体思路,不能盲目地进行。
可以先通过查阅资料了解基本知识和前人的设计经验,并掌握相关软件的使用。
其次,在设计过程中,遇到问题要多请教老师和同学。
在仿真过程中也许会出现仿真图正确但出不来结果,有时是因为器件的问题,这时可考虑换用其他类似器件以实现相同的功能。
最后,在焊接实物时,要注意理论与实际的差别。
参考文献
1、张毅刚《单片机原理及应用》高教出版社
2、《单片机原理及应用实验指导书》(自编)
3、周润景《单片机电路设计、分析与制作》机械工业出版社
4、陈雷《C51单片机应用实训》中国电力出版社
附录
程序:
SET_TIMEBITP1.0;设置时间按键,按下表示设置时间,继续按下将分别在时分秒之间转换,相应位回出现闪烁提示
TIME_ADDBITP1.1;在设置状态时按下相应位会就行增加
TIME_DECBITP1.2;在设置状态时按下相应位会就行减少
SET_OKBITP1.4;在设置状态时按下,表示设置OK
RESETBITP1.3;恢复到原始状态
SECONDEQU30H
MINUTEEQU31H
HOUREQU32H
TCNTEQU34H
T1_HIEQU35H
T1_LOWEQU36H
MUSIC_FLAGEQU20H.0;为1表示需要整点鸣笛,鸣笛三秒后清除
SYSTEM_STATUSEQU38H;系统状态分别为正常显示状态,定时状态,整点状态
SET_CONTEQU39H;设置计数,从0到2分别为设置秒钟设置分钟设置小时
FLASHEQU20H.2;是否需要数码管闪烁,0不闪烁,1闪烁,设置秒钟秒钟闪烁设置分钟分钟闪烁
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
ORG1BH;T1定时产生各种频率分别为DUORUMIHUASUOLAXI
LJMPTIME1
START:
MOVDPTR,#TABLE
MOVHOUR,#0
MOVMINUTE,#0
MOVSECOND,#0
CLRTR0
CLRTR1
MOVTCNT,#0
MOVTMOD,#11H;#01H
MOVTH0,#()256
MOVTL0,#()MOD256
MOVIE,#8AH;#82H
SETBTR0
MOVR0,#0
CLRMUSIC_FLAG;不鸣笛
SETBP2.0
MOVSYSTEM_STATUS,#0;正常状态
MOVSET_CONT,#0
A1:
LCALLDISPLAY
MOVP1,#0FFH;关闭数码管
JNBSET_TIME,S1
JNBTIME_ADD,S2
JNBTIME_DEC,S3
JNBSET_OK,LONGJUMP1;判断四个按键是否按下,如果按下跳转到相应的按键消抖程序
JNBRESET,START
LCALLCHECKCLOCK;判断时间是否为整点,并进行相应处理
LJMPA1
LONGJUMP1:
LJMPS4
;;;;;;;;;;;;SETTIME;;;;;;;;;;;;;;;
S1:
LCALLDELAY
JBSET_TIME,A1;延时消除抖动
MOVSYSTEM_STATUS,#1;设置键按下系统状态变为设置状态
INCSET_CONT;设置+1,如果是分钟设置则转为时钟如果为时钟则转为秒钟
MOVA,SET_CONT
CJNEA,#3,NEXT1;超过3则复位为0
MOVSET_CONT,#0
NEXT1:
LJMPJ0
S2:
LCALLDELAY
JBTIME_ADD,A1;加处理
MOVA,SYSTEM_STATUS
CJNEA,#1,A1;以下依次判断是设置秒钟或分钟或小时
MOVA,SET_CONT
JNZNEXT2
INCSECOND
MOVA,SECOND;秒
CJNEA,#60,J1
MOVSECOND,#0
LJMPJ1
NEXT2:
CJNEA,#1,NEXT3
INCMINUTE
MOVA,MINUTE
CJNEA,#60,J1;分
MOVMINUTE,#0
LJMPJ1
NEXT3:
CJNEA,#2,J1
INCHOUR
MOVA,HOUR;小时
CJNEA,#24,J1
MOVHOUR,#0
LJMPJ1
S3:
LCALLDELAY
JBTIME_DEC,A1
MOVA,SYSTEM_STATUS
CJNEA,#1,A1;S3为减处理
MOVA,SET_CONT;以下依次判断是设置秒钟或分钟或小时
JNZNEXT4
DECSECOND
MOVA,SECOND;秒
JNZJ2
MOVSECOND,#59
LJMPJ2
NEXT4:
CJNEA,#1,NEXT5
DECMINUTE
MOVA,MINUTE
JNZJ2;分
MOVMINUTE,#59
LJMPJ2
NEXT5:
CJNEA,#2,LONGJUMP
DECHOUR
MOVA,HOUR;小时
JNZJ2
MOVHOUR,#23
LJMPJ2
S4:
LCALLDELAY
JBSET_OK,LONGJUMP;S4为设置确认键,按下后则表示设置OK进入正常显示模式
MOVA,SYSTEM_STATUS
CJNEA,#1,LONGJUMP
MOVSYSTEM_STATUS,#0;NORMAL
LJMPJ3
J0:
JBSET_TIME,LONGJUMP
SJMPJ0;等待各键释放
J1:
JBTIME_ADD,LONGJUMP
SJMPJ1
J2:
JBTIME_DEC,LONGJUMP
SJMPJ2
J3:
JBSET_OK,LONGJUMP
SJMPJ3
LONGJUMP:
LJMPA1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT_T0:
MOVTH0,#()256
MOVTL0,#()MOD256
INCTCNT
MOVA,TCNT
CJNEA,#10,HAHA1;0.5秒FLASH取反一次,在设置时间时候用来闪烁数码管
CPLFLASH
HAHA1:
CJNEA,#20,RETUNE
INCSECOND
MOVTCNT,#0
CPLFLASH
MOVA,SECOND
CJNEA,#60,RETUNE
INCMINUTE
MOVSECOND,#0
MOVA,MINUTE
CJNEA,#60,RETUNE
INCHOUR
MOVMINUTE,#0
MOVA,HOUR
CJNEA,#24,RETUNE
MOVHOUR,#0
MOVMINUTE,#0
MOVSECOND,#0
MOVTCNT,#0
RETUNE:
RETI
;;;;;;;;;;;;;;;用于频率产生在整点报时时用;;;;;;;;;;;;;;;;;;
TIME1:
CLRTR0
MOVTH1,T1_HI
MOVTL1,T1_LOW
CPLP2.0
SETBTR0
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY:
MOVA,SYSTEM_STATUS
JZMM
MOVA,SET_CONT
JNZMM
JBFLASH,MM
MOVP0,#0;以上判断系统状态是否为设置时间状态,如果是,则判断是否是相应的时分秒设置
LCALLDELAY;秒闪烁
JMPMMM
MM:
MOVA,SECOND
MOVB,#10
DIVAB
CLRP3.6
;正常显示,不闪烁
MOVC+DPTR
MOVP0,A
LCALLDELAY
SETBP3.6
MOVA,B
CLRP3.7
MOVC+DPTR
MOVP0,A
LCALLDELAY
SETBP3.7
MMM:
CLRP3.5
MOVP0,#40H
LCALLDELAY
SETBP3.5
MOVA,SYSTEM_STATUS
JZMMMM
MOVA,SET_CONT
CJNEA,#1,MMMM
JBFLASH,MMMM;判断是否为分设置状态如果是则闪烁
MOVP0,#0
LCALLDELAY
JMPMMMMM
MMMM:
MOVA,MINUTE
MOVB,#10
DIVAB
CLRP3.3
MOVC+DPTR
MOVP0,A
LCALLDELAY;正常分显示不闪烁
SETBP3.3
MOVA,B
CLRP3.4
MOVC+DPTR
MOVP0,A
LCALLDELAY
SETBP3.4
MMMMM:
CLRP3.2
MOVP0,#40H
LCALLDELAY
SETBP3.2
MOVA,SYSTEM_STATUS
JZOOO
MOVA,SET_CONT;判断是否为小时设置状态如果是则闪烁
CJNEA,#2,OOO
JBFLASH,OOO
MOVP0,#0
LCALLDELAY
RET
OOO:
MOVA,HOUR
MOVB,#10
DIVAB
CLRP3.0
MOVC+DPTR
MOVP0,A
LCALLDELAY
SETBP3.0;正常显示不闪烁
MOVA,B
CLRP3.1
MOVC+DPTR
MOVP0,A
LCALLDELAY
SETBP3.1
RET
;;;;;;;;;;;;;;;判断是否需要鸣笛;;;;;;;;;;;;;;;;;
CHECKCLOCK:
MOVA,MINUTE
JNZBACK
MOVA,SECOND
JZXX
CJNEA,#3,BACK
CLRTR1
CLRMUSIC_FLAG
SETBP2.0
JMPBACK
XX:
JBMUSIC_FLAG,BACK
SETBMUSIC_FLAG
INCR2
CJNER2,#7,S
MOVR2,0
S:
MOVA,R2
CLRC
RLCA;A*2
MOVDPTR,#MUSIC;取出蜂鸣表格数据,由于数据时以字形式存储的,所有分两次取出
MOVC+DPTR
MOVT1_HI,A
MOVA,R2
CLRC
RLCA
INCA
MOVC+DPTR
MOVT1_LOW,A
SETBTR1
MOVDPTR,#TABLE
BACK:
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DELAY:
MOVR6,#5
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
MUSIC:
DW0F88CH,0F95BH,0FA15H,0FA67H,0FB04H,0FB90H,0FC0CH;DUOREMIHUASOLAXI
END
系统仿真图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 毕业 课程设计 电子钟