最新版基于51单片机的数字钟毕业设计论文.docx
《最新版基于51单片机的数字钟毕业设计论文.docx》由会员分享,可在线阅读,更多相关《最新版基于51单片机的数字钟毕业设计论文.docx(33页珍藏版)》请在冰点文库上搜索。
![最新版基于51单片机的数字钟毕业设计论文.docx](https://file1.bingdoc.com/fileroot1/2023-5/24/5666dea0-f508-4a10-b069-304f9489df87/5666dea0-f508-4a10-b069-304f9489df871.gif)
最新版基于51单片机的数字钟毕业设计论文
武汉大学电子信息学院
电子系统综合设计课程论文
基于51单片机的数字钟设计
专业:
年级:
作者:
指导教师:
2012年6月16日
目录
1作品的背景与意义1
2功能指标设计1
3作品方案设计1
3.1总体方案的选择1
3.1.1方案一:
基于单片机的数字钟设计2
3.1.1方案二:
基于数电实验的数字钟设计3
3.1.2两种方案的比较...............................................................................................3
3.2控制方案比较3
3.3显示方案比较3
3.4单片机理论知识介绍4
3.4.1单片机型号.....................................................................................................5
3.4.2硬件电路平台.................................................................................................6
3.4.3内部时钟电路................................................................................................7
3.4.4复位电路.........................................................................................................7
3.4.5按键部分........................................................................................................8
4硬件设计9
4.1显示模块电路图9
5软件设计11
5.1主程序流程图11
5.2中断服务以及显示12
6系统测试13
6.1测试环境13
6.2测试步骤13
6.2.1硬件测试13
6.2.2软件测试13
1.连接单片机和计算机串接...................................................................................136.2.3实施过程....................................................................................................................................................................14
6.3测试结果18
7实验总结..............................................................18
7.1代码编写过程中出现问题......................................................................................................................................18
7.2整个实验过程的体会..............................................................................................19
7.3实验误差分析。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
19
参考文献20
附录1系统电路图21
附录2系统软件代码21
附录3系统器件清单26
1作品的背景与意义
数字钟是采用数字电路实现对.时,分,秒。
数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,而且大大地扩展了钟表原先的报时功能。
基于单片机的数字钟具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,生活中诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等也可广泛应用,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
2功能指标设计
本实验中,数字钟是基于单片机实现时、分、秒计时的装置,以单片机SST89E516RD为核心元件同时结合LCD显示器、74HC573锁存器、74HC138译码器、74HC02或非门等芯片在同相应软件结合动态显示“时”、“分”、“秒”的现代计时装置。
还可以具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
3作品方案设计
3.1总体方案的选择
3.1.1方案一:
基于单片机的数字钟设计
在软件各个步骤做到位的前提下,程序主要分为三个板块来设计。
第一,实现数码管的点亮。
16位的指针DPTR高8位是连接P2端口的8位IO口,可控制与P0口连接的锁存器74HC573的使能控制端;DPTR低8位连接P0端口的8位IO口,通过DPTR数据的设置和传输,锁存在74HC573中,一旦使能端有效,便可实现选取数码管的显示位与现实数据,此过程经过两次传输实现。
第二,实现定时器的1S定时,时间到转向秒位的加1。
根据机器周期,计算初值,由于机器内部已经产生周期性脉冲,只需人为通过代码控制计数,1S后转向处理函数即可。
第三,实现按键校正时间。
实验室的单片机有4*4按键和单独与P3口相连的四个按键,由于只实现时分秒的校正,故可选择与P3.2,P3.3,P3.4,P3.5口连接的四个按键较方便,主函数循环扫描是否有按键按下,由于人按键有时间延迟,可选择下降沿触发,若采用电平触发,则需要在处理代码中循环检查,按键松开的后,更改相应位的时间,之后返回主程序。
3.1.1方案二:
基于数电实验的数字钟设计
采用集成电路定时器555组成多谐振荡器,输出1000Hz的振荡频率信号,再由三片74LS90芯片级联组成的分频器进行分频,每片为110分频器,三片级联正好获得1Hz的标准脉冲,实现“秒”的记时功能。
再用两片74LS90芯片级联组成六十进制计数器,输入分频器产生的1Hz标准脉冲,实现“分”的计时功能,采用中规模集成电路74LS193计数器两片组成“12翻1”的计数器件,输入六十进制计数器产生的脉冲,在通过LED显像管显示时间,即可实现数字钟功能。
即当计数器计时到12时59分59秒,再来一个秒脉冲,数字钟自动显示00时00分00秒,实现日常的生活习惯用的计量规律。
图3.1数字钟电路
3.1.2两种方案的比较
基于单片机的数字中设计可将软件与硬件相结合,在计算机的上编写代码,然后将代码通过数据线输入到单片机,输出指令运行。
其显示的精确度除了与本身的程序优劣外还收到计算机的运行速度有关,但可以人为的提高代码质量和优化计算机运算速度来实现改善。
而且可以在只变代码的情况下扩展数字钟功能,如特定时间响鸣,如显示星期,功能多变实用,软件代码编写测试检验相对简单。
基于555的硬件数字钟,由于硬件芯片已经封装集成,芯片本身存在传输数据误差,且在人为连接组装芯片的时候会由于导线等各种原因会出现较大误差。
功能比较有限,如果需要附加功能,可能需要改变硬件线路,这比软件编写较困难。
3.2控制方案比较
基于单片机设计数字钟方案的控制器件包括SST89E系列51单片机系统,电脑提供的+5V电源,LED动态显示电路,按键输出部分,输出电路等几部分组成。
单片机有多种选择,数字钟设计用51单片机较好,51单片机是单片机中的一种,单片(single-chipmicrocomputer)是一块集成芯片,但不是一块实现某一个逻辑作用的芯片,而是在这块芯片当中,集成了一个计算机系统。
如中央处理器(CPU)、存储器(ROM,RAM)、IO接口、定时器计数器、中断系统等。
中央处理器是单片机的核心单元,他由运算器和控制器组成,他的主要作用是实现算术运算、逻辑运算、和控制。
SST89E系列51单片机主要包括SST89E51RD,SST89E52RD,SST89E54RD,SST89E58RD,SST89E554RD,SST89E554564等。
与其它MCS51系列单片机相比,其突出特点是:
内部嵌入SuperFlash存储器:
提高器件抗干扰性能,SST的MCU在51系列中是抗干扰性能最好的;可编程计数器阵列(产生PWM输出);有·IAP功能(能够支持远程在线下载和修改程序);增强的双倍速模式:
比其它所有的51单片机执行速度快一倍。
3.3显示方案比较
依次点亮八段码,设置较快的扫描频率,在段式液晶上面形成稳定的输出。
本实验中的C51单片机上采用8位8段LED数码管显示,数码管引脚如下:
图3.2LED管实图图3.3LED电路图
LED有共阴极和共阳极两种。
二极管的阴极连接在一起,通常此为公共阴极接地,而加电压则暗。
共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;为了保护各段LED不被损坏,需外加限流电阻。
本实验利用利用人眼的视觉残留现象,依次点亮每个八段码单元,只要扫描速度超过人眼可以识别的频率,就可以看到稳定的信息输出。
本实验中写了一个小程序,来测试此单片机是共阳极还是共阴极。
图3.4共阴极高电平驱动图3.5共阳极低电平驱动
本设计中,应用单片机平台上的LED显像管比较合适和方便。
3.4单片机理论知识介绍
51单片机:
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。
汇编语言:
汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。
汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。
但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。
汇编语言可以与高级语言配合使用,应用十分广泛。
ISP:
ISP(In-SystemProgramming)在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。
已经编程的器件也可以用ISP方式擦除或再编程。
本次课程设计便使用ISP方式,直接将编写好的程序下载到连接好的单片机中进行调试。
3.4.1单片机型号
SST89E516RD是SST公司出产的一款基于8051内核的8位单片机,SST89E516RD最大的特点是具有在线调试和在线下载功能,为工程开发中的调试提供了最大的方便。
该芯片中含有1K的RAM和64K+8K的内置可擦除程序存储器ROM。
其程序存储器达到了51内核结构单片机寻址的最大范围,能够满足大容量程序存储的要求。
SST89E156RD在5V电压下可以工作在0~40MHz的频率范围。
SST的MCU除了具备和一般单片机一样,可以通过专用编程器将程序代码烧写到片内ROM中,然后装入系统运行程序以外,还具备另外两种特殊的下载和仿真功能。
程序下载功能:
SST单片机可以不需要编程器,直接通过串行通信口,将程序下载到单片机ROM中,且下载的程序在单片机断电后仍会保存,不会丢失。
程序下载后,直接复位或者重新上电单片机就可以工作。
在线仿真功能:
SST单片机还具有在线仿真功能,同样通过单片机的串口,通过在keil软件中设置可以实现在线仿真,具有单步执行、全速执行、设置端点等调试功能。
图3.6SST89E156RD芯片图
3.4.2硬件电路平台:
“MCS51单片机系统学习板V1.1”是武汉大学电子创新平台中的单片机学习和开发平台。
它兼容DIP40封装的51系列单片机,板上配备SST公司的SST89E516RD高性能单片机,可利用串口进行在线下载、硬件仿真和断点调试。
系统采用基于总线结构的设计,板上既具有普通的IO实验,更多的采用总线方式扩展板上资源。
图3.751单片机平台
3.4.3内部时钟电路
内部时钟电路是单片机的心脏,它控制着单片机的工作节奏,CPU就是通过复杂的时序电路完成不同的指令功能的。
内部时钟的产生方式是利用单片机内部的振荡器,然后在引脚X1(18脚)和X2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率范围可1.2MHz-12MHz之间选择。
为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。
3.4.4复位电路
MCS-51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位方式有上电复位和按键手动复位两种方式。
上电复位:
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
下图为复位电
路RC。
图3.8复位电路
手动复位:
通过接通按钮开关,使单片进入复位状态。
复位电路虽简单,但很重要。
一个单片机系统能否正常运行,首先要检查是否能复位成功。
初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值进行实验。
3.4.5按键部分
它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:
功能移位键、功能加键、功能减键、定闹键。
并采用独立式按键。
在XD1—2键盘上选定3个键分别作为小时、分、秒的调校键。
每按一次键,对应的显示值便加1。
分、秒加到59后变为00;小时加到23后再按键即变为00。
再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变)。
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的IO端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用IO口线构成单个按键电路,每个按键占用一条IO口线,每个按键的工作状态不会产生互相影响。
4硬件设计
4.1显示模块电路图
图3.9LED电路图
由MCS51单片机系统的硬件原理图可知,8位数码管的显示由SEL1—8端控制由哪个数码管显示,由SEG_A---G端控制显示的数据,同时这两个端口都与P0口相接的74HC573的输出有关,而控制端分别为与非门输出口的CS_LED_SEL11,CS_LED_SEG11,由此找到CS3,CS2与非门输入端,同时CS3,CS2为HC138译码器的输出,由高8位的A控制,故可通过对高8位的设置从而来控制数码管的显示。
图4.174HC138芯片图
图4.2或非门电路图4.374HC573芯片图
5软件设计
5.1主程序定时器的程序流图
图4.4主程序定时器的程序流图
5.2中断服务以及显示
图4.5中断服务以及显示
6系统测试
6.1测试环境
硬件:
MCS51单片机系统一片一片,计算机一台,通讯电缆一根,数据线一根。
软件:
WindowsXP操作系统、Keil51软件,SoftICE监控程序。
6.2测试步骤
6.2.1硬件测试
先检测单片机与计算机的连接问题,将单片机设置为可控制状态;由于我们拿到的是现成的51单片机,首先编先一段程序检测LED数码管是否完好,同时利用这个小程序可以检测数码管是共阴极还是共阳极类型,查看晶体振荡器的振荡频率,复位是否有效,电源是否接通好等硬件设施。
6.2.2软件测试
1.连接单片机和计算机串接
SoftICE的下载与使用:
SoftICE的英文是SoftwareInCircuitEmulator的简称,其翻译成中文就是在线
的软件仿真器的意思,它是SST公司为方便SST用户在使用SST单片机(包括
SST89C5xSST89x564RD554RC516RD25XRD2)调试程序所开发的开发工具,这个SST的仿真器功能可以代替大部分的专用仿真器的功能,使单片机工程师在开发单片机时省却了价格昂贵的仿真器和编程器,使得51单片机的开发更加容易和普及并且SST的单片机价格便宜,出厂时就包含了在线下载和在线仿真的功能。
SoftICE监控程序占用89E516RD的MCU的5Kbyte程序空间为:
BLOCK1的4Kbyte从0000h到0FFFh
BLOCK0的1Kbyte从FC00h到FFFFh
由于SST的MCU在出厂时已经将BOOTLOADER的下载监控程序写入到芯片中,因此无需编程器就可通过SSTBOOT-STRAPLOADER软件工具将用户程序下载到SST的MCU中,从而运行用户程序。
SSTBOOT-STRAPLOADER软件工具还可将原来的MCU内部的下载监控程序转换为SoftICE的监控程序从而实现SOFTICE的仿真功能。
执行SSTEasyIAP11F.exe软件运行SSTBoot-StrapLoader,在内部模式下检测到对应器件的型号后,SoftICE固件通过按SoftICE菜单下“DownloadSoftICE”选项下载,便将SoftICE固件下载到MCU,在BLOCK1的SSTBoot-StrapLoader会被SoftICE固件代替,详细操作步骤如下:
1、选择连接的串口,选择DetectTargetMCUforFirmware1.1FandRS232Config:
2、选择芯片型号和内部存储器模式,选择SST89EV516RD2和InternetMemory:
3、选择串口波特率MCU的晶振频率,串口号为COM1,晶振频率为11.0592MHz:
4、按确定后再重新复位MCU:
5、如果通讯成功在窗口的右上角可以显示出芯片的型号及BOOTLOADER的版本信息:
6、点击DOWNLOADSOFTICE的按钮即可将MCU内部的BOOTLOADER的监控程序更换为
SOFTICE的监控程序:
7、点击确定按钮确认转换为SOFTICE的监控程序:
8、这是转换后的提示信息,说明转换SOFTICE监控程序成功:
9、此时这片SST89E516RD芯片便具备了SOFTICE的在线仿真的功能。
10、若要将KeilC编译生成的HEX文件下载到MCU中,则在通讯成功(参见5)后,点击Download或者DnloadRunUserCode:
11、点击浏览后选择需要下载的HEX文件,然后点击“OK”确定:
12、然后点击“是”确认下载,或者点击“否”放弃下载。
6.2.3实施过程
1.第一个小程序:
点亮最右边的数码管,显示设定的数字
ORG0000H
JMPMAIN;转入主程序
ORG0100H;主程序
MAIN:
MOVA,#0FEH;选择最右边的数码管
MOVDPTR,#8300H;通过SEL选择数码管地址端
MOVX@DPTR,A;将最右边数码管的地址传给低8位p0口,点亮
MOVA,#3FH;设置显示数字,0
MOVDPTR,#8200H;通过SEG选择显示的数据
MOVX@DPTR,A;将要显示的数据的地址传给低8位p0口,显示
LJMPMAIN;使程序一直在主程序中,之前少了这句,编译
通过,却运行不了
END
2.第二个小程序:
点亮最右边的数码管,从TAB字表中选择想要显示的数字
ORG0000H
JMPMAIN
ORG0100H
MAIN:
MOV7EH,#3;用地址7EH做十进制数据3的缓冲区
MOVR0,#7EH;将数据3寄存在R0寄存器
MOVDPTR,#TAB;将DPTR指针指向字表
MOVA,R0;把R0中的数据放到A中,注意区别于
MOVC+DPTR;从字表中取出从0开始的编号为3的数存在A
MOV;显示A中的数据
MOVX@DPTR,A
MOV;选择最右边的数码管
MOV
MOVX@DPTR,A
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
3.第三个小程序:
用定时器T0在秒位(最右边的数码管)上实现1S加1显示
初始值的计算:
模式0最长定时约16ms,
模式1最长可定时约130ms,
模式2最长可定时约510us
要实现1s定时,可选择模式1,每个50ms中断一次,中断20次为1s。
根据公式,设初值为X
(216----X)*12(12*106HZ)=50*10-3s
所以算得
X=15536=3CB0H
故初值(TL0)=0B0H,(TH0)=3CH
代码:
ORG0000H
JMPMAIN
ORG000BH;T0中断入口
AIMPSERVE;转入中断
ORG0030H
MAIN:
MOVB,#14H;中断次数20
MOVTMOD,#01H;打开定时器T0,模式1
MOVTL0,#0B0H;设定初始值
MOVTH0,#3CH
SETBTR0;启动定时器T0