数字钟基于51单片机汇编语言设计.doc

上传人:精*** 文档编号:838127 上传时间:2023-09-08 格式:DOC 页数:35 大小:509.05KB
下载 相关 举报
数字钟基于51单片机汇编语言设计.doc_第1页
第1页 / 共35页
数字钟基于51单片机汇编语言设计.doc_第2页
第2页 / 共35页
数字钟基于51单片机汇编语言设计.doc_第3页
第3页 / 共35页
数字钟基于51单片机汇编语言设计.doc_第4页
第4页 / 共35页
数字钟基于51单片机汇编语言设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、 目 录前言摘要一、单片机数字时钟设计的概述11.1设计目的11.2题目描述11.3单片机基础知识11.4 MCS-51单片机介绍及分类31.5数字钟基本原理3二、单片机数字时钟的硬件系统42.1单片机最小系统的电路原理42.2 MCS-51单片机AT89C51芯片介绍52.2.1 AT89C51芯片引脚功能介绍52.2.2 AT89C51芯片的内存结构62.2.3复位电路82.2.4时钟震荡电路92.3七段数码管的引脚图及使用102.4 驱动器74LS245芯片11三、单片机数字时钟的程序设计123.1系统开发环境、汇编语言123.1.1系统开发环境123.1.2汇编语言123.2数字时钟设

2、计的思路及流程143.2.1主程序143.2.2定时中断(走时)子程序流程153.2.3按键调试子程序163.3定时器、计数器功能163.4中断系统功能18四、数字时钟系统的仿真及运行194.1 WAVE6000仿真软件介绍194.2程序设计及运行结果214.2.1数字时钟源程序214.2.2Wave6000仿真程序运行调试结果254.2.3 Proteus仿真电路运行调试结果25五、心得体会26六、参考文献28前 言随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加了数字钟的功能。其电路可以由

3、实时时钟模块、环境温度检测模块、人机接口模块、报警模块等部分组成。利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对、时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带

4、来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体

5、硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245驱动器的工作原理和与LED连接的方法。本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。通过它可以进一步学习与掌握

6、单片机原理与使用方法。关键词:单片机 AT89C51 共阴极LED数码显示器 74LS245译码器 - 28 -一、单片机数字时钟设计的概述1.1设计目的1、利用所学过的知识,初步分析单片计算机控制系统的能力;2、利用单片机定时器制作数字时钟并可以实现时钟的控制;3、综合运用本专业方向所学知识,构成以单片机为核心控制系统的能力;4、单片计算机控制系统实时软件的设计、 编制与调试的能力;5、单片计算机控制系统中模拟部件以及常规传感部件的使用、调试的能力;6、掌握数码管动态显示方法。7、学习AT89C51芯片管脚及其功能。8、单片计算机控制系统综合调整及性能测试的能力;9、实验结果分析、总结及撰写

7、技术报告的能力。1.2题目描述1、掌握单片机最小系统的电路原理图;2、熟知单片机的工作原理;3、小组共同编辑、编译软件;4、调试要求:(1)数码管显示当前的时间值;(2)时间精度为1秒,由秒个位数码管变化体现;(3)闪烁显示时钟;(4)调试数字时钟;(5)四个按钮,K1用作“秒”的设定;K2用作“分”的设定;K3用作“时”的设定;K4用作复位设定;1.3单片机基础知识所谓单片机,通俗的来讲,就是把中央处理器CPU(Central Processing Unit),存储器(memory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计

8、算机。单片机又称为“微控制器MCU”。中文“单片机”的称呼是由英文名称“Single Chip Microcomputer”直接翻译而来的。单片机的主要分类:1、按应用领域可分为:家电类,工控类,通信类,个人信息终端类等等;2、按通用性可分为:通用型和专用型。通用型单片机的主要特点是:内部资源比较丰富,性能全面,而且通用性强,可履盖多种应用要求。所谓资源丰富就是指功能强。性能全面通用性强就是指可以应用在非常广泛的领域。通用型单片机的用途很广泛,使用不同的接口电路及编制不同的应用程序就可完成不同的功能。小到家用电器仪器仪表,大到机器设备和整套生产线都可用单片机来实现自动化控制。专用型单片机的主要

9、特点是:针对某一种产品或某一种控制应用而专门设计的,设计时已使结构最简,软硬件应用最优,可靠性及应用成本最佳。专用型单片机用途比较专一,出厂时程序已经一次性固化好,不能再修该的单片机。例如电子表里的单片机就是其中的一种。其生产成本很低。在我们的这个网上课堂中,介绍的是MCS-51系列单片机,MCS-51单片机也是一种通用单片机,其结构及原理对所有的单片机都适用。3、按总线结构可分为总线型和非总线型。如我们常常见到的89C51单片机就是总线结构,在后面讲解单片机的内部结构时,我们就可以看到,89C51单片机内部有数据总线,地址总线,还有控制总线(WR,RD,EA,ALE等)。89C2051单片机

10、,就是一种非总线型的。其外部的引脚很少,可使成本降低。(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公司生产

11、的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用89C51、89S51来完成一系列的实验。MCS-51系列单片机分为两大系列,即51子系

12、列与52子系列。51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951。52子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952。这两大系列单片机的主要硬件特性如 表1:片内ROM模式ROM大小RAM大小寻址范围I/O特性中断源数量无ROMEPROM计数器并行口8031805187514KB128B64KB2*164*8580C3180C5187C514KB128B64KB2*164*858032805287528KB256B64KB3*164*8680C3280C5287C528KB256B64KB3*164*86上表

13、中可以看到,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次形成“天”并清零,然后通过译码器,数码管

14、把他们的内容在相应的位置显示出来。在具体的设计时定时器采用中断方式工作,对时钟的形成在终中断序中实现,在主程序只是对定时/计数器的定义初始化,调用显示程序和控制程序的初始化。另外为了使用的方便,也设计了按键,可以通过按键对时分秒进行调整,这样程序就加了按键程序。二、单片机数字时钟的硬件系统2.1单片机最小系统的电路原理51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机

15、的处理速度,频率越大处理速度越快。起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好。P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从

16、1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。 2.2 MCS-51单片机AT89C51芯片介绍2.2.1单片机AT89C51引脚功能介绍根据初步设计方案的分析,设计一个数字时钟的应用系统,以MCS-51系列单片机AT89C51芯片为基础,它将CPU、RAM、ROM、定时器/计数器和多功能部件集成在一块芯片上,在我国应用非常广泛。AT89C51芯片是40引脚双列直插式封装芯片,如下图。其中有些管脚具有两种功能。这40根引脚中包括电源引脚2根、外接晶振引脚2根、IO引脚32根、

17、控制信号引脚4根。1、电源类引脚VCC(40脚):接+5V电源正端。 VSS(20脚):接地端。2、时钟类引脚XTAL1(19脚) 和XTAL2(18脚):接外部石英晶体的一端。P0口(3932脚):P0.0P0.7统称为P0口。P1口(18脚):P1.0P1.7统称为P1口,可作为准双向I/O口使用。P2口(2128脚):P2.0P2.7统称为P2口,一般可作为准双向I/O口使用。P3口(1017脚):P3.0P3.7统称为P3口。表3 P3.0口的第二功能:口线功能描述P3.0RXD (串行数据输入线)P3.1TXD (串行数据输出线)P3.2INT0 (外部中断0输入引脚)P3.3INT

18、1 (外部中断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.2 AT89C51芯片的内存结构MCS-51单片机包含中央处理器、程序存储器(

19、ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1、中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2、数据存储器(RAM)AT89C51芯片内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中

20、间结果或用户定义的字型表。3、程序存储器(ROM)单片机内部的程序寄存器一般为1K64K字节,通常是只读存储器,因为单片机应用系统大多数是专用系统,一旦研制成功,其软件也就定性,程序固化到只读存储器,用只读存储器作为程序存储器,掉电以后程序不会丢失从而提高系统的可靠性;另外,只读存储器集成度高、成本低。根据单片机内部程序存储器000H0FFFH程序存储器0FFFH0000H60KB外部ROM64KB外部RAM4KB内部EA=14KB外部EA=0专用寄存器内部RAMFFFFH1000H0FFFH0000HFFH80H7FH00H内部数据存储器 外部数据存储器图4 AT89C51芯片程序存储器结构

21、类型的不同有可分为下列产品:(1)ROM行单片机:内部具有工厂掩膜变成的只读程序储存器ROM。这种单片机是定制的,用户是不能修改ROM中代码的。(2)EPROM型单片机:内部具有EPROM型程序存储器,对于有窗口的EPROM型单片机,可以通过紫外线擦除器擦除EPROM中的程序,用编程工具把新的程序代码写入EPROM,且可以反复擦除和写入。(3)FLASH Memory型单片机:内部含有FLASH Memory型程序存储器,用户可以用编程器对FLASH Memory存储器快速整体擦除和逐个字节写入,这种单片机价格也低、使用方便,是目前最流行的单片机。4、定时/计数器1)定时器方式寄存器:TMOD

22、2)定时器控制寄存器:TCON3)计数寄存器: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

23、引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。2、上电复位AT89C51芯片的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,

24、故可将外部电阻去掉,而将外接电容减至22F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在上图的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位

25、期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。2.2.4时钟震荡电路1、时钟电路单片机要不断的从程序存储器中取出指令并执行,这些执行步骤是按节拍进行的,时钟电路就是提供CPU运行节拍的电路。AT89C51的时钟电路可以由内部或外部两种方式产生。AT89C51内部具有一个振荡电路,内部方式就是利用该电路在XTAL.1和XTAL.2两引脚之间外接晶振和电容C1、C2构成并联谐振电路,使内部震荡产生自激振荡如图所示。晶振频率可选择1.2-10MHZ,电容可选则

26、15-100PF,以对时钟频率起微调作用。2、CPU时序的周期单位通过之中振荡电路,单片机的每一步工作都按照一定的节拍进行,步调得到同意.描述MCS-51系列单片机的时序单位有4中,即时钟周期.状态周期,机器周期和指令周期。时钟周期P:既振荡周期,是MCS-51系列单片机的最小时序单位.例如:若时钟频率F=12MHZ,则时钟周期=1/F=0.0833us。状态周期S:连续两个振荡周期为一个状态周期。机器周期:单片机完成某种基本操作的时间称为机器周期。一个机器周期由6个状态周期(12个振荡周期)构成。指令周期:执行一条指令所需要的时间。MCS-51的指令周期一般需要1或2个机器周期,乘,除法指令

27、为4个机器周期。若采用上例钟12MHZ的晶振,则执行一条指令相应地需要1us,2us或4us。晶振频率越高,指令执行的速度越快。2.3七段数码管的引脚图及使用数码管使用条件:a、段及小数点上加限流电阻。b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定。c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA。上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。LED数码管根据LED的接法不同分为共阴和共阳两类,右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴

28、极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同。表4: 数码管显示01234567893FH06H5BH4FH66H6DH7DH07H7FH6FH2.4 驱动器74LS245芯片74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向

29、总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端CE低电平有效时,DIR(AB/BA)=“0”,信号由 B 向 A 传输(接收);DIR=“1”,信号由 A 向 B 传输(发送);当CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效

30、时,74LS245输入(P0.1D1),其它时间处于输出(P0.1D1)。三、单片机数字时钟的程序设计3.1系统开发环境、汇编语言3.1.1系统开发环境单片机的应用首先要考虑的是它的开发平台,也即我们常说的开发环境。由于INTEL公司的MCS-51系列较早进入我国,事实上已形成了工业标准,MCS-51的单片机应用场合随处可见,它的软件资源相当丰富,硬件的支持也很完善,价廉物美的开发器材随处可取。现阶段,国内的大部分单片机开发工程技术人员还是普遍使用汇编语言编写程序。汇编语言有其缺陷性,但它编写的代码最小,最直接,效率也最高,所以还深得用户接受。但是,它有着固有的缺陷,必须十分了解所用单片机的硬

31、件结构,程序编写困难,代码难以理解,不易于识读,难于移植,排错困难,编写程序花的时间相当多,调试不便等等。随着国内单片机开发环境的完善,开发技术水平不断提高,现在已有相当的开发器材支持高级语言的使用和调试,为单片机的开发应用提供了更好的物质条件。高级语言(如C语言)具有开发周期短,易于识读,容易移植,也便于初学着掌握。诚然,高级语言也有它不足之处,就是高级语言产生的代码过长,对于早期单片机不大的ROM来说,可是非常突出的矛盾,另外它的运行速度太慢,对于本来主频不高的单片机是致命的弱点。但现在这方面的研制工作也取得了较大的进展,高级语言的弱点也已被较大的克服,象MCS-51上的C语言的代码长度,

32、如果未加上人工优化条件,也可做到最优汇编程序水平的120%150%,这也相当可观了。可以说相当于中等汇编程序员的水平。3.1.2汇编语言汇编语言(Assembly Language)是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。“汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”、来把汇编语言原文件汇编成机器可执行的代码,我们一般使用伟福6000汇编器。同样的汇编器如MASM, TASM等等,为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编

33、器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言编译器把汇编程序翻译成机器语言的过程称为

34、汇编。 汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 1、汇编语言的特点: (1)面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 (2)保持了机器语言的优点,具有直接和简捷的特点。 (3)可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。 (4)目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 (5)经常与高级语言配合使用,应用十分广泛。 2、汇编语言的应用: (1)70%以上的系

35、统软件是用汇编语言编写的。 (2)某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 (3)某些高级绘图程序、视频游戏程序是用汇编语言编写的。 3、汇编语言是我们理解整个计算机系统的最佳起点和最有效途径:人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接

36、描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。 学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点和最有效途径。3.2数字时钟设计的思路及流程3.2.1主程序主程序是先开始,系统初始化、定时器初始化,脉冲基时开始跑秒后进行按键检测。若没有按键设置,显示当前时间;若有按钮按下,按键调时,检测完后,时间设置完成?系统初始化定时器初始化启动脉冲跑秒是否按设置键?按钮设置时间图1 主程序流程图时加1显示当前时间时加1时加1就

37、可以显示更新后的时间。3.2.2定时中断(走时)子程序流程定时器中断时,先检测50ms脉冲是否计数20次,计数到20次,秒就加1;如果没计满60,就返回显示时间,如果秒计满60秒,就清零秒,给分加1;检测分钟,如果没计满60,继续计时,返回显示时间,如果满60,就清零分钟,给小时加1;检测小时,如果没计满24,就继续计时,返回显示时间,如果计满24,就清零,给秒加1,显示时间。脉冲溢满20?秒+1=60?分+1=60?分清零,时加1时+1=24?时清零中断返回图2定时中断(走时)子程序流程图秒清零,分加1秒加1定时中断口3.2.3按键调时子程序:按键调试程序,是检测是否有按键按下:(1)如果秒

38、按键按下,就给秒加1;(2)如果分按键按下,就给分加1;(3)如果小时按键按下,就给小时加1;(4)如果没有按键按下,时钟就显示当前时间。秒加1分加1时加1图3按键调时子程序流程图启动脉冲跑秒是否有按键按下?显示当前时间秒按键按下?分按键按下?时按键按下?显示更新后时间3.3定时器、计数器功能3.3.1定时器/计数器的结构从下面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器

39、方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。3.3.2定时计数器的原理 16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一

40、个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:T=1/(12106)Hz1/12=1s这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振

41、荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。3.4中断系统功能CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断。 MCS-51单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中

42、断控制和条件设置的编程。5个中断源的符号、名称及产生的条件如下。INT0:外部中断0,由P32端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P33端口线引入,低电平或下跳沿引起。T0:定时器计数器0中断,由T0计满回零引起。T1:定时器计数器l中断,由T1计满回零引起。TIRI:串行IO中断,串行端口完成一帧字符发送接收后引起。(1)外部中断请求源:即外中断0和1,经由外部引脚引入的,在单片机上有两个引脚,名称为INT0、INT1,也就是P3.2、P3.3这两个引脚。在内部的TCON中有四位是与外中断有关的。MCS-51 的中断系统 IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方式,IT0=1,INT0为负跳变触发方式。IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。中断系统的结构如下图:IT1、IE1的用途和IT0、IE0相同。(2)内部中断请求源TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。TF1:与TF0类似。四、数字时钟系统运行及仿真4.1 WAVE6000仿真软件介绍1、单片机仿真功能在线仿真时

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922