c51课程设计电子钟.docx

上传人:b****2 文档编号:97450 上传时间:2023-04-28 格式:DOCX 页数:30 大小:373.32KB
下载 相关 举报
c51课程设计电子钟.docx_第1页
第1页 / 共30页
c51课程设计电子钟.docx_第2页
第2页 / 共30页
c51课程设计电子钟.docx_第3页
第3页 / 共30页
c51课程设计电子钟.docx_第4页
第4页 / 共30页
c51课程设计电子钟.docx_第5页
第5页 / 共30页
c51课程设计电子钟.docx_第6页
第6页 / 共30页
c51课程设计电子钟.docx_第7页
第7页 / 共30页
c51课程设计电子钟.docx_第8页
第8页 / 共30页
c51课程设计电子钟.docx_第9页
第9页 / 共30页
c51课程设计电子钟.docx_第10页
第10页 / 共30页
c51课程设计电子钟.docx_第11页
第11页 / 共30页
c51课程设计电子钟.docx_第12页
第12页 / 共30页
c51课程设计电子钟.docx_第13页
第13页 / 共30页
c51课程设计电子钟.docx_第14页
第14页 / 共30页
c51课程设计电子钟.docx_第15页
第15页 / 共30页
c51课程设计电子钟.docx_第16页
第16页 / 共30页
c51课程设计电子钟.docx_第17页
第17页 / 共30页
c51课程设计电子钟.docx_第18页
第18页 / 共30页
c51课程设计电子钟.docx_第19页
第19页 / 共30页
c51课程设计电子钟.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c51课程设计电子钟.docx

《c51课程设计电子钟.docx》由会员分享,可在线阅读,更多相关《c51课程设计电子钟.docx(30页珍藏版)》请在冰点文库上搜索。

c51课程设计电子钟.docx

c51课程设计电子钟

基于单片机的电子钟的设计

 

学院:

班级:

姓名:

学号:

小组成员:

姓名:

学号:

指导老师:

 

第一章绪论

1.1数字电子钟的背景

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

下面是单片机的主要发展趋势。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

1.2数字电子钟的意义

数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

1.3数字电子钟的应用

数字钟已成为人们日常生活中:

必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。

第二章整体设计方案

2.1单片机的选择

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。

其发展趋势不外乎以下几个方面:

1、多功能

单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。

比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。

有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。

例如,有的芯片以51内核为核心,集成了USB控制器、SMARTCARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。

2、高效率和高性能

为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:

单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。

由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。

使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。

3、低电压和低功耗

单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。

由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。

这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。

4、低价格

单片机应用面广,使用数量大,带来的直接好处就是成本的降低。

目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。

下面大致介绍一下单片机的主要应用领域和特点。

(1)家用电器领域

用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。

(2)办公自动化领域

单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、机和传真机等。

(3)商业应用领域

商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。

商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。

与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。

(4)工业自动化

在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。

(5)智能仪表与集成智能传感器

目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。

将单片机和传感器相结合,可以构成新一代的智能传感器。

它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。

(6)现代交通与航空航天领域

通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。

这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。

目前,我国生产很多型号的单片机,在此,我们采用型号为STC89C52的单片机。

因为:

 c:

\iknow\docshare\data\.zymcu\datasheet\atmel\at89c51.pdfSTC89C52是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。

   STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

2.2单片机的基本结构

MCS-52单片机内部结构

  8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器:

   中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM)

    8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图2-1单片机8052的内部结构

程序存储器(ROM):

8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

定时/计数器(ROM):

8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

并行输入输出(I/O)口:

8052共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

全双工串行口:

8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

中断系统:

8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

时钟电路:

8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。

INTEL的MCS-52系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。

下图是MCS-52系列单片机的内部结构示意图。

图2-2MCS-52系列单片机的内部结构

MCS-52的引脚说明:

MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

MCS-51的引脚说明:

MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

现在我们对这些引脚的功能加以说明:

 

图2-3单片机的引脚图

Pin9:

RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。

8051的复位方式可以是自动复位,也可以是手动复位,见下图4。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

 

图2-4上电自动和手动复位电路图

 

图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端必须接地。

 

第三章数字钟的硬件设计

3.1最小系统设计

图3-1单片机最小系统的结构图

单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍一下每一个组成部分。

1.电源引脚

Vcc 40 电源端

GND 20 接地端

工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。

2.外接晶体引脚

图3-2晶振连接的内部、外部方式图

XTAL1 19

XTAL2 18

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择。

电容取30PF左右。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

AT89单片机内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。

在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

3.复位 RST 9

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。

当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。

复位是由外部的复位电路来实现的。

片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。

复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。

当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。

复位操作不会对内部RAM有所影响。

常用的复位电路如下图所示:

图3-3常用复位电路图

4.输入输出引脚

(1)P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。

作为输出口时能驱动8个TTL。

对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。

(2)P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收低8位地址信息。

(3)P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

(4)P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接控制信息。

除此之外P3端口还用于一些专门功能,具体请看下表。

P3引脚

兼用功能

P3.0

串行通讯输入(RXD)

P3.1

串行通讯输出(TXD)

P3.2

外部中断0(INT0)

P3.3

外部中断1(INT1)

P3.4

定时器0输入(T0)

P3.5

定时器1输入(T1)

P3.6

外部数据存储器写选通WR

P3.7

外部数据存储器写选通RD

表3-1 P3端口引脚兼用功能表

3.2LED显示电路

显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:

发光二极管LED显示器、液晶LCD显示器、CRT显示器等。

LED显示器是现在最常用的显示器之一,如下图所示。

 

图3-4LED显示器的符号图

发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。

分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。

外加正向电压时二极管导通,发出清晰的光。

只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。

LED数码管有共阳、共阴之分。

图是共阳式、共阴式LED数码管的原理图和符号.

图3-5共阳式、共阴式LED数码管的原理图和数码管的符号图

显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。

采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。

LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。

对于多位LED显示器,通常

都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。

图3-6数码管的硬件连接示意图

数码管使用条件:

a、段及小数点上加限流电阻

b、使用电压:

段:

根据发光颜色决定;小数点:

根据发光颜色决定

c、使用电流:

静态:

总电流80mA(每段10mA);动态:

平均电流4-5mA峰值电流100mA

数码管使用注意事项说明:

(1)数码管表面不要用手触摸,不要用手去弄引角;

(2)焊接温度:

260度;焊接时间:

5S

(3)表面有保护膜的产品,可以在使用前撕下来。

 

四,时钟显示校正电路

本设计利用按键开关来校正时钟显示的数字。

当按钮按下时,将在相应的端口输入一个低电平,通过相应的程序来改变时钟显示。

其中S1按键开关用来选择要修改的数字;S2按键用来增加所选数字的数值;S3按键用来减少所选数字的数值。

6、蜂鸣器电路

电路接法:

三极管选定PNP型,基极B连接5V电压,发射极E连接一个1K左右的电阻后接I/O口,集电极C连接蜂鸣器后接地。

单片机在复位后的个I/O口是高电平,此时三极管是截止的,编写程序使选定的I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,从而发出滴滴的响声。

其中电阻R1在电路里起分压限流的作用,PNP三极管起到模拟开关的作用。

7、外接电源电路

外接电源电路用于连接外部5V电源与电子时钟电路,通过自锁开关控制电路的导通与断开,当开关闭合时,电路导通,外部电源给电路正常供电,电子时钟正常工作。

当开关断开时,电路停止工作。

8、总电路原理图

(五)软件部分

根据上述电子时钟的工作流程,软件设计可分为以下几个功能模块:

(1)主程序模块。

主程序主要用于系统初始化:

设置计时缓冲区的位置及初值,设置8155的工作方式、定时器的工作方式和计数初值等参数。

主程序流程如下图所示。

开始

 

定义堆栈区

 

8155、T0、数据缓冲区、标志位初始化

调用键盘扫描程序

 

是C/R键?

地址指针指向计时缓冲区

 

调用时间设置程序

 

主程序流程图

(2)计时模块。

即定时器0中断子程序,完成刷新计时缓冲区的功能。

系统使用6MHz的晶振,假设定时器0工作在方式1,则定时器的最大定时时间为65.536ms,这个值远远小于1s。

因此本系统采用定时器与软件循环相结合的定时方法。

设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:

00:

00。

因定时器0工作在方式1,则50ms定时对应的定时器初值为:

65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H。

但应当指出:

CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数。

因此,为了确保T0能准确定时50ms,重装的定时器初值必须加以修正,修正的定时器初值必须考虑到从原定时器初值中扣除计数器多计的脉冲个数。

由于定时器计数脉冲的周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用的机器周期数。

CPU响应中断通常要3~8个机器周期。

经过测试,定时器0重装的计数初值设为9E5FH~9E67H,可以满足精度要求。

另外,MCS-51单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二-十进制转换。

计时模块流程图如下图所示。

保护现场

重装定时器初值

循环次数减1

满20次?

秒单元加1

60s到?

秒单元清0,分单元加1

60分到?

分单元清0,时单元加1

24小时到?

时单元清0

 

恢复现场

 

返回

计时模块流程图

(3)时间设置模块。

该模块由键盘输入相应的数据来设置当前时间。

程序通过调用一个键盘设置子程序通过键盘扫描将键入的6位时间值送入显示缓冲区。

设置时间后,时钟要从这个时间开始计时,而时分秒单元各占一个字节,键盘占6个字节。

因此程序中要调用一个合字子程序将显示缓冲区中的6位BCD码合并为3位压缩BCD码,并送入计时缓冲区,作为当前计时起始时间。

该程序同时要检测输入时间值的合法性,若键盘输入的小时值大于23,分、秒值大于59,则不合法,将取消本次设置,清零重新开始计时。

时间设置和键盘设置子程序的流程图如下图所示。

保护现场

调用键盘设置子程序KETIN

调用合字子程序B

恢复现场

返回

时间设置流程图

 

保护现场

显示缓冲区首地址送R0键盘输入次数送R7

调用键盘扫描程序KEYSCAN

键号送R0

显示缓冲区地址加1

循环次数减1

循环结束?

恢复现场

返回

键盘设置子程序流程图

 

(4)显示模块。

该模块完成时分秒6位LED的动态显示。

因为显示为6位,二计时是3个字节单元,为此,必须将3字节计时缓冲区中的时分秒压缩BCD码拆分为6字节BCD码,并送入显示缓冲区中。

当按下调整时间键后,在6位设置完成之前,这6个LED应该显示键人的数据,不显示当前的时间。

为此,我们设置了一个计时显示允许标志位F0,在时间设置期间F0=1,不调用刷新显示缓冲区的子程序。

显示程序流程图如下图所示。

保护现场

允许显示?

调用拆字程序

动态扫描显示

返回

显示程序流程图

扫描键盘

调用显示程序有键按下?

调用显示程序

有键按下?

求取键号

返回

键盘扫描程序流程图

程序:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2