资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1基于 AT89S51 控制的数字时钟物理与机电工程学院 电子信息工程 学号:200402119 姓名:王炳灿 指导老师:张剑锋副教授摘要摘要 本系本系统统采用采用 MSC-51 系列系列单单片机以片机以 AT89S51 为为中心器件来中心器件来设计设计多功能数字多功能数字时钟时钟。文中。文中详细详细介介绍绍了了 51 单单片机片机应应用中的数据用中的数据转换显转换显示,数示,数码码管管显显示原理,示原理,动态扫动态扫描描显显示原理,示原理,单单片机的定片机的定时时中断原理。中断原理。该时该时 钟钟系系统统能能实现时钟实现时钟日日历历的功能:能的功能:能进进行行时时、分、秒的、分、秒的显显示示;也具有日也具有日历计历计算、算、显显示和示和时钟时钟,日,日历历的校准、定的校准、定 时时间时时间的的设设定,定,实现实现秒表,整点秒表,整点报时报时等功能。等功能。关键词关键词 AT89S51 74LS245 原理原理 时钟时钟 单单片机片机 21.引言引言1.1 设计的意义近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异 更新.在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方 面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善. 本文通过用对一个能实现定时,日历显示功能的时间系统的设计学习,详细介绍了 51 单片机应用 中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中断原理、从而达到学习, 了解单片机相关指令在各方面的应用。1.2 设计所要做的工作系统 AT89S51、LED 数码管、按键、发光二极管,电容,电阻,蜂鸣器,晶震等部分构成,能实现 的功能有:时间显示、日期显示、定时、整点报时、秒表、报警。 左键:切换功能显示,按一下显示日期,再按一下显示定时时间,再按一下显示秒表。 中键:进行位置选择,按一下则选择最右边两位,再按一下则选择中间两位,再按一下则选择左 边两位,再按一下则选择下一功能左边两位,如此循环。当选择某个数的时候,按左键加一,秒的时 候则直接清 0。当有选择某个数的时候或显示日期、定时时间的时候按右键则返回显示时间。 右键:定时时间到时会放音乐,按右键时就停止播放。 右上角按键和指示灯:显示是否有定时功能,亮时则有定时功能,按一下按键则灯灭取消定时功 能,再按下开启定时功能。 当显示秒表的时候:按中间键进行开始计时和暂停,按右键清 0。按左键时回到显示时间。2.2.硬件电路原理分析硬件电路原理分析2.1.电路原理分析时钟电路驱 动 电 路显 示 电 路复 位 电 路AAAT89S51定时 音乐 播放键盘 电 路图 2-1 总体方案方框图3图 2-2 电路原理图 电路中单片机的 P1 口送数据,P2 口送地进行选择某位数码管。用 74LS245 进行驱动,P3.0 接蜂鸣器, P3.2,P3.3,P3.4,P3.5 接按键,0.1uF 电容起抗干扰作用。 2.1.1 电路显示原理23456电路原理图见图 2。由两个四位的数码管组成时、分、秒、年、月、日的显示。P1 口的 8 条数据 线 P1.0 至 P1.7 分别与第一片 74LS245 译码的 A0-A7 口相接,P2 口的 P2.0 至 P2.7 分别与第二片 74LS245 A0-A7 相接。这样通过 P0 口送出一个存储单元的高位、低位代码,通过 P2 口送出扫描选通 代码地址,就会将要显示的数据在数码管中显示出来。从 P1 口输出的代码是段选码,从 P2 口输出的 就是位选码。这是扫描显示原理。 2.1.2 内部震荡电路1:图 2-3 晶体震荡电路 AT89S51 中有一个构成内部震荡器的高增益反向放大器,引脚 XTAL1 和 XTAL2 分别是放大器的输入 端和输出端,这个放大器与作为反馈元件的石英晶体构成自激震荡电路。外接石英晶体及电容 C1,C2 接 在放大器的反馈回路中构成并联震荡电路。42.1.3 键盘消抖原理1310键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理, 软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的 话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动。 2.1.4 复位电路原理【2】9复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠 起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖 动而影响复位。下图所示的 RC 复位电路可以实现上述基本功能,Sm 为手动复位开关。图 2-4 复位电路图 2.2 四位数码管原理图4810图 2-5 数码管管脚图2.3 AT89S51 的管脚说明2: 图 2-6 AT89S51 管脚图VCC 电源电压. GND 接地. RST 复位输入.当 RST 变为高电平并保持 2 个机器周期时,将使单片机复位.WDT 溢出将使该引脚输出高 电平,设置 SFR AUXR 的 DISRTO 位(地址 8EH)可打开或关闭该功能.DISKRTO 位缺省为 RESET 输出高电平 打开状态.5XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入. XTAL2 来自反向振荡放大器的输出. P0 口 一组 8 位漏极开路型双向 I/O 口.也即地址/数据总线复用口.作为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“1“可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口 线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻.在 Flash 编程时,P0 口接收 指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.P1 口 一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑 门电路.对端口写“1“,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为 内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).Flash 编程和程序校验期间,P1 接收低 8 位地址. P2 口 一个带内部上拉电阻的 8 位双向 I/O 口.P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑 门电路.对端口写“1“,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为 内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部程序存储器或 16 位 地址的外部数据存储器时,P2 口送出高 8 位地址数据.在访问 8 位地址的外部数据存储器时,P2 口线上 的内容在整个访问期间不改变.Flash 编程和程序校验期间,P2 亦接收低 8 位地址.P3 口 一个带内部上拉电阻的 8 位双向 I/O 口.P3 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑 门电路.对 P3 口写“1“时,它们被内部的上拉电阻把拉到高电并可作输入端口.作输入端口使用时,被外 部拉低的 P3 口将用上拉电阻输出电流(IIL).P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第 二功能,如下图所示.P3 口还接收一些用于 Flash 闪速存储器编程和程序校验期间的控制信号. PSEN/ 程序储存允许输出是外部程序存储器的读先通信号,当 AT89S51 由外部程序存储器取指令(或数 据)时,每个机器周期两次 PSEN/有效,即输出两个脉冲.当访问外部数据存储器,没有两次有效的 PSEN/ 信号.EA/VPP 外部访问允许.欲使 CPU 仅访问外部程序存储器,EA 端必须保持低电平,需注意的是:如果加密 位 LB1 被编程,复位时内部会锁存 EA 端状态.Flash 存储器编程时,该引脚加上+12V 的编程电压 VPP.3.3.数字时钟各个功能实现的设计思路数字时钟各个功能实现的设计思路3.1 数据与代码转换148由前述可知,从 P2 口输出位选码,从 P1 口输出段选码,LED 就会显示出数字来。但 P1 口的输出 的数据是要 BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。 可见,将要显示的存储单元的数据直接送到 P1 口去驱动 LED 数码管显示是不能正确表达的,必须在系 统内部将要显示的数据经过 BCD 码行转换后,将各个单元数据的段选代码送入 P1 口,给 74LS245 译码 后去驱动数码管显示。 具体转换过程如下:我们先将要显示的数据装入数据指针累加器 A 中,再将 A 中的数据转换成高 低两位,再放回 A 中,然后将通过 MOVC A,A+DPTR 查表将 A 中的值输出。如:有一个单元存储了 45 这样一位数,则需转换成高低两位放在两个地址中,然后通过查表取得 5, P1 口送出数据, P2 口送出 地址。延时 1 毫秒后同样的道理将高位 4 送出。高位 4,低位 5 先后送入译码器中,译码后 45 字就在 LED 中显示出来。 3.2 计时功能的实现与中断服务程序2时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器 T0 打开后,进入计6时,满 10 毫秒后,重装定时。中断一次,满一秒后秒进位,满 60 秒后即为 1 分钟,分钟单元进位, 60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率,得到年、月、日、时、分、 秒存储单元的值,并经译码后,通过扫描程序送 LED 中一位一位显示出来,实现时钟计时功能。累加 是用指令 INC 来实现的。进入中断服务程序以后,执行 PUSH PSW 和 PUSH A 将程序状态寄存器 PSW 的内容和累加器 A 中的 数据保存起来,这便是所谓的保护现场。以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。 在软件的控制之下,堆栈可在片内 RAM 中的任一区间设定,而堆栈的数据存取与一般的 RAM 存取又有 区别,对它的操作,要遵循 i 后进先出 i 的原则。 3.3 定时,音乐播放控制功能与比较指令12系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备 开启的时间和关闭时间置入 RAM 某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间 与执行设备的设定开启时间相等,就执行一条 STEB 12H 指令,将对应的那路置为高电位,开启,定时 时间到,调用音乐播放子程序;如果当前计时时间与执行设备设定的关闭时间相等,就执行 CLR 对应 的 12H 置低电位,关闭,音乐播放停止。实现此控制功能用到的比较指令为 CJNE A,#direct,rel, 其转移条件是累加器 A 中的值与立即数不等则转移。3.4 整点报时控制功能当时间的秒开始进入到 59 分 55 秒时,开蜂鸣器,56 秒时关蜂鸣器,57 秒开蜂鸣器,58 秒关蜂鸣器, 59 秒开蜂鸣器,60 秒关掉。这样实现了整点报时功能。如果有播放音乐则不进行整点报时,这点也在 程序中加以控制,以免产生混乱。3.5 秒表功能的实现秒表是通过定时 100 毫秒的时间。将 0.1 秒位通过 CJNE 的不等转移的比较指令和 10 比较,如果 不等,则 0.1 秒位继续每 100 毫秒加 1;如果等于 10,0.1 秒位清 0,秒位则加 1。秒位通过 CJNE 的 不等转移的比较指令和 60 比较,如果不等,则秒位继续每 1 毫秒加 1;如果等于 60,秒位清 0,分位 加 1。分位则也是通过 CJNE 的不等转移的比较指令和 60 比较,如果不等,则分位继续每 60 秒加 1; 如果等于 60,分位清 0,秒位清 0,0.1 秒位清 0,停止计数。74软件设计4.1 程序流程图图 4-1 主程序流程图8
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号