电子时钟单片机课程设计报告WITWord格式.docx
- 文档编号:18236466
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:33
- 大小:511.56KB
电子时钟单片机课程设计报告WITWord格式.docx
《电子时钟单片机课程设计报告WITWord格式.docx》由会员分享,可在线阅读,更多相关《电子时钟单片机课程设计报告WITWord格式.docx(33页珍藏版)》请在冰豆网上搜索。
(1)用6个7段LED数码管作为显示设备,设计时钟功能;
(2)可以分别设定小时、分钟和秒,复位后时间为00:
00;
(3)秒钟复位功能,秒复位键按下后,秒回到00;
(4)LED采用动态扫描法显示。
2.选做
(1)日期、时间切换功能;
(2)使用LCD取代LED作为显示设备;
(3)如果需要制作电子万年历,可以考虑外部扩展专用时钟芯片(如:
DS1302)
(4)实现闹钟功能(创新部分)
2设计方案
2.1任务分析
电子时钟的主要功能为显示日期和时间、时间的调整以及闹铃的设定等。
用LED显示时间和日期,并且可以调整。
即通过单片机主控芯片定期读取时钟芯片中的时间并把年、月、日、小时和分显示在数码管中;
而且用按键还可以实现时间的调整和闹铃的设定。
即对设置的闹铃时间与实时时间进行比较,如果时间相同且闹铃允许,那么蜂鸣器就会以1秒的周期鸣响一分钟,提醒使用者。
2.2方案设计
1.硬件方案
根据设计的要求可知,系统的硬件原理框图如图2.1所示。
图2.1系统的硬件原理框图
单片机可选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASHROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。
AT89C51系列单片机的优势有:
第一,片内程序存储器采用闪速存储器,使程序的写入更加方便。
第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。
第三,具有程序加密的功能,物美价廉,经济实用。
电子时钟含显示模块和按键模块。
显示模块采用8位数码管动态扫描显示,P0口控制段码,驱动芯片采用一块74LS245N芯片,P2口控制位码;
按键模块设置SET、ALM、+1、NEXT、REST,DATE六个功能键,分别由P3.0~P3.5控制。
2.软件方案
图2.2软件设计程序框图
根据设计要求,程序框图如图2.2所示。
软件可由汇编语言完成,也可由C语言完成。
根据模块的划分原则,除主程序外,本设计还可分为以下6个子程序。
包括:
数码管动态扫描子程序、时钟计时子程序、蜂鸣器报警子程序、当前时间调整子程序、当前日期调整子程序和当前闹钟时间调整子程序。
3系统硬件设计
3.1时钟电路设计
图3.1单片机时钟电路
如图3.1所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。
其发出的时钟脉冲直接送入片内定时控制部件。
3.2复位电路设计
如图3.2所示,采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。
为保证复位可靠,RC时间常数应大于两个机器周期,电容取33uf,电阻取200欧。
图3.2单片机复位电路
3.3按键控制电路设计
本设计采用了独立键盘方式,并进行按键去抖动设计,设置六个功能键进行时间调整与定时时间的输入,通过接入键盘电路实现,如图3.3所示,6个按键分别定义为:
+1键:
其功能是当该键按下时,被调整位加一,由P3.0控制;
NEXT键:
其功能是当该键按下时,指向下一个要调整的位。
由P3.1控制。
SET键(时间调整设置键):
当该键按下时,进入时间调整输入功能,由P3.2
控制;
ALM键(定时时间设置键)当该键按下时,进入闹钟时间输入功能,由P3.3
DATE键(日期时间设置键):
当该键按下时,进入日期时间输入功能,由
P3.4控制;
REST键(复位键):
当该键按下时,关闭闹铃,由P3.5控制;
图3.3按键电路
3.4按键去抖动设计
当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到
闭合状态的情况;
在释放一个键时,也回会出现类似的情况。
这就是抖动。
抖动
的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。
很容易想到,
抖动问题不解决就会引起对闭合键的识别。
用软件方法可以很容易地解决抖动问
题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。
3.5LED显示器电路设计
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式
两种。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示。
本设计使
用动态扫描方式,其中段码接p0口,位码接p2口。
3.5.1LED显示器的选择
图3.5.1八位LED显示器
如图3.5.1所示,显示电路显示模块需要实时显示当前的时间,即时、分、秒,以及年月日。
因此需要6个数码管,另需两个数码管来显示横。
74EG—COM-MAX8系列显示器能满足显示的需要,如图2.6所示。
时(年)的十位和个位分别显示在第一个和第二个数码管,分(月)的十位和个位分别显示在第四个和第五个数码管,秒(日)的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。
3.5.2LED段码驱动芯片的选择
LED的段驱动链路有很多种,在本例中,我们选择74LS245作为段驱动芯片。
如图3.5.2。
74LS245是我们常用的芯片,可用来驱动LED或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据,并具有锁存,译码,驱动的功能。
图3.5.274LS245引脚图
3.6掉电保护电路设计
通常,在数字钟、打铃仪、某些定时器和日历钟等类型的单片机系统中,当主电源DC5V失去时,我们称之为掉电。
掉电之后,单片机会停止工作,时钟会停止往前走,这种结果在许多场合往往是不希望的,为了保证单片机在主电压失去时仍然能够保持运行,人们就利用干电池对单片机系统继续进行供电。
图3.6掉电保护电路
本设计采用如图3.6的设计电路,当主电源正常时,单片机由VCC5V电源供电,此时,VCC5V电源通过D1和R1,对保护用电池进行充电,以保证电池电量的充足。
适当选择R1的大小,可以保证充电电流和充电时间都比较合理。
3.7闹钟蜂鸣电路设计
本设计使用P3.7控制蜂鸣电路,蜂鸣电路如图2.9所示。
当到定时时间时,P3.7置0,蜂鸣器鸣叫。
此时,若手动按下REST键,蜂鸣器停止鸣叫。
图3.7闹钟蜂鸣电路
4系统软件设计
4.1主程序设计
主程序的内容包括:
主程序的起始地址,终端服务程序的起始地址,有关内
存和相关部件的初始化和子程序的调用等等。
(1)程序的起始地址。
单片机复位后,(PC)=0000H。
(2)主程序的初始化内容包括一些存储单元的内容进行初始化及计时器的初值
设定。
在本实验中,计时子程序采用了中断方式。
图4.1主程序流程图
4.2数码管LED动态扫描子程序
在采用动态扫描方式时,要使LED现实的比较均匀,又有足够的亮度,需要设置适当的扫描频率。
(1)在显示缓冲区分别取出8位LED显示器显示数据的位码及段码,送到P2口,依次显示每一位,每一位显示时间是1ms,显示8位时间是8ms。
(2)LED显示器的时间是1ms,延时子程序是用的软件定时程序。
图4.2LED动态扫描子程序框图
4.3时钟计时子程序
(1)时间的产生
选择定时器T0,工作方式1,定时50ms,T0定时50ms中断一次。
利用寄存器加1,当寄存器累加至20,时间正好等于1秒。
之后按照下面的流程图再逐级累加,便可产生时间。
(2)设置定时器初值时钟晶振频率=6Mhz
计数值=定时时间/机器周期时间TH0=(65536-50000)/256TL0=176
图4.3时钟计时子程序框图
4.4按键调整子程序
按键调整子程序由当前时间调整子程序,当前日期调整子程序和当前闹钟时间调整子程序组成。
功能分别为实现对当前的时间调整,对当前日期的调整及输入定时闹钟时间。
4.4.1当前时间调整子程序
在程序中,当SET键按下时,即转入调时功能。
利用+1键和NEXT键配合使用,每次对+1键按下进行累加,当NEXT键按下时,调整时间被确认,转向处理下一位。
当前时间存储在30H,31H,32H单元中,并送入显示缓冲区显示。
图4.4.1当前时间调整子程序框图
4.4.2当前日期调整子程序
当前日期调整子程序的设计思路与当前时间调整子程序基本相同。
不同的是当DATE键按下时转入日期调整功能。
输出的日期存储在38H,39H,40H中。
图4.4.2当前日期调整子程序框图
4.4.3闹钟时间调整子程序
闹钟调整程序的设计思路与当前时间调整子程序也是基本相同的。
不同的是当ALM键按下时转入闹钟调整功能。
输出的闹钟时间存储在35H,36H,37H单元中。
图4.4.3闹钟时间调整子程序框图
4.4.4闹铃报警子程序
当定时时间到达时,P3.7输出低电平,促发闹铃提示功能,直至REST键被按下后停止闹铃提示。
其程序流程图如图4.4.4
图4.4.4闹铃报警子程序框图
5仿真与性能分析
1、系统仿真过程
仿真调试过程如下:
1PROTEUS软件使用过程:
(1)选择元器件
(2)放置元器件
(3)连线
(4)添加程序
(5)运行仿真
2在KEIL中编写程序,编译、连接形成HEX文件,如图5.1所示。
3在PROTEUS中把HEX文件加载到单片机芯片上,如图5.2所示。
图5.1Keil编译后工作界面
图5.2Proteus仿真界面
2仿真结果与分析
运行仿真结果如图5.3所示。
按下F12,仿真开始运行,时钟从00:
00:
00开始走时。
走时调整:
按SET键时钟走时暂停,并可先对时进行调整,按+1键后时加1;
按NEXT后对分进行调整,按+1键后时分加1;
按NEXT后对秒进行调整,按+1键后秒加1,从而达到设定时间的目的,仿真结果完全符合设计要求。
日期调整:
按DATE可以显示当前日期,并对日期进行调整,按+1键后年加1;
按NEXT后对月份进行调整,按+1键后月份加1;
按NEXT后对天进行调整,按+1键后天加1,从而达到设定日期的目的,仿真结果完全符合设计要求。
闹钟定时:
按ALM进入闹钟时间设定,按+1键后时加1;
按NEXT后对秒进行调整,按+1键后秒加1,从而达到闹钟时间设定的目的。
设定闹铃时间为00:
02:
00,当时间到达00:
00时,定时时间到时,蜂鸣器鸣叫,按REST键后,停止鸣叫,。
图5.3系统仿真结果
6设计小结
这次单片机课程设计由于电路设计合理,功能电路基本能实现设计要求,程序简单明了,基本上达到了题目的各项要求:
时钟的显示,日期的显示,复位功能,校时功能,调时功能。
时钟显示功能,精确度完全可以满足日常生活显示时间的需要;
调时功能,方便快捷;
校时功能保证了时钟准确和可靠性,还有扩展成音乐闹钟的余地。
硬件设施合乎要求,软件设计可以配合硬件实现要求功能。
但是由于时间比较短,出现部分不足:
在日期计时的软件编程方面,并没有考虑闰年闰月的因素,在实际的万年历设计中,人们常常用DS1302芯片自动实现时间的计算。
经讨论只是软件部分还不完善,对于本研究课题,应尽量考虑到人的因素,增强时钟的实用性和操作性,为使用者提供切实的方便,营造一种舒适的生活氛围。
所以,在设计的时候,应该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。
参考文献
[1]郭天祥.新概念51单片机C语言教程[M].北京:
电子工业出版社,2009.
[2]徐爱钧.智能化测量控制仪表原理及设计[M],北京北京航空航天大学出版社,2005:
25
[3]何立民.单片机中级教程.北京:
北京航空航天大学出版[J].2007.169-170
[4]白艳敏.51单片机典型系统开发实例精讲[M]北京:
电子工业出版社,2006:
123-126
[5]刘迎春.MCS-51单片机原理及应用教程[M],北京:
清华大学出版社,2004:
40-43
[6]王法杰.基于Proteus和Keil仿真实验平台在单片机教学中的应用[J].大众科技,2008(06):
39-43.
附录1系统原理图
附录2程序清单
NUMADDBITP3.0
NEXTBITP3.1
WEI_SETBITP3.2
ALMBITP3.3
DATEBITP3.4
RESTBITP3.5
SECONDEQU30H
MINUTEEQU31H
HOUREQU32H
TCNTEQU34H
ALM_HOUREQU35H
ALM_MINUTEEQU36H
ALM_SECONDEQU37H
DAYEQU38H
MONTHEQU39H
YEAREQU40H;
标号赋值
ORG00H;
主程序
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVDPTR,#TABLE
MOVHOUR,#00
MOVMINUTE,#0
MOVSECOND,#0
MOVTCNT,#0
MOVALM_HOUR,#0
MOVALM_MINUTE,#0
MOVALM_SECOND,#0
MOVDAY,#00
MOVMONTH,#00
MOVYEAR,#11;
初始化赋值
MOV29H,#0
MOV27H,#0;
闹钟标志位
MOV41H,#0;
显示缓冲区
MOV42H,#0
MOV43H,#0
MOVTMOD,#01H;
设置计时器工作方式
MOVTH0,#60;
定时50毫秒
MOVTL0,#176
MOVIE,#82H
SETBTR0
;
****************************************************
判断是否有控制键按下,是哪一个键按下
A1:
MOV41H,SECOND
MOV42H,MINUTE
MOV43H,HOUR
LCALLDISPLAY;
送显示
JNBREST,S0
JNBWEI_SET,S1
JNBALM,S2
JNBDATE,S3
MOVA,27H
CJNEA,#0,RING;
若以设定闹钟,则转RING
LJMPA1
判断是否到所定时间
RING:
MOVA,HOUR
CJNEA,ALM_HOUR,NEQ
MOVA,MINUTE
CJNEA,ALM_MINUTE,NEQ
MOVA,SECOND
CJNEA,ALM_SECOND,NEQ
CLRP3.7;
定时到
NEQ:
AJMPA1
关闭闹钟
S0:
LCALLDELAY;
去抖动
JBREST,A1
CLR27H
SETBp3.7
时间调整程序
S1:
JBWEI_SET,A1
SJMPK1
S2:
JBALM,A1
LJMPK2
S3:
JBDATE,A1
LJMPK3
K1:
SETBNUMADD
SETBNEXT
CLRTR0
CLRET0
MOV28H,#03H
LP0:
JBNUMADD,NEXT0
LCALLDELAY
JBNUMADD,LP0
LP1:
JNBNUMADD,LP1
INC29H
SJMPLO1
NEXT0:
JBNEXT,L1
JNBNEXT,NEXT0
LD1:
DJNZ28H,LO1
SJMPLL
LO1:
MOVA,28H
CJNEA,#03H,LO2
MOVA,29H
ADDA,HOUR
MOVHOUR,A
CJNEA,#24,LA1
MOVHOUR,#00H
LA1:
SJMPL1
LO2:
CJNEA,#02H,LO3
ADDA,MINUTE
MOVMINUTE,A
CJNEA,#60,LA2
LA2:
LO3:
ADDA,SECOND
MOVSECOND,A
CJNEA,#60,LA3
MOVSECOND,#00H
LA3:
L1:
MOV41H,SECOND
LCALLDISPLAY
MOVA,#28H
CJNEA,#00H,LP0
LL:
MOVTH0,#(65536-50000)/256
SETBET0
闹铃定时程序
K2:
SETBNUMADD
LP0B:
JBNUMADD,NEXT0B
JBNUMADD,LP0B
LP1B:
JNBNUMADD,LP1B
SJMPLO1B
NEXT0B:
JBNEXT,L1B
JNBNEXT,NEXT0B
LD1B:
DJNZ28H,LO1B
SJMPLLB
LO1B:
CJNEA,#03H,LO2B
ADDA,ALM_HOUR
MOVALM_HOUR,A
CJNEA,#24,LA1B
MOVALM_HOUR,#00H
LA1B:
SJMPL1B
LO2B:
CJNEA,#02H,LO3B
ADDA,ALM_MINUTE
MOVALM_MINUTE,A
CJNEA,#60,LA2B
LA2B:
LO3B:
ADDA,ALM_SECOND
MOVALM_SECOND,A
CJNEA,#60,LA3B
MOVALM_SECOND,#00H
LA3B:
L1B:
MOV41H,ALM_SECOND
MOV42H,ALM_MINUTE
MOV43H,ALM_HOUR
CJNEA,#00H,LP0B
LLB:
MOV27H,#1H;
闹钟标志位置1
日期调整程序
K3:
LP0C:
JBNUMADD,NEXT0C
JBNUMADD,LP0C
LP1C:
JNBNUMADD,LP1C
SJMPLO1C
NEXT0C:
JBNEXT,L1C
JNBNEXT,NEXT0C
LD1C:
DJNZ28H,LO1C
SJMPL1C
LO1C:
CJNEA,#03H,LO2C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 单片机 课程设计 报告 WIT