已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
倒计时器摘要2关键词21 绪论32 单片机原理介绍32.1 单片机发展概况32.2 MCS-51单片机内部结构43 软件介绍73.1 PROTEL99SE 介绍73.2单片机编译软件Keil介绍84 硬件设计94.1 LED显示部分104.2复位电路部分:104.3按键部分:104.4蜂鸣器控制部分115 软件设计12结束语16参考文献17附录:18附录1:原理图18附录2:PCB图19附录3:器件清单20附录4:源程序:22英文翻译:32 摘要:本文介绍了一种利用单片机AT89C2051 设计的秒倒计时器, 具体介绍了硬件的电路设计、接口技术和软件的设计方法。该方案具有一定的实用性和使用上的方便性。 关键词:单片机; AT89S52; 秒倒计时Abstract : This paper introduces a design of second countdown timer by using micro - controller AT89C2501 as well as the methods of designing its hardware circuit , connector and software circuit. Key words : micro - controller , AT89S52 ; second countdown timer1 绪论在很多重要比赛中,要用到时间的长短来衡量比赛的结果,如蓝球比赛中,进攻方控球的时间不能超过24s ,即进攻方必须在24s 内必须投蓝出手,否则违例;知识比赛中必须在规定的时间内回答完所提出的问题等等。为了使参加比赛队员和裁判能够准确地掌握好时间,在比赛场地竖立起一个秒倒计时器,让比赛队员都能够清楚地看到时间是一个最好解决问题的方法。基于此种设想, 用ATMEL 公司生产的简化单片机,AT89S52 加上少许的外围电路就可做成一个99S范围内的秒倒计时器,并在计时结束时发出报警声音。本文旨在从硬件和软件上具体分析其设计方法。系统由一台主机和两台从机构成,其功能框图如图1 :系统整体硬件电路包括,电源部分、显示部分、按键调整部分以及单片机主板部分主机包括秒定时输入电路、按键控制电路、时钟电路、电源电路、LED 显示电路等,从机包括时钟电路、LED 显示电路、扬声器输出电路等。主机与从机的信息交换采用串行通信方式,也就是说从机的信息由主机采用应答方式串行传递。其中主机的秒定时值由2位BCD 拨码盘进行选择输入,设置3 个按键分别控制时钟的走、停和清除(复位) ;主机LED 采用7 段共阴极数码管,从机LED 采用多个发光二极管阵列组成字形段码,以满足较远距离清晰显示。从机电源由主机通过电缆提供。2 单片机原理介绍2.1 单片机发展概况微型计算机的出现是电子数字计算机广泛应用到人们日常工作和生活领域中去的一个重大转折点。它已经深入应用到非微型计算机所无法应用的领域,对社会产生了极大的影响。单片微型计算机是微型计算机发展的一个重要分支,它以其独特的机构和性能,越来越普遍的应用到国民经济建设的各个领域。单片机全称为单片微型计算机(Single Chip Microcomputer)。因为单片机主要用于控制系统中,所以又称微控制器(Microcontroller Unit,MCU)或嵌入式控制器(Embedded Controller)。它具有嵌入式应用系统所要求的体系结构,微处理器,指令系统,总线方式,管理模式等。他把计算机的基本部件都微型化集成到一块芯片上了,通常片内部都含有中央处理部件(CPU),数据存储器(RAM),程序存储器(ROM,EPROM,Flsh ROM),定时器/计数器和各种输入/输出(I/O)接口他们之间的相互连接结构如图2-1所示。CPU ROMRAM 定时器/ 计数器I/O 外设接口时钟 图2-1 单片机结构2.2 MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-2 8051 内部结构程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2-3。 图2-3 MCS-51结构框图MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: 图2-4 51单片机引脚图Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图2-5。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。图2-5 复位电路图Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。3 软件介绍3.1 PROTEL99SE 介绍PROTEL99SE是一个全32位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。在这里主要用它来绘制电路原理图和生成印制电路板。原理图的设计步骤如下:(1) 设置原理图设计环境。其中,工作环境设置是使用Design/Options和Tool和Preferences菜单进行的,画原理图环境的设置主要包括图纸大小、捕捉栅格、电气栅格、模板设置等。(2) 放置元件,将电气和电子元件放置在图纸上。(3) 原理图布线。元件一旦放置在原理图上,不需要用导线将元件连接起来,连接时一定要符合电气规则。(4) 编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置等操作。(5) 检查原理图。使用电气规则功能(ERC)检查原理图的连接是否合理和正确。给出检查报告,若有错误则要根据错误进行改正。(6) 生成网络表。所谓网络表就是元件名、封装、参数及元件之间的连接表,通过该表可以确认各个元件和它们之间的关系。(7) 打印原理图。对电路板的设计主要分为以下几个步骤;(1) 使用原理图编辑器设计原理图,进行电气检查(ERC)并生成原理图的网络表。(2) 进入电路板(PCB)环境,使用电路向导确定电路板的层数、尺寸等电路板参数。(3) 使用Design/Netlist菜单,调入网络表。由于在前面的元件封装不规范,这里面出现了许多错误,通过请教老师及自己的不懈努力,花了数天的时间才全部改了出来。(4) 布置元件,就是将元件合理地分布在电路板上。自动布置元件或人工布置元件,多次布置直到自己满意为止。人工布线是画电路板的基础,但比较耗时和费力,另外由于自身经验的不足,只得先采用自动布线,在此基础上作了适当的修改。(5) 完成修饰等工作,完成整个电路板的设计。3.2单片机编译软件Keil介绍编写完程序后即可使用汇编软件对程序进行编译了,本设计所使用的编译软件是Keil51,其步骤如下:1 源文件的建立使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入要调试的汇编语言源程序,保存该文件,注意必须加上扩展名.c。2 建立工程文件点击“Project-New Project ”菜单,在出现一个对话框中,输入一个工程文件名,不需要扩展名。点击“保存”按钮。3 工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边Project 窗口的Target 1,然后使用菜单“Project-Option for target target1”即出现对工程设置的对话框,对部分内容进行必要的设置改即可,不过大部份设置项都是取默认值。4 编译、连接在设置好工程后,即可进行编译、连接。选择菜单Project-Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate .项则仅对该文件进行编译,不进行连接。4 硬件设计主机与从机均采用低功耗、高性能的8 位CMOS微控制芯片89S524.1 CPU部分图4-1单片机最小系统图单片机AT89S52、6M晶振、30pF和10电容、2K和10K电阻、按键等组成。4.1 LED显示部分显示电路采用四位共阳LED数码管,利用CD4056是将10进制转换成BCD码,然后送7段码显示。74HC138是3 线 8线译码器,利用这个进行位驱动,通过软件编程实现数码显示。此方式简单方便。4.1.1数码管介绍:数码管是一种半导体发光器件,其基本单元是发光二极管图4-2单片机最小系统图数码管的分类 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管的驱动方式 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S521单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本次电路设计采用的是共阳极数码管,通过动态扫描方式驱动,其电路原理图如下此方式简单方便。4.1.2 74LS138(及74HC138,74AHC138)是3 线 8线译码器中文资料简要说明:74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下: 当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。 封装,引脚图真值表:4.1.3 CD4056是将10进制转换成BCD码的专用器件。简要介绍:CD4056是单位数字BCD-七段译码器/驱动器电路,在单片上具有电平移动功能。其引脚图如下其输出时序图如下其电路图如下所示4.2复位电路部分:复位电路虽然简单,但其作用非常重要。一个单片机系统能复正常运行,首先要检查是否能复位成功,其中手动复位开关比较常用, 图4-3手动开关复位电路手动开关未按下之前,电容正极处于充电状态,当按键按下去后,VCC与GND导通,电容放电,从而实现放电。4.3按键部分:采用一一对应式方式输入设计键盘控制电路部分,其键盘结构图如下所示:那么在什么时候使用上拉电阻呢?总结如下: (1)、当TTL电路驱动CMOS电路时,如果TTL电路输出的高电平低于CMOS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。 (2)、OC门电路必须加上拉电阻,以提高输出的搞电平值。(3)、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。(4)、在CMOS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻降低输入阻抗,提供泄荷通路。 (5)、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限,增强抗干扰能力。 (6)、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。 (7)、长线传输中电阻不匹配容易引起反射波干扰,加上拉电阻使电阻匹配,有效的抑制反射波干扰10。另外,上拉电阻阻值的选择原则包括: (1)、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。(2)、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。(3)、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑以上三点,上拉电阻阻值通常在1k到10k之间选取。根据以上原则,本设计所选择的是10K的电阻。4.4蜂鸣器控制部分 蜂鸣器部分采用IO口输出,三极管驱动蜂鸣器。通过计算其基极电阻为3.3K,可以驱动蜂鸣器。5 软件设计单片机上电复位,在完成主从机的通信方式选择、各定时P计数器的工作方式选择后,主机读出BCD 拨码盘当前所设置秒计时值(0099s) ,并把它发送至从机,然后通过查询方式判断有无按键按下,从机随时准备与主机进行信息交换并把接收到的主机信息显示在LED 上。主机的程序流程图如图4。主机主要完成三部分工作:扫描按键、秒计时、与从机进行通信。系统中设置了三个按键,当程序扫描到“复位”键时,单片机重新读入拨码盘数据,意即新的一轮计时开始,当程序扫描到“走”键时,若原计时停止,则启动计时,否则无效,同样,当程序扫描到“停”键时,若原计时已启动,则停止计时,否则无效。对于本系统来说,秒计时的准确性和主从机的通信的可靠性是程序的关键,以下分别对这两个程序的设计进行描述。在硬件电路中因未设计硬件计时功能,秒的产生只有依靠软件来完成。本系统中采用系统定时P计数器T0 来产生。最大定时时间计算方法如下:TMAX = 216 12foscs ,其中fosc 为系统时钟频率,本系统中的时钟频率为1110592MHz , 经计算TMAX 为7111ms ,为了计算的方便,取TMAX = 50ms ,软件计数至20 次为1s。定时P计数器的计数初值计算如下:X= 216 - 50 10 - 6 1110592 106P12 = 60882D =0EDD2H。秒计时中断子程序流程图如图5 所示。主机与两台从机通信采用异步串行通信方式,为了保证数据的可靠传输,本系统中设置串行通信波特率为1200bps ,采用系统定时P计数器T1 作波特率发生器,主机和从机均工作在串行口方式3。主机发送数据时,若第9 位发送1 则为地址信息,否则为数据信息。从机根据SM2 的状态决定是否接收主机信息。通信过程如下:主机SM2 设置为0 ,定义从机地址,设置主机和从机均工作在串行口方式3 (9 位异步串行通信方式) ;置SM2 = 1 ,REN = 1 ,允许串行口中断。主机首先将要通信的从机地址发出,发地址时第9 位为1 ,所有从机均可接收到。从机串行口接收到第9 位信息为1 时,则置位中断标志RI ,各从机CPU 分别响应中断。各从机执行中断服务程序,判断主机送来的地址是否与本机地址相符。若是本机地址,则SM2 清零,准备和主机通信;若地址不符,则保持SM2 = 1。主机发送秒倒计时缓冲区数据(第9 位为0)从机接收到第9 位为0 的信息(表示数据) ,只有SM2 = 0 的从机激活中断标志RI = 1 ,转入中断程序,表示接收主机的数据或命令,实现主机与从机的信息传送。而其它从机因SM2 = 1 ,在接收到第9 位为0时,不激活RI 中断标志,所有接收的信息自动丢失不处理,从而实现主机和从机的一对一通信。结束语本文所介绍的秒倒计器,电路简单、成本低,制作容易。其主要特点是控制与显示异地,声光并茂,增加了可视、可听范围,且控制便。在比赛中准确地掌握时间提供了可靠的保证。除此之外,此系统也可广泛应用于群众体育、娱乐活动和广播电视台的一些秒计时,具有很高的实用价值。在毕业论文接近末尾之时,我要衷心地感谢我们XX老师,在我整个毕业设计过程中,XX老师给了我很大的帮助和细心的指导。在一个多月的毕业设计过程中,当我遇到了困难和问题时,当我们需要他的时候,XX老师总是第一时间出现在我们面前,他让我们学会了以前在课堂上没有的东西。 另外,我还要特别感谢我所有的搭档,是他们给了我巨大的勇气和战胜困难的信心,在毕业设计中我们合作的很愉快,当我们遇到困难时我们一起去探讨和研究,一起去战胜它,大家也一起分享排除问题和困难后的喜悦。 同时大家也发扬我们慷慨激扬精神:特别能吃苦,特别能攻关,特别能战斗,特别能奉献 。 在此我表示真诚的感谢! 经过这次毕业设计,使我觉得不论从理论知识还是从实际操纵中都学到了不少知识,我想归纳起来,主要有以下四个方面: 1、经过这次毕业设计,它让我接触更多平时没有接触过的科学仪器设备、元器件以及获得相关的仪器调试经验,同时我也发现自己在这方面很多不足之处。体会到理论知识对实践有很大的指导作用,她让我知道,只有在正确的理论指引下,才能设计出合乎实际需要的硬件电路。 2、学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节。 3、在毕业设计中,我们应当注意重点与细节的关系。 4、失败不可怕,只要不趴下,昂首向前走,希望总会有。 5、同组同学相互包容,彼此合作,取长补短,才能铸就最后的成功。 可以这样说毕业设计是对大学四年所学知识的一次运用和检阅,同时对自学能力提出很高的要求,所以平时的学习离开思考,就是严重的错误,我们学习不应该有偏科现象,各方面的知识都应该要接触,这样做才能为毕业设计打下基础参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19943阎石.数字电子技术基础(第三版). 北京:高等教育出版社,19894廖常初.现场总线概述J.电工技术,1999.5 赵晶Prote199高级应用M北京:人民邮电出版社,20006 郑步生,吴渭Multisim200l电路设计及仿真入门与应用M北京:电子工业出版社,20027 沈美明,温冬婵IBMPC汇编语言程序设计M北京:清华大学出版社,20018 张友德,赵志英,涂时亮单片微型机原理、应用与实验M上海:复旦大学出版社,20009 楼然苗,李光飞51系列单片机设计实例M北京:北京航空航天大学出版社,200311 梁纯,王军基于MCS一51单片机的LED点阵图文显示屏设计J工矿自动化,2005(6):909212夏路易、石宗义编著 电路原理图与电路板设计教程 北京希望电子出版社 200213图形液晶显示模块使用手册(第二版) 北京精电蓬远显示技术有限公司14郭永贞主编 数字电子技术 西安电子科技大学出版社 200015吴国经主编 单片机应用技术 中国电力出版社 200416徐泳龙主编 单片机原理及应用 机械工业出版社 200417陆坤、奚大顺等编著 电子设计技术 199718卢胜利主编 智能仪器设计与实现 重庆大学出版社 200319谭浩强著 C程序设计(第二版) 清华大学出版社 1999附录附录1:原理图附录2:PCB图附录3:器件清单名称型号序号电容0.1uFC6电容0.1uFC5电容0.1uFC7电容0.1uFC8电容0.1uFC1电容0.1uFC2电容0.1uFC4电容0.1uFC3二极管1N4148D1电阻1kR5电阻3.3kR13电阻3.3kR14电容4.7uFEC3电阻10kR3电阻10kR1电阻10kR2电阻10kRP1晶振11.0592MY1电容30PC10电容30PC9译码器74LS138IC3电源芯片78M05IC1电容100uFEC2电阻220R4电容220uFEC1电阻470R8电阻470R9电阻470R7电阻470R12电阻470R6电阻470R10电阻470R11三极管8050Q1驱动芯片CD4056IC4接头CON_2CN1串口接头DB_9CN2四位数码管LG5641BHLED1通讯芯片MAX232IC5单片机P89V51RD2_DIP40IC2蜂鸣器SPEAKERBELL1按键SW-PBSW1按键SW-PBSW2按键SW-PBSW4按键SW-PBSW3附录4:源程序:ORG0000HJMPSTARTORG0023H ;串口的中断向量JMPUARTILED_PORT EQU P0 ;LED接口LED_DATA EQU 30H ;存放LED显示的内容KEY1 EQU10H ;按键1的键码,对应K16KEY2 EQU20H;按键2的键码,对应K15KEY3 EQU40H;按键3的键码,对应K14KEY4 EQU80H;按键4的键码,对应K13START:;-初始换- SETB EA ;终端总允许SETB ES ;串口中断允许MOVTMOD, #20H ;定时器1,8位重装MOVSCON, #50H MOVTH1, #0FDH ;波特率9600MOVTL1, #0FDHSETBTR1 ;启动定时器1MOV P2, #01H ;选通第一个LED;初始化LED显示缓冲区MOVR0, #LED_DATAMOV R0,#30HMOVR0, #LED_DATA+1MOV R0,#30HMOVR0, #LED_DATA+2MOV R0,#30HMOVR0, #LED_DATA+3MOV R0,#30HMOV R7, #00H ;存放LED位置,用于动态扫描MOVR5, #00H ;存放串口接收到的数据个数.等于4时归零。 ;初始化按键SETB P1.0;对P1.0初始化,设置为高电平,用于按键输入SETB P1.1;对P1.1初始化,设置为高电平,用于按键输入SETB P1.2;对P1.2初始化,设置为高电平,用于按键输入SETB P1.3;对P1.3初始化,设置为高电平,用于按键输入 ;关闭蜂鸣器CLR P1.0;对P1.0初始化,设置为高电平,用于关闭蜂鸣器;-初始化结束-MAIN:CALLLED_REFRESHCALLKEYSCANJMP MAIN ;-串口中断处理-UARTI:PUSHACC ;保存寄存器PUSHPSWJNB RI, EXIT ;接收标志不为真,则退出CLR ES ;关中断MOVA, SBUF ;接收数据MOVR2,A;把收到的字符的assic码值存入LED显示缓冲区MOVA,#LED_DATAADDA, R5MOVR0,AMOVA,R2MOVR0,AINCR5CJNER5,#04H,U1;等于4时,在从零开始。MOVR5,#00HU1:;反馈接收成功标志CLRTIMOVSBUF,A;返回接收成功标志,oxffLOOP:JNBTI,LOOPCLRRI ;清除接收标志 SETB ES ;开中断EXIT: POPPSWPOPACC ;恢复寄存器RETI ;-串口中断处理结束-;-LED显示程序-LED_REFRESH: ;LED刷新程序;MOVP0,#00H;防止串扰;MOV A,P2;使能下一个LEDRLACJNEA,#10H ,L1 MOV A,#01HL1:CPLAMOVP2,A ;端口输出INCR7 ;切换到下一个LED的编号CJNER7,#4H,L2 ;如果是最后一个LED则转到第一个LEDMOVR7,#00H L2: MOVA, R7;载入当前LED编号ADDA, #LED_DATA;载入当前LED应该显示的内容MOVR0,AMOVA,R0 ;取当前LED内容对应的lED字模MOVDPTR,#LEDMODEMOVCA,A+DPTR;CPLA;MOVP0,ARET;-LED显示程序结束-; 1秒计时程序 ;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0JB 03H,FSSMOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出;ACALL CLR0 ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出;ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志JB 03H,OUTT0 ;秒表时最大数为99CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出;ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回;秒表计时程序(10MS加1),低2位为0.1、0.01秒,中间2位为秒,最高位为分。;最大计数值为99FSS: MOV A,#0F7H ;中断响应时间同步修正,重装初值(10ms)ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#0D8H ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)CLR C ;MOV A,R3 ;JZ FSS1 ;加1后为00,C=0SETB C ;加1后不为00,C=1; 加1子 程 序 ;ADD1: MOV A,R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,R0 ;前一地址中数据放入A中低四位ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业游戏设计课件
- 保育员垃圾分类课件
- 《植物的逆境生理》课件
- (2026版)医院医德医风工作总结范文
- (2026年)突发公共卫生事件和传染病疫情信息监测报告的制度及流程
- 麻醉科医师晋升副主任医师高级职称病案分析专题报告(肥胖患者气管内麻醉并发细支气管痉挛)2篇
- 变更管理工艺与设备
- 冬夜的灯光课件
- 工程项目管理(第二版)6工程项目质量管理
- 会计制度设计负债业务会计制度设计
- 民工入场基础安全教育试题及答案
- 等离子切割机安全操作规范培训课件
- 课件-试点地区的增值税纳税申报表填报实务(一)
- 高标准农田项目管理制度
- 汽轮机运行值班员技能鉴定理论考试题库(浓缩400题)
- 2025-2026月考试卷八年级数学第一次月考卷(江苏无锡专用苏科版)(考试版A4)
- 本科《伤寒论》太阳病篇(一)教学设计-六经辨证体系与太阳病纲领
- 《水质-9种酯类化合物的测定 吹扫捕集-气相色谱-质谱法》
- 2026中铝科学技术研究院有限公司(中铝集团未来科学技术研究院)面向中铝集团内部招聘笔试历年备考题库附带答案详解
- 2026年4月自考13215Java语言程序设计试题试题及答案
- 2026年发布《中国尖锐湿疣临床诊疗指南》解读
评论
0/150
提交评论