基于单片机的电脑钟的设计.docx
《基于单片机的电脑钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电脑钟的设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于单片机的电脑钟的设计
目录
绪论6
第一章电子时钟7
1.1电子时钟简介7
1.2工作原理:
7
第二章单片机简介及应用8
2.1单片机的简介8
2.2单片机的发展8
2.3单片机的特点9
2.4AT89C51单片机简述10
2.5单片机的应用实例10
第三章Proteus简介11
3.1软件的特点:
11
第四章原理图功能说明12
4.1整体功能说明12
4.2模块功能说明13
4.2.1AT89C51引脚图及管脚说明13
4.2.2晶振电路15
4.2.3LED数码管15
4.2.4系统总体原理图16
第五章程序流程图19
5.1时钟显示程序流程图19
5.2参考程序20
心得体会24
附表一:
元件清单25
参考文献26
绪论
一、设计目的
计算机控制系统课程设计是自动化专业的一个重要实践教学环节。
在课程设计过程中,学生通过一个较完整的设计过程,可以加深对本门课程所学理论知识的理解与应用,提高学生对所学理论知识的综合运用能力,使学生对计算机控制系统有一个整体认识,掌握计算机控制系统的设计方法。
通过课程设计,还可以培养学生独立工作能力,为将来毕业设计打好基础。
二、功能设计
1.用AT89C51单片机及接口电路设计一个电子计时器。
①系统硬件设计:
根据任务要求,完成单片机最小系统及其扩展设计,组成功能完整的系统。
②系统软件设计:
根据数字电子计时器功能,完成控制软件的编写与调试,并对数码显示进行控制。
2.实现的功能:
①开机时,电子钟从00:
00:
00开始自动计时。
②设置按键,能对时、分、秒进行调整。
三、设备及工作环境
1.硬件:
计算机一台。
2.软件:
Keil单片机编译软件,proteus仿真软件。
四、设计思路
电子计时器主要由AT89C51、显示模块、控制模块和计时运算模块四大部分组成。
其中控制模块和计时运算模块主要对时、分、秒的数值显示和调整进行操作,并且秒计算到60时,自动清零并向分进1;分计算到60时,自动清零并向时进1;时计算到24时,自动清零。
这样,就形成了循环计时,显示模块主要用来显示当前计数值。
A89C51是整个设计的核心,主要用来产生定时中断,传输数据和控制各个部件工作。
第一章电子时钟
1.1电子时钟简介
电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:
比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。
1.2工作原理:
电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,具有校时功能和报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。
主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计时器,可实现对一天24小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。
第二章单片机简介及应用
2.1单片机的简介
自从1971年微型计算机问世以来,随着大规模集成电路技术的进一步发展,导致微型计算机向两个方向发展:
一是高速度、高性能、大容量的高档微型计算机及其系列化,向大、中型计算机的挑战;另一个是稳定可靠、小而廉、能适应各种控制领域需要的单片机。
单片机是把中央处理单元、随机存储器、只读存储器、定时/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
虽然单片机只是一个芯片,但从组成和功能上看,它已具有了微型计算机系统的含义,从某种意义上说,一块单片机芯片就是一台微型计算机。
自从1975年美国德克萨斯公司推出世界第一个4位单片机TMS——1000型以来,单片机技术不断发展,目前已成为微型计算机技术的一个独特分支,广泛应用于工业控制、仪器仪表智能化和家用电子产品等各个控制领域。
2.2单片机的发展
1975年4位单片机的产生开创了单片机的历史,由于4位单片机具有较高的性能价格比,主要用于家用电器和电子玩具,如电视机、空调机、洗衣机、微波炉等。
1976年美国Intel公司首次推出了8位单片机MCS-48系列,从而进入了8位单片机时代。
1978年Motorola公司推出6801系列的8位机。
早期的8位单片机的功能较差,一般都没有串行I/O口,几乎不带A/D、D/A转换器,中断控制和管理能力也较弱,并且寻址空间的范围小(小于8KB)。
随着集成工艺水平的提高,一些高性能8位单片机相继问世,增加了通用串行通信控制,强化中断控制功能,增加了定时/计数器的个数,扩展了存储器的容量,部分系列单片机内还集成了A/D、D/A转换接口。
如Intel公司的MCS-51系列、NEC公司的μPD78XX系列等。
为了提高单片机的控制功能,拓展其应用领域,在高档8位单片机基础上,又推出新一代8位单片机,如Intel、Phillips、Atmel、华邦公司的80C51系列,Motorola公司的MC68HC11系列,Microchip公司的PIC16C系列等。
8位单片机功能强、品种多、价格低廉,因而广泛应用于各个领域。
继8位单片机以后,16位单片机逐渐问世并得到很大的发展,Intel公司于1983年推出的MCS-96系列单片机就是其中的典型产品。
16位单片机的集成度更高,内部除有常规I/O口、定时/计数器、全双工串行口外,还有高速I/O部件、多路A/D转换器、脉冲宽度调制器及监视定时器等,运算速度更快。
近年来还出现了32位单片机,例如英国Inmos公司的IMST414单片机、Intel公司的80960单片机、日本NEC公司的μPD77230单片机,可用于高速控制、图像处理、语音偶A/DA处理和数字滤波等
从单片机的结构上看,单片机的发展趋势将向着片内存储器容量增加、高性能、高速度、多功能、低电压、低功耗、低价格以及外围接口电路内装化等方向发展。
1.大容量和高性能化:
新一代8位单片机的CPU及寄存器都采用16位,内部总线也采用16位,有的还采用流水线技术以及RISC精简指令集计算机技术,指令执行速度可达100ns,堆栈的空间达64KB,并支持C语言的开发。
内部RAM在1MB以上,内部ROM可达48KB,存储器寻址可达16MB。
2.多样化的I/O口及电路内装化:
随着集成度的不断提高,尽可能把众多的各种外围功能部件集成在片内。
单片机内部一般带有存储器、定时/计数器、串行口、并行口,目前较高档的单片机内部还集成A/D、D/A、DMA控制器、声音发生器、监视定时器、液晶显示驱动、PWM端口、FIP控制、彩色电视机和录像机用的锁相电路等多样的I/O接口。
3.低功耗、宽范围的电源电压:
许多单片机工作电压范围大,而且可在低电压下工作。
单片机的发展前景是非常乐观的,其应用范围也将更加广泛。
2.3单片机的特点
单片机结构上的设计主要是满足控制的需要,因此,它在硬件结构、指令系统及I/O能力等方面均有其独特之处,其显著的特点之一就是具有非常有效的控制功能,故也可以把单片机成为微控制器。
与普通的微型计算机相比,单片机主要具有以下特点:
(1)体积小、结构简单、可靠性高单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于恶劣环境下工作。
(2)控制功能强单片机虽然结构简单,但是它“五脏俱全”,已经具备了足够的控制功能。
单片机具有较多的I/O口,CPU可以直接对I/O口进行I/O操作、算术操作、逻辑操作和位操作,指令简单而丰富。
所以单片机也是“面向控制”的计算机。
(3)低电压、低功耗单片机已可在2.2V的电压下运行,有的已能在1.2V或0.9V电压下工作;工耗降至μA级,一颗纽扣电池就可以长期使用。
(4)优异的性能价格比由于单片机构成的控制系统硬件结构简单、开发周期短、控制功能强、可靠性高,因此,在达到同样功能的条件下,用单片机开发的控制系统比用其他类型的微型计算机开发的控制系统价格更便宜。
2.4AT89C51单片机简述
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
2.5单片机的应用实例
下面以单片机在遥控及数字调谐电视接收机中的应用为例进行介绍。
单片机在电视接收机中的应用,大致分为两个领域:
一是用于操作控制系统;二是用于图像、声音信息的处理。
属于前一领域的应用有红外遥控、数字调谐、节目预约、功能显示和语言遥控等。
现在以数字调谐选台电路为例加以说明,如图1所示。
当进行预置选台是,有本机键盘或遥控发出预置选台指令、单片机控制器读入指令后首先进行解码(通过执行解码程序完成,每一种控制功能都对应一段控制程序,分别写于程序存储器ROM中的不同区域,用地址码来选择)。
解码的结果是识别出输入的控制功能指令代码所代表的控制功能,即找到该控制功能所对应控制程序的首地址,然后从该首地址开始执行这段程序。
在控制程序的控制下,对时钟脉冲进行变换处理,由微控制器的搜索计数器进行加减计数,产生数字选台数据,其中数字频信息送至频段译码电路,得到三个频段(VL、VH、U)的控制电压送至调谐器完成频段的切换;而数字调谐电压信息送至微控制器内的D/A转换器,以便合成频率和宽度为特定值的脉冲宽度调制(PWM)信号,经低通滤波器变换成直流调谐控制电压VT,也送至调谐器进行频段内不同频道的选择,两种信号共同作用完成选台。
控制电路还送出供显示选台及接收机调整状态的标记用的信号。
第三章Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
3.1软件的特点:
①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
③目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
④支持大量的存储器和外围芯片。
总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。
第四章功能说明
4.1整体功能说明
在LED数码管上能实现数字计时器的时、分、秒显示,并能对时、分、秒进行加1校对和清零.通过控制键控制计时器的开始,暂停,继续和清零.并且开机时时钟时从00:
00:
00开始计时的。
4.2模块功能说明
4.2.1AT89C51引脚图及管脚说明
图1AT89C51引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写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)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.2.2晶振电路
单片机芯片可使用内部时钟电路和外部时钟电路两种方式产生电路所需的时钟脉冲,内部时钟电路实现可用石英晶体和微调电容外接即可达到,外部时钟电路实现需要一个外部脉冲源引入脉冲信号以保证个单片机之间时钟信号的同步。
从硬件实现难易角度考虑,内部时钟电路的实现比外部时钟电路的实现更简易。
既本数字电子钟设计所需的时钟源采用内部时钟电路实现。
所用定时方式为工作方式1,石英晶振为12M,即最小定时时间为1us,最大定时时间约为65.5ms,其电路图如下图2所示。
图2晶振电路图
4.2.3LED数码管
7SEG-MPX8-BLUE是7段8位共阳级数码管,DP为小数点,位码(1-8)应轮流通低电位,段码控制数码管的显示:
0-b,1-g,2-a,3-f,4-c,5-e,6-h,7-d.共阳极LED数码管,它是将发光二极管的阳极短接后作为公共阳极.当驱动信号为高电平才能发光。
4.2.4系统总体原理图
1.系统总体原理图
按下总控的按键,显示器会显示从00:
00:
00开始计时。
2.调秒原理图
按下总控的按键,显示器上的控制字不再跳动,然后按调秒的按键,每按一下,秒对应的显示位会加1。
3.调分原理图
按下总控的按键后,显示器上的显示字不在跳动,再按调分的按键,每按一下,对应的显示器上的分位就会加1。
4.调时原理图
按下总控的按键后,显示器上的显示字不在跳动,按下调时的按键,每按一下,显示器上对应的时为就会做加1操作。
图3系统总体原理图
图4调秒原理图
图5调分原理图
图6调时原理图
第五章程序流程图
5.1时钟显示程序流程图
时钟显示程序流程图如下图
图7时钟显示程序流程图
5.2参考程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPMIAO
ORG000BH
LJMPSHI
ORG0013H
LJMPFEN
ORG001BH
LJMPSZ
MAIN:
MOVR7,#20
MOVR4,#00H
MOVR5,#00H
MOVR6,#00H
MOVTMOD,#16H
MOVTH1,#3CH
MOVTL1,#0B0H
MOVTH0,#0FFH
MOVTL0,#0FFH
SETBTR0
SETBTR1
SETBEA
SETBET1
SETBPT1
SETBIT0
SETBIT1
CLREX0
CLREX1
CLRET0
LOOP:
MOVA,R4
MOVB,#10
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#01H
LCALLDELAY
MOVP0,#0FFH
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#02H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
MOVP1,#04H
MOVP0,#0F6H
LCALLDELAY
MOVP0,#0FFH
MOVA,R5
MOVB,#10
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#08H
LCALLDELAY
MOVP0,#0FFH
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#10H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
MOVP1,#20H
MOVP0,#0F6H
LCALLDELAY
MOVP0,#0FFH
MOVA,R6
MOVB,#10
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#40H
LCALLDELAY
MOVP0,#0FFH
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#80H
LCALLDELAY
MOVP0,#0FFH
MOVP2,#0FFH
JNBP2.0,TIAOJIE
LCALLDELAY
LJMPLOOp
TIAOJIE:
CPLET0
CPLET1
CPLEX0
CPLEX1
LJMPLOOP
DELAY:
MOVR3,#100
DEL2:
MOVR2,#10
NOP
DJNZR2,$
DJNZR3,DEL2
RET
LCALLDELAY
LJMPLOOP
ORG0100H
SZ:
PUSHACC
MOVTH1,#3CH
MOVTL1,#0B0H
DJNZR7,L2
MOVR7,#20
INCR4
MOVA,R4
CJNEA,#60,L2
MOVR4,#00H
INCR5
MOVA,R5
CJNEA,#60,L2
MOVR5,#00H
INCR6
MOVA,R6
CJNEA,#12,L2
MOVR6,#00H
L2:
POPACC
RETI
ORG0200H
MIAO:
CLREA
INCR4
SETBEA
RETI
FEN:
CLREA
INCR5
SETBEA