1、该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。许多子函数都可以直接移植过去。关键词:单片机 AT89C52 C语言 作息时间系统AbstractThe design of the rest of the clock system design, from the smallest single-chip system, key module, digital tube display module, alarm module.Using single-chip AT89C52 and 12MHZ crystal connected through keys; K1,
2、K2, K3, K4, K5 control time display, correction, alarm time setting.Digital tube display module to display the time, the display format for time, and according to the needs of display year, month, day, by the digital tube decimal point flashing counts as a second alarm module; then remind and make c
3、orresponding action: the LED flashes, while playing a piece of music.This design, use single chip timer design time processing, using SCM internal timer to achieve T0, working in T1 mode, timing 50 subtle, continuously interrupted 20 times a second, is what we need the smallest unit of time in secon
4、ds, 60 seconds for a branch, is divided into a 60 hours, 24 hours a day, 1, 3, 5, 7, 8, 10, December for 31 days, 4, 6, 9, November for 30 days, a leap year in February for 29 days, a leap year in February for 28 days, 12 months for a year.By this time design ideas to set up time.In the design of th
5、e entire system, SCM P0 port output display signal; P1 export key input control; P2 port used to scan, dynamic display; P3 alarm module.The design using C51 programming, due to the less portable assembly language, C language is more flexible.Many functions can be transplanted directly past.Key Words
6、: SCM AT89C52 language C schedule system 目 录论 文 摘 要 IAbstract II目 录 III第一章 引 言 - 1 -第二章 概 述 - 2 -2.1 51单片机 - 2 -2.2 4位数码管的驱动方式 - 5 -2.3 设计要求 - 6 -2.4 设计实现的功能 - 6 -第三章 系统总体方案及硬件设计 - 7 -3.1 系统总体方案框图 - 7 -3.2 单片机最小系统 - 8 -3.3 按键控制模块 - 8 -3.4 时间显示模块 - 9 -3.5 闹钟模块 - 10 -第四章 软件设计 - 11 -4.1 keil软件介绍 - 11 -
7、4.2 系统软件设计思想 - 12 -4.3 系统主程序 - 12 -4.4 中断子程序 - 13 -4.5 按键扫描子程序 - 14 -4.6 系统程序(见附录3) - 15 -第五章 Proteus软件仿真 - 16 -5.1 Proteus软件简介 - 16 -5.2 Proteus软件仿真 - 17 -5.3 系统原理图(见附录1) - 20 -5.4 硬件实物图(见附录2) - 20 -5.5 原件清单 - 20 -第六章 硬件调试 - 21 -6.1 STC-ISP软件介绍 - 21 -6.2 焊接及程序下载 - 23 -6.3 硬件调试 - 23 -第七章 毕业设计体会 - 26
8、 -第八章 致谢 - 27 -参 考 文 献 - 28 -附录1 - 29 -附录2 - 30 -附录3 - 31 -第一章 引 言时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替显示器、指针显示,减小了计时误差,
9、这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都
10、可以满足高精度的要求。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,由单片机AT89S52、LED数码管及闹钟模块为核心,辅以必要的电路,设计了一个简易的电子时钟,它能够准确显示时间,调整时间,以及闹钟的设定。第二章 概 述本章主要介绍
11、51单片机的基本概念,数码管的驱动方式,设计要求和设计实现的功能。2.1 51单片机1、51单片机简介51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。当前常用的
12、51系列单片机主要产品有: *Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; *ATMEL的:89C51、89C52、89C2051等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品 目前,国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。2、主要功能8位CPU4kbytes 程序存储器(ROM) (52为8K) 256bytes的数据存储器(RAM) (52有384bytes的RAM) 32条I/O口线111条指令,大部分为单字节指令 21个专用寄存器 2个可编程定时/计数器5个中
13、断源,2个优先级(52有6个) 一个全双工串行通信口 外部数据存储器寻址空间为64kB 外部程序存储器寻址空间为64kB 逻辑操作位寻址功能双列直插40PinDIP封装 单一+5V电源供电 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格; I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于
14、实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。图2-1 51单片机实物图 图2-2 51单片机管脚图3、51单片机仿真1、主要功能和特性 (1)可以仿真63K程序空间,接近64K的16位地址空间; (2)可以仿真64Kxdata 空间,全部64K的16位地址空间; (3)可以真实仿真全部32条IO脚; (4)完全兼容keilC51 UV2调试环境,可以通过UV2 环境进行单步,断点, 全速等操作; (5)可以使用C51语言或者ASM汇编语言进行调试 ; (6)可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某
15、变量上就会立即显示出它此的值; (7)可选使用用户晶振,支持040MHZ 晶振频率; (8)片上带有768字节的xdata, 您可以在仿真时选 使用它们,进行xdata 的仿真; (9)可以仿真双DPTR 指针; (10)可以仿真去除ALE信号输出. ; (11)自适应300-38400bps的所有波特率通讯; (12)体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;(13)仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ; (14)仿真时监控
16、和用户代码分离,不可能产生不能仿真的软故障; (15)RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。2、功能限制仿真器占用单片机串口及定时器2,与Keil C(PC)通讯,故不支持串口及定时器2 的仿真功能。全速运行时单片机串口及定时器2 可供用户使用。3、仿真器使用方法(1)将仿真器插入需仿真的用户板的CPU 插座中,仿真器由用户板供电; (2)将仿真器的串行电缆和PC 机接好,打开用户板电源; (3)通过Keil C 的IDE 开发仿真环境UV2 下载用户程序进行仿真、调试。2.2 4位数码管的驱动方式1、静态驱动也称直流驱动。静态驱动是
17、指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,而一个89S52单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2、数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数
18、码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图2-3 4位数码管实物图图2-4 4位数码管管脚图2
19、.3 设计要求本设计是作息时间控制器,其设计实现的功能主要有:使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED闪动作为秒计数表示。可以设定时间和闹钟时间,当现在时间与闹钟设定时间相同时,闹钟响起,此时播放一段音乐。2.4 设计实现的功能本设计实现的功能为:使用七段显示器显示时间,显示格式为“时分”,并可显示日期,显示格式为“月日”,年份单独显示。可以设定作息时间,进行到时提示,并作出相应动作:发光二极管闪亮,同时播放音乐。第三章 系统总体方案及硬件设计这一章主要介绍本设计的系统总体方案和硬件设计图,这是设计的主体。3.1 系统总体方案框图系统总体方案由四个模块构成:即单片机最小
20、系统、按键控制模块、闹钟模块、数码管显示模块。图3-1 系统方案方框图本次设计实现的功能主要有:使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED小数点闪动作为秒计数表示。可以设定作息时间,并进行到时提示。由按键输入控制设置年月日以及当前时间、并可设置闹钟定时,时间到由蜂鸣器发出响声并作出相应动作:二极管闪亮,同时播放一段音乐。3.2 单片机最小系统图3-2 单片机最小系统单片机最小系统由复位电路,一个晶振,两个瓷片电容构成。当复位引脚(RESET)连接高电平超过2个机器周期,即可产生复位的操作。3.3 按键控制模块图3-3 按键控制模块按键控制模块主要有由五个按键组成:K1、K
21、2、K3、K4、K5。其中K1的功能是模式切换键;K2的作用是加一;K3的作用是闹钟使能;K4的作用是减一;K5的作用是显示年月日及时间。当需要校正时间或是设定闹钟时间时,即可按下模式切换键来进行。校正时间:按第一次K1键,进入小时校正状态,通过按K2、K4键进行小时校正,按一下K2键则加一,按一下K3键则减一;按第二次K1键,进入分校正状态,通过按K2、K4键进行分钟校正;按第三次K1键,进入闹钟小时设定状态,此时若不需要设置则不操作;按下第四次K1键,进入闹钟分钟设定状态,若此时不需要设置则不操作;按下第五次K1键进入月份校正状态,通过按K2、K4键进行月份校正;按下第六次K1键,进入日校
22、正状态,通过按K2、K4键进行日校正;按下第七次K1键进入年份校正状态,通过按K2、K4键来进行年份校正;校正完毕后,再按一次K1键,则退出时间校正状态,并显示当前校正后的准确时间。设定时间:按第一次K1键进入小时校正状态,此时若不需要设置,则不操作;以此类推,到第三次按下K1键,进入闹钟小时设定状态,通过按K2、K4键进行小时设定;按下第四次K1键,进入闹钟分钟设定状态,通过按K2、K4键进行分钟设定,设定完毕后,按一下K3键(闹钟使能);继续按K1键,若不需要设置,则不操作,以此类推,到按最后一次K1键则退出时间设定状态并显示当前时间,当时间与我们设定的时间一致时,通过闹钟电路响声提示,若
23、要关闭闹钟,此时再按一次K3键即可停止响声。3.4 时间显示模块图3-4 显示模块时间显示模块主要由四位数码管来显示,配合按键控制模块的校正与设定时间,相应的显示。时间正常显示时,LED小数点每闪动60次,分钟自动加一;每六十分钟小时自动加一;每24小时天自动加一。3.5 闹钟模块图3-5 闹钟音乐模块闹钟模块的主要功能:闹铃及二极管闪烁。当设定时间与当前时间一致时,则闹钟自动闹铃进行提示,同时二极管闪亮一分钟后,自动退出响铃状态,若按K3键,闹钟退出响铃状态。第四章 软件设计4.1 keil软件介绍Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、
24、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。1. 系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因
25、而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2. Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑
26、C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。* 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。* 仿真芯片的31脚(/EA)已接至高电平,所以仿
27、真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。4.2 系统软件设计思想本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在模式1方式下,定时50ms,则连续中断20次即为一秒,得到了我们所需时间的最小单位。由公式TX初值=2n - (fosc/12)*t,对于本设计中的初值,TX0初值=216 - (12*106/12)*50*10-3=15536,所以TH0=ox3c,TL0=oxb0.在程序中除了有主函数外
28、还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、设定日期显示函数、设定年份显示函数、月份选择函数、年份显示辅助函数。4.3 系统主程序在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了。时间计时处理程序是等过了1s后,则更新时间数据,将最新的时、分的数据转换为数字数据并显示在七段显示器上。主程序流程图见图4-1。图4-1 主程序流程图4.4 中断子程序中断子程序的主要功能:提供时间基准。当连续中断20次时,即为一秒,此时秒加一;当秒值为60时,分钟加一,同时秒清零;当分钟值为60
29、时,小时加一,同时分钟值清零;当小时为24时,天值加一,同时小时清零;由于每月天数不定,1、3、5、7、8、10、12月为31天,当计数到此类月份时,天值为32时,月值加一,同时天值为1;4、6、9、11月为30天,当计数到此类月份时,天值为31时,月值加一,同时天值为1;如果是闰年,则2月为29天,当计数到此类月份时,天值为30时,月值加一,同时天值为一;如果不是闰年,则2月为28天,当计数此类月份时,天值为29时,月值加一,同时天值为一;当月值为13时,则年值加一,同时月值为一。如图4-2所示:图4-2 定时器中断函数4.5 按键扫描子程序按键扫描子程序是程序计中相当重要的一部分。按键扫描子程序的功能是:扫描是否有按键按下,若有键按下,则执行相应功能。如图4-3所示:图4-3 按键扫描子程序4.6 系统程序(见附录3)第五章 Proteus软件仿真5.1 Proteus软件简介Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1