数字钟基于51单片机汇编语言设计.docx
- 文档编号:11446981
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:36
- 大小:333.22KB
数字钟基于51单片机汇编语言设计.docx
《数字钟基于51单片机汇编语言设计.docx》由会员分享,可在线阅读,更多相关《数字钟基于51单片机汇编语言设计.docx(36页珍藏版)》请在冰豆网上搜索。
数字钟基于51单片机汇编语言设计
《51单片机数字时钟》
课程设计报告
专业:
电气工程及自动化
班级:
08电气技师本科班
姓名:
指导教师:
西安工程技师学院
二〇一一年十二月二十八日
前言··················································Ⅲ
摘要··················································Ⅳ
一、单片机数字时钟设计的概述···························1
1.1设计目的············································1
1.2题目描述············································1
1.3单片机基础知识······································1
1.4MCS-51单片机介绍及分类·····························3
1.5数字钟基本原理······································3
二、单片机数字时钟的硬件系统···························4
2.1单片机最小系统的电路原理····························4
2.2MCS-51单片机AT89C51芯片介绍·······················5
2.2.1AT89C51芯片引脚功能介绍······················5
2.2.2AT89C51芯片的内存结构························6
2.2.3复位电路······································8
2.2.4时钟震荡电路··································9
2.3七段数码管的引脚图及使用···························10
2.4驱动器74LS245芯片·································11
三、单片机数字时钟的程序设计···························12
3.1系统开发环境、汇编语言······························12
3.1.1系统开发环境·································12
3.1.2汇编语言·····································12
3.2数字时钟设计的思路及流程···························14
3.2.1主程序·······································14
3.2.2定时中断(走时)子程序流程···················15
3.2.3按键调试子程序·······························16
3.3定时器、计数器功能·································16
3.4中断系统功能·······································18
四、数字时钟系统的仿真及运行··························19
4.1WAVE6000仿真软件介绍······························19
4.2程序设计及运行结果·································21
4.2.1数字时钟源程序·······························21
4.2.2Wave6000仿真程序运行调试结果·················25
4.2.3Proteus仿真电路运行调试结果·················25
五、心得体会··········································26
六、参考文献··········································28
前言
随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。
现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加了数字钟的功能。
其电路可以由实时时钟模块、环境温度检测模块、人机接口模块、报警模块等部分组成。
利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。
但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对、时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
摘要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245驱动器的工作原理和与LED连接的方法。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。
此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。
而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
通过它可以进一步学习与掌握单片机原理与使用方法。
关键词:
单片机AT89C51共阴极LED数码显示器74LS245译码器
一、单片机数字时钟设计的概述
1.1设计目的
1、利用所学过的知识,初步分析单片计算机控制系统的能力;
2、利用单片机定时器制作数字时钟并可以实现时钟的控制;
3、综合运用本专业方向所学知识,构成以单片机为核心控制系统的能力;
4、单片计算机控制系统实时软件的设计、编制与调试的能力;
5、单片计算机控制系统中模拟部件以及常规传感部件的使用、调试的能力;
6、掌握数码管动态显示方法。
7、学习AT89C51芯片管脚及其功能。
8、单片计算机控制系统综合调整及性能测试的能力;
9、实验结果分析、总结及撰写技术报告的能力。
1.2题目描述
1、掌握单片机最小系统的电路原理图;
2、熟知单片机的工作原理;
3、小组共同编辑、编译软件;
4、调试要求:
(1)数码管显示当前的时间值;
(2)时间精度为1秒,由秒个位数码管变化体现;
(3)闪烁显示时钟;
(4)调试数字时钟;
(5)四个按钮,K1用作“秒”的设定;K2用作“分”的设定;K3用作“时”的设定;K4用作复位设定;
1.3单片机基础知识
所谓单片机,通俗的来讲,就是把中央处理器CPU(CentralProcessingUnit),存储器(memory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。
单片机又称为“微控制器MCU”。
中文“单片机”的称呼是由英文名称“SingleChipMicrocomputer”直接翻译而来的。
单片机的主要分类:
1、按应用领域可分为:
家电类,工控类,通信类,个人信息终端类等等;
2、按通用性可分为:
通用型和专用型。
通用型单片机的主要特点是:
内部资源比较丰富,性能全面,而且通用性强,可履盖多种应用要求。
所谓资源丰富就是指功能强。
性能全面通用性强就是指可以应用在非常广泛的领域。
通用型单片机的用途很广泛,使用不同的接口电路及编制不同的应用程序就可完成不同的功能。
小到家用电器仪器仪表,大到机器设备和整套生产线都可用单片机来实现自动化控制。
专用型单片机的主要特点是:
针对某一种产品或某一种控制应用而专门设计的,设计时已使结构最简,软硬件应用最优,可靠性及应用成本最佳。
专用型单片机用途比较专一,出厂时程序已经一次性固化好,不能再修该的单片机。
例如电子表里的单片机就是其中的一种。
其生产成本很低。
在我们的这个网上课堂中,介绍的是MCS-51系列单片机,MCS-51单片机也是一种通用单片机,其结构及原理对所有的单片机都适用。
3、按总线结构可分为总线型和非总线型。
如我们常常见到的89C51单片机就是总线结构,在后面讲解单片机的内部结构时,我们就可以看到,89C51单片机内部有数据总线,地址总线,还有控制总线(WR,RD,EA,ALE等)。
89C2051单片机,就是一种非总线型的。
其外部的引脚很少,可使成本降低。
(1)单片机特点:
1)受集成度限制,片内存储器容量较小,一般内ROM:
8KB以下;
2)内RAM:
256KB以内;
3)可靠性高;
4)易扩展;
5)控制功能强;
6)易于开发。
(2)单片机的发展过程:
1971年intel公司研制出世界上第一个4位的微处理器;
1973年intel公司研制出8位的微处理器8080;
1976年intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。
80年代初,intel公司在MCS-48单片机基础上,推出了MCS-51单片机。
1.4MCS-51单片机介绍及分类
MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。
INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。
以后我们将用89C51、89S51来完成一系列的实验。
MCS-51系列单片机分为两大系列,即51子系列与52子系列。
51子系列:
基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951。
52子系列:
增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952。
这两大系列单片机的主要硬件特性如表1:
片内ROM模式
ROM
大小
RAM
大小
寻址
范围
I/O特性
中断源
数量
无
ROM
EPROM
计数器
并行口
8031
8051
8751
4KB
128B
64KB
2*16
4*8
5
80C31
80C51
87C51
4KB
128B
64KB
2*16
4*8
5
8032
8052
8752
8KB
256B
64KB
3*16
4*8
6
80C32
80C52
87C52
8KB
256B
64KB
3*16
4*8
6
上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。
51系列的中断源为5个,52系列的中断源为6个。
1.5数字钟基本原理
它是利用单片机的内部的定时/计数器工作与定时方式,对机器周期计数形成基准时间(如10ms)然后用另外一个计数器或软件计数的形式对基准时间进行计数形成秒(如对10ms计数100次),“秒”计数60次形成“分”,“分”计数60次形成“时”,“时”计数24次形成“天”并清零,然后通过译码器,数码管把他们的内容在相应的位置显示出来。
在具体的设计时定时器采用中断方式工作,对时钟的形成在终中断序中实现,在主程序只是对定时/计数器的定义初始化,调用显示程序和控制程序的初始化。
另外为了使用的方便,也设计了按键,可以通过按键对时分秒进行调整,这样程序就加了按键程序。
二、单片机数字时钟的硬件系统
2.1单片机最小系统的电路原理
51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。
2.2MCS-51单片机AT89C51芯片介绍
2.2.1单片机AT89C51引脚功能介绍
根据初步设计方案的分析,设计一个数字时钟的应用系统,以MCS-51系列单片机AT89C51芯片为基础,它将CPU、RAM、ROM、定时器/计数器和多功能部件集成在一块芯片上,在我国应用非常广泛。
AT89C51芯片是40引脚双列直插式封装芯片,如下图。
其中有些管脚具有两种功能。
这40根引脚中包括电源引脚2根、外接晶振引脚2根、I/O引脚32根、控制信号引脚4根。
1、电源类引脚
VCC(40脚):
接+5 V电源正端。
VSS(20脚):
接地端。
2、时钟类引脚
XTAL1(19脚)和XTAL2(18脚):
接外部石英晶体的一端。
P0口(39~32脚):
P0.0~P0.7统称为P0口。
P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
表3P3.0口的第二功能:
口线
功能描述
P3.0
RXD(串行数据输入线)
P3.1
TXD(串行数据输出线)
P3.2
INT0(外部中断0输入引脚)
P3.3
INT1(外部中断1输入引脚)
P3.4
T0(定时器/计数器0的外部输入引脚)
P3.5
T1定时器/计数器0的外部输入引脚)
P3.6
WR(外部数据存储器写选通信号引脚)
P3.7
RD(外部数据存储器读选通信号引脚)
3、控制引脚
RST/VPP(9脚):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
LE/PROG(30脚):
地址锁存允许信号。
PSEN(29角):
外部存储器读选通信号。
EA/Vpp(31角):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
2.2.2AT89C51芯片的内存结构
MCS-51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
1、中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2、数据存储器(RAM)
AT89C51芯片内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3、程序存储器(ROM)
单片机内部的程序寄存器一般为1K~64K字节,通常是只读存储器,因为单片机应用系统大多数是专用系统,一旦研制成功,其软件也就定性,程序固化到只读存储器,用只读存储器作为程序存储器,掉电以后程序不会丢失从而提高系统的可靠性;另外,只读存储器集成度高、成本低。
根据单片机内部程序存储器
类型的不同有可分为下列产品:
(1)ROM行单片机:
内部具有工厂掩膜变成的只读程序储存器ROM。
这种单片机是定制的,用户是不能修改ROM中代码的。
(2)EPROM型单片机:
内部具有EPROM型程序存储器,对于有窗口的EPROM型单片机,可以通过紫外线擦除器擦除EPROM中的程序,用编程工具把新的程序代码写入EPROM,且可以反复擦除和写入。
(3)FLASHMemory型单片机:
内部含有FLASHMemory型程序存储器,用户可以用编程器对FLASHMemory存储器快速整体擦除和逐个字节写入,这种单片机价格也低、使用方便,是目前最流行的单片机。
4、定时/计数器
1)定时器方式寄存器:
TMOD
2)定时器控制寄存器:
TCON
3)计数寄存器:
TH0、TL0;TH1、TL1。
可用于设定计数初值。
5、并行输入输出(I/O)口:
单片机有32个I/O口,P0,P1,P2,P3口。
单片机是一种数字芯片,对于单片机的操作,从某种意义上讲就是对单片机I/O口进行操作,使其按程序规定输出高低电平或者检测I/O口电平,51单片机采用的是TTL电平,规定高电平为+5V,低电平为0V。
2.2.3复位电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
1、手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
2、上电复位
AT89C51芯片的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至22μF。
上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。
上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。
在上图的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。
另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。
如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。
2.2.4时钟震荡电路
1、时钟电路
单片机要不断的从程序存储器中取出指令并执行,这些执行步骤是按节拍进行的,时钟电路就是提供CPU运行节拍的电路。
AT89C51的时钟电路可以由内部或外部两种方式产生。
AT89C51内部具有一个振荡电路,内部方式就是利用该电路在XTAL.1和XTAL.2两引脚之间外接晶振和电容C1、C2构成并联谐振电路,使内部震荡产生自激振荡如图所示。
晶振频率可选择1.2-10MHZ,电容可选则15-100PF,以对时钟频率起微调作用。
2、CPU时序的周期单位
通过之中振荡电路,单片机的每一步工作都按照一定的节拍进行,步调得到同意.描述MCS-51系列单片机的时序单位有4中,即时钟周期.状态周期,机器周期和指令周期。
时钟周期P:
既振荡周期,是MCS-51系列单片机的最小时序单位.例如:
若时钟频率F=12MHZ,则时钟周期=1/F=0.0833us。
状态周期S:
连续两个振荡周期为一个状态周期。
机器周期:
单片机完成某种基本操作的时间称为机器周期。
一个机器周期由6个状态周期(12个振荡周期)构成。
指令周期:
执行一条指令所需要的时间。
MCS-51的指令周期一般需要1或2个机器周期,乘,除法指令为4个机器周期。
若采用上例钟12MHZ的晶振,则执行一条指令相应地需要1us,2us或4us。
晶振频率越高,指令执行的速度越快。
2.3七段数码管的引脚图及使用
数码管使用条件:
a、段及小数点上加限流电阻。
b、使用电压:
段:
根据发光颜色决定;小数点:
根据发光颜色决定。
c、使用电流:
静态:
总电流80mA(每段10mA);动态:
平均电流4-5mA峰值电流100mA。
上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。
LED数码管根据LED的接法不同分为共阴和共阳两类,右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。
当然,LED的电流通常较小,一般均需在回路中接上限流电阻。
假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。
而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。
其它字符的显示原理类同。
表4:
数码管显示
0
1
2
3
4
5
6
7
8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 基于 51 单片机 汇编语言 设计