《【精美排版】基于单片机的电子钟设计-毕业论文.doc》由会员分享,可在线阅读,更多相关《【精美排版】基于单片机的电子钟设计-毕业论文.doc(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机的电子钟设计-毕业论文 作者: 日期:46 摘要摘 要多功能数字钟的应用非常普遍, 由单片机作为数字钟的核心控制器, 通过它的时钟信号 进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行 校时,定时等功能。 本系统利用单片机实现其具有计时,校时等功能的数字时钟,是以单片机 STC89C52 为 核心元件同时采用 数码管同时显示“时,分,秒,星期,年,月,日”的现代计时 装置。显示极具人性化,另外具有校时功能,闹钟功能和节电保护功能。利用单片机实现的 数字时钟具有编程灵活,便于功能的扩充等优点,如在电路板上预留有电源输出,温度传感 插座等插座,便于功能扩展
2、。关键词:STC89C52 单片机 DS12887ABSTRACTABSTRACTMulti-functional digital clock was very common by the MCU as the core controller of the digital clock, the clock signal timing function, time data is output by the microcontroller, the display. Through the keyboard can be school, timing and other functions. T
3、his system uses the MCU with the timing, school functions such as digital clock is The microcontroller STC89C52 as the core component at the same time Led also shows hours, minutes, seconds, week, year, month, day timing device. Show a very humane, the other school functions, alarm clock function an
4、d the power saver function. MCU digital clock with programming flexibility, easy expansion of the function, etc., power output, temperature sensor socket outlet on the circuit board is reserved for easy extensionsKeyword: STC89C52 MCU DS12887目录ii目 录第一章绪 论11.1单片机(Single Chip Microsoftcomputer,)简介11.2
5、单片机的发展历程11.2.151单片机的概况41.2.2单片机的应用及前景51.3电子钟51.3.1电子钟简介51.3.2电子钟的应用及发展6第二章各个模块的特性及结构72.18051单片机模块72.2LED显示模块82.2.1LED数码管的原理82.2.2LED数码管驱动方式102.3电子钟的实现框图11第三章硬件电路设计133.1复位电路133.2按键电路143.3时钟电路143.4显示控制电路153.5数码管显示电路153.6电源电路设计163.7时钟芯片模块163.8综合电路的实现163.9本章小结17第四章系统软件的设计194.1调时功能194.2显示功能204.3程序设计20第五章
6、电路仿真355.1Proteus软件简介355.1.1Proteus的功能模块355.1.2Proteus的贡献375.2电路仿真设计38第六章工作的总结与未来工作的展望416.1工作总结416.2未来展望41致 谢43参考文献456Error! No text of specified style in document. Error! No text of specified style in document.第一章 绪 论1.1 单片机(Single Chip Microsoftcomputer,简称MCU)简介单片机又称为微控制器,在一块半导体芯片上集中了中央处理器(简称CPU),只
7、读存储器(简称ROM),随机存储器(简称RAM),输出输出接口(简称I/O Interface),计时器(Timer/Counter),中断系统(Interrupt System)构成一台完整的数字计算机。单片机是一种采用超大规模集成电路技术,它把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器、计数器等集成到一块硅片上,构成了一个小而完善的小计算机系统的集成电路芯片1。目前,单片机已经渗透到我们生活的各个领域,几乎很难找到某个领域没有单片机的踪迹了。自导弹的导航装置,飞机上各种仪表的控制,工业自动化过程的实时控制和数据处理,计算机的网络通
8、讯与数据传输,到广泛使用的各种智能IC卡,录像机、摄像机、全自动洗衣机等的控制,及民用豪华轿车的安全保障系统,还有我们厂看到的程控玩具、电子宠物等等都是离不开单片机的,更不用说是自动控制领域的机器人和智能仪表等各种智能机械了。51单片机是对目前所有兼容Intel8031指令系统的单片机的统称,该系列单片机的始祖是Intel的8031单片机,后来随着Flansh rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一。51单片机是基础入门的一个单片机,还是应用最广泛的一种。1.2 单片机的发展历程1、探索阶段20纪70午代,美国的Fairchild公司首先推出了第一
9、款单片机F8,随后Intel公司推出了影响面大、应用更广的MCS48单片机系列,其以其体积小、重量轻、控制功能齐全和低价格的特点,得到了广泛的应用,为单片机的发展奠定了坚实的基础2。MCS48单片机系列的推出标志着在工业控制领域,进入到智能化嵌入式应用的芯片形态计算机的探索阶段。这一时期的特点是: 1)嵌入式计算机系统的芯片的集成设计; 2)只保证了基本的控制功能。2、结构体系的完善阶段在MCS-48探索成功的基础上很快推出了完善的、典型的单片机系列MCS-5l。MCS-51系列单片机的推出,标志Single Chip Microcomputer体系结构的完善。它在以下几个方面奠定了典型的通用
10、总线型单片机的体系结构。完善的总线结构:并行总线:8位数据总线、16位地址总线及相应的控制总线,两个独立的地址空间;串行总线:通信总线,扩展总线。完善的指令系统:具有很强的位处理功能和逻辑控制功能,以满足工业控制等方面的需要;功能单元的SFR(特殊功能寄存器)集中管理。完善的MCS-51成为SCMC的经典体系结构。3发展阶段Intel公司推出的MCS96单片机,将一些用于测控系统的模数转换器(ADC)、程序运行监视器(WDT)、脉宽调制器(PWM)、高速I/O口纳入片中,体现了单片机的微控制器特征。MCS-51单片机系列向各大电气商的广泛扩散,许多电气商竞相使用80C51为核,将许多测控系统中
11、使用的电路技术、接口技术、可靠性技术应用到单片机中;随着单片机内外围功能电路的增强,强化了智能控制器特征。微控制器(Microcontrollers)成为单片机较为准确表达的名词。其特点是:1)、满足嵌入式应用要求的外围扩展,如WDT、PWM、ADC、DAC、高速I/O口等。2)、众多计算机外围功能的集成,如:a)提供串行扩展总线:SPI总线、I2C总线、BUS总线、Microwire总线;b)配置现场总线接口:CAN BUS总线。c)CMOS化,提供了功耗管理的功能。d)提供OTP(一次可编程芯片)的供应状态,利于大规模和批量生产。4、MCU的成熟阶段单片机发展到这一阶段,表明单片机已成为工
12、业控制领域中普遍采用的智能化控制工具-小到玩具、家电行业,大到车载、舰船电子系统等领域,遍及计量测试、机械电子、工业过程控制、金融电子、办公自动化、工业机器人、商用电子、军事和航空航天等领域。为满足不同的要求,出现了高速、寻址范围大、运算能力强和多机通信能力的8位、16位、32位通用型单片机,小型廉价型、外围系统集成的专用型单片机,以及形形色色各具特色的现代单片机。可以说,单片机的发展进人了百花齐放的时代,为用户的选择提供了空间。这一时期的特点为:(1)电气商、半导体商的普遍介入MCS-48的成功,刺激了许多半导体公司竞相研制和发展自己的单片机系列。到目前为止,世界各地厂商已相继研制出大约50
13、个系列300多个品种的单片机产品,其中较有代表性的有Motorola公司的6801、6802,Zilog公司的Z-8系列,Microchip公司的PIC系列等。此外,开本的NEC公司、日立公司也都推出了各自具有特色的单片机品种。(2)大力发展专用单片机通用型与专用型是按某一型号单片机适用范围区分的。例如,80C51是通用型单片机,它并不是为某一种专门用途设计的单片机;而专用型单片机是针对某一类产品甚至某个产品需要而设计、生产的单片机。例如,来电显示电话中配有液晶驱动器接口的单片机和全自动洗衣机中的微控制器,都是专用单片机;特别是小家电、玩具领域的单片机,都是一些小封装、价格低廉的外围器件、外设
14、接口集成度高,它们多数为专用单片机。(3)综合品质高在体系结构(精简指令微处理器)、电磁兼容性能(Electro Magnetic Compatibility简称EMC)、开发环境(高级语言支持ISP、IAP等)、功耗管理等诸方面得到了提高。根据控制单元设计的方式与采用的技术不同,目前市场上的这些单片机可区分为两大类型:繁杂指令集结构(Complex Instruction Set Computer,简称CISC架构)和精简指令集结构(Reduced Instruction Set Computer,简称RISC)。繁杂指令集结构(CISC)的特点是指令数量多,寻址方式丰富,较适合初学者系统学
15、习,如INTEL的80C51或80C196、MC68K;而精简指令集结构(RISC)具有较少的指令与寻址模式,结构简单,成本较低,执行程序的速度较快,成为单片机的后起之秀,如PIC、EM78XXX和Z86HCXX。ISP(In System Programming)和IAP(In Application Programming)方式是两种先进的实时在线开发方式。它们无须传统的开发装置,借助计算机和单片机的高性能,实现了真正的在线仿真。(4)C语言的广泛支持a) 单片机普遍支持C语言编程,为后来者学习和应用单片机提供了方便;b) 高级语言减少了选型障碍,便于程序的优化、升级和交流。1.2.1 5
16、1单片机的概况 MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品3MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:8位CPU、 程序存储器(ROM)、的数据存储器(RAM)32条I/O口线、111条指令(大部分为单字节指令)专用寄存器、可编程定时/计数器全双工串行通信口外部数据存储器寻址、外部程序存储器寻址、逻辑操作位寻址功能单一+
17、5V电源供电就是由于MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,被堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了MCS-51单片机近年来C51获得了飞速的发展,C51的发源公司是INTEL公司,PHILIPS公司对其性能进行了改善,在原来的基础上发展了高速I/O口,A/D转换器,PWM(脉宽调制)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。ATMEL公司推出
18、的AT89Cxx系列兼容C51的单片机,完美地将Flash(非易失闪存技术)EEPROM与80C51内核结合起来,其仍采用C51的总体结构和指令系统,Flash的可反擦写程序存储器能有效地降低开发费用,并能使单片机作多次重复使用。正是由于51系列单片机的不断改进,使得其有了更为广泛的应用与发展;也正是由于其广泛的应用范围和广泛的发展,促使了51系列单片机的功能的不断完善。1.2.2 单片机的应用及前景由于单片机具有体积小,重量轻,价格便宜;抗干扰能力强;控制功能强大,有丰富的指令;片内存储器容量小,IO引脚不多等诸多优点,故其在家电,玩具,游戏机,仪器,仪表,机电一体化产品,计算机外围设备,工
19、业控制,分布式监控等诸多领域都有广泛的应用。在未来,应各种电子产品对单片机的要求,单片机将会向多功能、高性能、高速度、低电压、低功耗、大容量存储器的方向发展。其将有广泛的应用前景。1.3 电子钟电子钟即数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,其主要显著特点是直观性强,而且是非机械驱动,故具有更长的使用寿命,与石英机芯驱动的石英钟相比较,数字钟更具准确性。1.3.1 电子钟简介1957年,Ventura发明了世界第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用
20、于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分,小时进一,满二十四小时,小时位清零。从而达到计时的功能4,5。现代高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时,其用译码代替机械式传动,用液晶显示器代替指针显示,进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,也可以设置闹铃报时及整点报时,片选的灵活性好。相对于其他时钟类型,它的特点显著:比机械钟观察时间显著,比石英钟的走时准确,但是它的弱点就是显时较为单调,但在现在较高
21、的技术与艺术设计,使数字钟的外观更加美观,显示更加动态化。1.3.2 电子钟的应用及发展电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。不仅如此,在当今现代化的进程中,也离不开电子钟的相关功能和原理,比如,机械手的控制、家务的自动化、定时自动报警系统、按时自动打铃、定时广播、时间程序自动控制、定时开关烘箱、自动启闭路灯、通断动力设备、甚至各种定时电气的自动启用等,都是以钟表数字化为基础的,而且是控制的核心部分7,8,9。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器
22、的控制,在自动化的过程中必然有电子钟的参与,因此,电子钟的应用会越来越广泛。而且随着电子技术的不断提高,电子钟也将向着更加精确、更低的功耗、多功能的方向发展。这是由于电子钟有如此多的功能及广泛的应用范围,因此,电子钟的研究及扩大其在各个领域的应用,有着非常现实和价值的意义。42Error! No text of specified style in document. Error! No text of specified style in document.第二章 各个模块的特性及结构基于我们的实验目标:借助51单片机来实现基本的时分秒的电子钟。将由两大模块组成:8051单片机控制模块和LE
23、D显示模块。2.1 8051单片机模块MCS-51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式8051单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 电源: VCC - 芯片电源,接+5V VSS - 接地
24、端时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
25、I/O线 8051共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)图2.1 8051引脚配置2.2 LED显示模块2.2.1 LED数码管的原理在某些半导体材料的PN结构中,注入的少数载流子与多数载流子复合时,会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电导致发光的原理制作的二极管叫做发光二极管,通常为LED,全称为Light Emitting Diodo。.LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个,如图
26、2-2所示,这些段分别由字母a,b,c,d,e,f,g,dp来表示,DP表示小数点。当数码管特定的段加上电压后,这些特定的段就会发亮,这样就可以看到不同的字样。发光二极管的阴极连接到一起连接到低电平的称为共阴极数码管,如图2-3所示,发光二极管的阳极连接到一起连接到电源正极的称为共阳极数码管,如图2-4所示。 图2.2 数码管 图2.3 共阴极数码管 图2.4 共阳极数码管各段码位的对应关系,如表2-1所示:表2.1 码位对应关系段码位D7D6D5D4D3D2D1D0显示段DpgfedcbaLED显示断码如表2.1所示:表2.2 LED显示段码字型共阳极段码共阴极段码字型共阳极断码共阴极段码0
27、C0 H3F H990 H6F H1F9 H06 HA88 H77 H2A4 H5B HB83 H7C H3B0 H4F HCC6 H39 H499 H66 HDA1 H5E H592H6D HE86 H79 H682 H7D HF84 H71 H7F8 H07 H空白FF H00 H880 H7F HP8C H73 H根据我们所采用的8051单片机的特点,我们选用共阴极数码管。将8051的P0.0P0.7通过74LS245芯片与共阴极数码管的ap相连,高电平的位对应的LED数码管的段亮,低电平的位对应的LED数码管的段暗,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。2.2.
28、2 LED数码管驱动方式LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。1)静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码经二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2)动态显示驱动LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f
29、,g,dp”的同名端连在一起,通过控制每个数码管的公共极COM位选通控制电路,即可选定要点亮的数码管,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流的控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。利用人的视觉暂留现象及发光二极管的余辉效应,实际上各位数码管并非同时点亮,但只要扫描的速度足够快,一般扫描频率大于人眼能分辨出的频率50Hz即可,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量
30、的I/O端口,而且功耗更低。2.3 电子钟的实现框图电子钟的实现原理框图如图2-6所示,它由单片机8051、电源、时分显示部分组成。对于电源部分,一部分是220V的电压通过变压整流稳压来得到数字系统所需要的+5V电压,以维持系统的正常工作,实际设计操作中,我们采用现成的控制平台。对于时分显示部分,我们采用动态扫描,以降低对单片机端口数的要求,同时也可降低系统的功耗。时分秒显示模块以及显示驱动都将通过8051单片机的I/O口控制10,11,12。图2.6 电子钟系统原理框图第三章 硬件电路设计通过对电子钟系统原理图的分析,及每个模块功能的实现,对每个模块的电路进行具体的搭建13。3.1 复位电路
31、51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。电路图如下:图3.1复位电路上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可
32、以实现自动上电复位。3.2 按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。电路图如图3-2所示:图3.2按键电路P1.0低电平,则表示有健按下,则进行调秒 ;当变为高电平时,则停止调节P1.1低
33、电平,则表示有健按下,则进行调分;当变为高电平时,则停止调节P1.2低电平,则表示有健按下,则进行调时;当变为高电平时,则停止调节3.3 时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图如图3-3所示:图3-3时钟电路51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器
34、和微调电容,就构成一个稳定的自激振荡器。3.4 显示控制电路由于我们采用LED共阴极显示屏,故当我们给相应的数码管高电平时,相应的数码管就会亮起来。通过总线接到数码管的数字输入端,通过单片机进行数位控制,通过循环扫描控制,利用人眼的视觉暂留功能,达到数位数码管同时显示的效果。其原理示意图如图3.4所示:图3.4 显示控制电路3.5 数码管显示电路数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。1.数码管的工作原理数码管是由八个发光二极管构成的显示器件。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本文用到的八个数
35、码管均是共阴极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的I/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符。本文的八个数码管均采用动态显示方式,显示当前的时间。3.6 电源电路设计电源电路包括变压器、桥式整流器、电容和稳压器。通过变压器变压,使得220V电压变为5 V,在通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压。在本文的实践过程中,我们直接采用实验室提供的数字工作箱进行电子设计。3.7 时钟芯片模块为了使电子钟信
36、号达到精确,这里选用DS12887时钟芯片,产生时钟信号,单片机通过并联总线与时钟芯片通信,将时间显示出来。3.8 综合电路的实现基于上述各个模块电路的分析与设计,结合我们要完成的电子钟实现功能有基本的时分秒的24小时制的时间显示,以及基本的调时调分调秒功能的实现。我们设计出如下的综合电路,如图3.5所示:图3.5 电子钟基本部分参考电路原理图3.9 本章小结本章介绍的是本设计的硬件结构,单片机的相关I/O口输入输出就可以实现相应的控制功能。还介绍了单片机的复位电路和时钟电路。第四章 系统软件的设计在基于单片机8051的控制下,实现时、分、秒的基本功能,本系统主要分为主程序和中断程序两大模块。
37、我们通过8051单片机的基本的C语言进行其逻辑编程,使其实现上述功能。4.1 调时功能给三个按键,当8051单片机的P1.0端口的键按下,即P1.0端口检测到低电平时,则进入调秒状态,当P1.1端口的键按下,则进入调分的状态;当P1.2端口的键按下,则进入调时的状态。当P1.0P1.2所对应的键抬起,即对应的端口检测到高电平,则退出调时状态,进行正常的时钟显示。由于按键的过程中,存在按键的抖动,从而有时会使得误判断,而进入调时功能状态,对此,我们加入了去抖,其流程图如图4.1所示:图4.1按键去抖程序图4.2 显示功能由于我们需要显示的数字不是很多,故本系统采用数码管进行显示。系统的时分秒显示
38、部件由两只三位七段共阳极的LED数码管构成,为了保护各段LED不被损坏,我们加入了限流电阻。前两位用于时的显示,第三和第四位用于分钟的显示,第五和第六位用于秒的显示。4.3 程序设计本章主要对实现时分秒功能具体程序的设计,保证得到准确的时分秒显示,及调时功能。/* * Desc:DS12C887 6位数码管显示 * */#include #define SEG_DAT P0#define SEG_BIT P2#define DS_DAT P0#define DS_SEC 0x00#define DS_MIN 0x02#define DS_HOR 0x04#define DS_WEK 0x06#
39、define DS_DAY 0x07#define DS_MON 0x08#define DS_YER 0x09#define DS_R_A 0x0A#define DS_R_B 0x0B#define DS_R_C 0x0C#define DS_R_D 0x0D#define DS_Y_S 0x0E /年千百位#define CNT_M 30 /控制闪烁速度,为偶数#define BCD_DEC(X) (X & 0xF0) 4) * 10 + (X & 0x0F)#define DEC_BCD(X) (X / 10) 4) | (X % 10)sbit DS_DS = P30;sbit DS
40、_RW = P31;sbit DS_AS = P32;sbit DS_CS = P33;sbit KEY1 = P10;sbit KEY2 = P11;sbit KEY3 = P12;sbit KEY4 = P13;unsigned char dispMode = 0; /显示模式unsigned char modify = 0; /修改模式unsigned char count = 0; /修改模式下闪烁计数unsigned char DIS6;unsigned char code C_DAT= 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99
41、,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/;unsigned char code C_BIT=0xDF,0xEF,0xF7,0xFB,0xFD,0xFE;void Delay(unsigned int t) unsigned int a,b; for (a=0; at; a+) for (b=0; b 4; DIS1 = C_DATi & 0x0F & 0x7F; i = DS12887_Read(DS_MIN); DIS2 = C_DATi 4; DIS3 = C_DATi & 0x0F & 0x7F; i = DS12887_Read(DS_SEC); DIS4 = C_DATi 4; DIS5 = C_DATi & 0x0F & 0x7F; if (modify != 0 & count CNT_M) /修改模式123下闪烁 DIS2 * (modify - 1) = 0xFF