单片机课程设计数字电子钟.docx
- 文档编号:12957855
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:32
- 大小:623.27KB
单片机课程设计数字电子钟.docx
《单片机课程设计数字电子钟.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字电子钟.docx(32页珍藏版)》请在冰点文库上搜索。
单片机课程设计数字电子钟
单片机技术课程设计说明书
数字电子钟
系、部:
电气与信息工程系
学生姓名:
刘亚龙
指导教师:
吴乐职称讲师
专业:
电气工程及其自动化
班级:
电气本1004
完成时间:
2013-1-2
摘要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz晶振与单片机AT89S52相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求。
该电子钟设有四个按键S1、S2、S3和S4键,进行相应的操作就可实现校时、复位功能。
具有时间显示、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词电子钟;AT89S52;硬件设计;软件设计
ABSTRACT
Clockiswidelyusedinlife,andasimpledigitalclockismorewelcomedbypeople.Sotodesignasimpledigitalelectronicclockisnecessary.ThesystemuseasinglechipAT89S52ofATMEL’sasitscoretocontrolThecrystaloscillatorclock,usingofE-12MHZisconnectedwiththemicrocontrollerAT89S52,throughthesoftwareprogrammingmethodtoachievea24-hourcycle,andeight7-segmentLEDdigitaltube(twofourinonedigitaltube)displayshours,minutesandsecondsrequirements,andinthetimecourseofatimingfunction,whenthetimearrivedaheadofscheduledtimetobuzzagoodtimekeeping.TheclockhasfourbuttonsS1,S2,S3andS4key,andmaketheappropriateactioncanbeachievedwhentheschool,timing,reset.Withatimedisplay,alarmclocksettings,timerfunction,correctiveaction.Accuratetraveltime,displayandintuitive,precision,stability,andsoon.Withahighapplicationvalue.
显示对应的拉丁字符的拼音
字典-查看字典详细内容
KeywordsElectronicclock;;AT89S52;HardwareDesign;SoftwareDesign
目录
1设计课题任务、功能要求说明及方案介绍……………………………………1
1.1设计课题任务………………………………………………………………1
1.2功能要求说明………………………………………………………………1
1.3设计总体方案介绍及原理说明……………………………………………1
1.4AT89S52芯片介绍…………………………………………………………2
1.5方案选择……………………………………………………………………4
2设计课题硬件系统的设计………………………………………………………5
2.1设计课题硬件系统各模块功能简要介绍…………………………………5
2.2设计课题电路原理图、PCB图、仿真电路图……………………………6
2.3设计课题元器件清单………………………………………………………8
3设计课题软件系统的设计………………………………………………………9
3.1设计课题使用单片机资源的情况…………………………………………9
3.2设计课题软件系统各模块功能简要介绍…………………………………9
3.3设计课题软件系统程序流程框图…………………………………………9
3.4设计课题软件系统程序清单………………………………………………16
4设计结论、仿真结果、误差分析、教学建议…………………………………22
4.1设计课题的设计结论及使用说明…………………………………………22
4.2设计课题的仿真结果………………………………………………………22
4.3设计课题的误差分析………………………………………………………23
4.4设计体会……………………………………………………………………23
4.5教学建议……………………………………………………………………24
参考文献……………………………………………………………………………25
致谢……………………………………………………………………………26
附录……………………………………………………………………………27
1设计课题任务、功能要求说明及方案介绍
1.1设计课题任务
设计一个具有特定功能的电子钟。
具有时间显示,时间设定,时间调整功能。
1.2功能要求说明
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/暂停键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/暂停键再次进入时钟运行状态。
退出手动调时系统后,计时系统在调整后的状态下运行。
当计时达到24小时后,系统自动清0,重新进入计时系统。
1.3设计课题总体方案介绍及工作原理说明
本电子钟主要由单片机、4*1独立键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:
图1.1总体设计方案图
本电子钟的所有的软件、参数均存放在AT89S52的FlashROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
1.4AT89S52芯片介绍
VCC:
电源。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)
图1.2AT89S52管脚示意图
1.5方案选择
本方案完全用软件实现数字时钟。
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
S1键为启动/暂停键,S2键为时调节,S3键为分调节,S4键为秒调节。
该方案具有硬件电路简单的特点。
显示器采用动态显示,一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
保证扫描速度足够快,利用人的视觉暂留功能可以看到整个显示,,字符才不闪烁。
节省了I/O口,降低了能耗。
2设计课题硬件系统的设计
2.1设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。
。
(1)时钟电路:
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
(2)复位电路:
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
(3)键盘电路:
当非编码键盘的按键较少时,采用独立式键盘比较方便,可以随意拿硬件作为预处理,各键盘之间不影响,编程相对矩阵式键盘简单,但占用的I/O口线较多。
(4)显示电路:
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一。
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如系统原理图。
在动态方式中,逐个地循环地点亮各位显示器。
这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。
(5)电源电路:
现在市面上销售的编程器有很多都是由PC机的USB口直接供电,为了降低本设计的成本及节省设计时间,没有另外设计编程器。
2.2设计课题电路原理图、PCB图、元器件布局图
图2.1电路原理图
图2.2PCB图
图2.3仿真电路
2.3设计课题元器件清单
设计课题元器件清单如表2.1所示。
表2.1设计所用元器件清单
名称
数量
参数
电阻
3个
1KΩ
数码管
2个
4位一体
电阻
1个
200Ω
下载口
1个
普通插座
1个
40PIN
电阻
16个
470Ω
按键
4个
三极管
9个
PNP
USB供电线
1根
晶振
1个
12MHz
电容
2个
30pF
极性电容
1个
22μF
芯片
1块
AT89S52
发光二极管
1个
六角开关
1个
3设计课题软件系统的设计
3.1设计课题使用单片机资源的情况
3四个按键分别连接P1.0-P1.3,当有键按下时P1.0-P1.3的某一位为低电平,反之,则为高电平;
4两个八位数码管位控线分别连接P2口的P2.0-P2.7,其段控线分别接至P0口的P0.0-P0.7。
采用共阳数码管,当控制位为低电平时,LED相应段点亮。
5根据实际和需要,本次设计选用定时器0做时钟定时,按方式1工作,每隔50ms溢出中断一次,计满20次为止。
6P0.0---P0.7段控线,接LED的显示段a,b,c,d,e,f,g,dp,P2.0—P2.3,P2.4—P2.7从位控线,从左至右(LED7,LED6,LE5,LED4,LED3,LED2,LED1,LED0)。
7使用定时器/计数器0,定时功能,工作方式1,提供50毫秒的定时时间,以中断方式工作,计满20次即得到秒计时单位;应用了显示字符段选码表(共阳极代码首地址TAB)
3.2设计课题软件系统个模块功能简要介绍
本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。
主程序:
主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。
中断服务程序:
主要是用于电子钟的准确运行、数据输入过程中的闪烁。
键盘输入程序模块:
主要是用于确定按键并得到特定的键码值。
数码管及其驱动模块:
主要是用于驱动数码管及利用数码管显示时间。
延时模块:
程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。
3.3设计课题软件系统程序流程框图
系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程
序转变成十六进制程序语言,接着使用Proteous进行仿真,读出显示数据。
接下图
图3.1电子钟主程序程序流程框图
图3.2键盘扫描程序流程图
图3.3显示程序流程图
N
图3.4中断服务程序流程图
图3.5时钟加1子程序流程图
图3.6时钟缓冲单元清零程序流程图
3.4设计课题软件系统程序清单
;-----------------------------------------------------------------------
;本电子钟实现24小时制,8位数码管显示时分秒,可整点报时
;显示格式:
00-00-00(设置小时十位为0时,不显示)
;通过3只按键来调整时间
;调整键SET_KEY:
P1.1;通过选择键选择调整位,选中位闪烁
;增加键ADD_KEY:
P1.2;按一次使选中位加1
;减少键DEC_KEY:
P1.3;按一次使选中位减1
;P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz
;P3.1为蜂鸣器发声报时
;编程人:
刘亚龙编写日期:
2012年12月28日修改日期(最终):
2013年1月2日
;*******************************************************************;
;堆栈栈底60H;
;*******************************************************************;
;LED数码管显示器设定;
;P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a
;P2.7---P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
;显示缓冲区设定从左到右依次为
7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)
;*******************************************************************;
;独立式键盘设定;
;4个按键A至D分别依次接在P1.0至P1.3口线;
;********************************************************************;;子程序;
;DISP(数码管显示子程序)
;DL(1毫秒延时子程序,晶振频率12MHz)
;*******************************************************************;
;常数表格;
;TAB(共阳数码管字型代码表)
;DISBH(系统提示符P.字型代码序号表)
;*******************************************************************;
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPTT
;*******************************************************************;
;系统监控程序区
ORG0030H
MAIN:
MOVSP,#60H;确立堆栈区
MOVPSW,#00H;初始化PSW,通用寄存器组为第0组
MOVR0,#20H;RAM区首地址
MOVR7,#96;RAM区单元个数
ML:
MOV@R0,#00H
INCR0
DJNZR7,ML
KP:
MOVDPTR,#DISB;系统初始化后提示符“P.”字符代码表首地址
MOVR5,#08H
MOVR0,#78H
DISP:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR5,DISP
LCALLDIR;调显示子程序显示提示符“P.”
LOOP:
LCALLDIR;调显示子程序
LCALLKEY;调键扫
JNB20H.0,LOOP;若A键未按下,转LOOP
;------------------时钟运行程序----------------------
MOVR0,#78H;显示缓冲区全清零
MOVR7,#08H
YUN:
MOV@R0,#00H
INCR0
DJNZR7,YUN;存"-"的字形代码
MOV7AH,#0AH
MOV7DH,#0AH
MOVTMOD,#01H;选择定时器0,工作方式1
MOVTL0,#0B0H;置定时初值
MOVTH0,#3CH
MOV30H,#20;设置中断溢出次数
KDS:
SETBEA;开总中断
SETBTR0;开定时器
SETBET0;开定时器中断
YUN1:
LCALLDIR;调显示程序
LCALLKEY;调键扫
JB20H.0,TIAOZ;A键按下,转TIAOZ
LJMPYUN1
;-----------------时钟调整程序---------------------
TIAOZ:
CLRTR0;关定时器
LCALLKEY;调键扫
JB20H.0,KDS;若A键按下,转YUN
JB20H.1,ADH;若B键按下,转ADH
JB20H.2,ADM;若C键按下,转ADM
JB20H.3,ADS;若D键按下,转ADS
LCALLDIR;调显示程序
LJMPTIAOZ;若无键按下,转TIAOZ
ADH:
LCALLDIR;时加1
MOVR0,#7FH
LCALLDADD1
MOVA,R2
CJNEA,#24H,ADH1
LCALLCLR0
ADH1:
LCALLDIR
LJMPTIAOZ
ADM:
LCALLDIR;分加1
MOVR0,#7CH
LCALLDADD1
MOVA,R2
CJNEA,#60H,ADM1
LCALLCLR0
ADM1:
LCALLDIR
LJMPTIAOZ
ADS:
LCALLDIR;秒加1
MOVR0,#79H
LCALLDADD1
MOVA,R2
CJNEA,#60H,ADS1
LCALLCLR0
ADS1:
LCALLDIR
LJMPTIAOZ
;**********************************************************************;
;常数表格区
;系统初始化后提示符“P.”字符代码表
DISB:
DB0BH,0BH,0BH,0BH,0BH,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 数字 电子钟