基于单片机的计时器设计论文内容摘要:

AT89S51 可为许多嵌入式控制应用系统提高性 价比的解决方案。 AT89S51 具有以下特点: 40 个引脚, 4k Bytes Flash 片内程序存储器, 128bytes 的随机存取数据存储器( RAM), 32 个外部双向输入 /输出( I/O)天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 8 口, 4 个中断优先级 2 层中断嵌套中断, 2 个 16 位可编程定时计数器, 2 个全双工串行通信口,内部集成看门狗计时器片内时钟振荡器。 图 22 AT89S51单片机管脚图 其工作电压在 ,一般我们选用 +5V 电压。 89S51 相对于 89C51 增加的新功能包括: 新增加很多功能,性能有了较大提升,价格基本不变,甚至比 89C51 更低。 ISP 在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。 是一个强大易用的功能。 最高工作频率为 33MHz,大家都知道 89C51 的极限工作频率是 24M,就是说 S51 具有更高工作频率,从而具有了更快的计算速度。 具有双工 UART 串行通道。 内部集成看门狗计时器,不再需要像 89C51 那样外接看门狗计时器单元电路。 双数据指示器。 电源关闭标识。 全新的加密算法,这使得对于 89S51 的解密变为不可能,程序的保密性大大加强,这样就可以 有效的保护知识产权不被侵犯。 兼容性方面:向下完全兼容 51 全部字系列产品。 比如 8051, 89C51 等等早期 MCS51 兼容产品。 也就是说所有教科书,网络教程上的程序(不论教科书上采用的单片机是 8051 还是 89C51 还是 MCS51等等),在 89S51 上一样可以照天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 9 常运行,这就是所谓的向下兼容。 因此我们选用 AT89S51 单片机来作为本系统的核心部分。 下图 23 为 89S51 的核心电路框图: 图 23 89S51 的核心电路框图 LED 数码管显示器概述 LED 数码显示器的结构与 显示段码 LED 数码显示器的结构 LED 数码显示器是一种有 LED 发光二极管组合显示字符的显示器件。 它使用了 8 个 LED 发光二极管,其中 7 个用于显示字符,一个用于显示小数点,故通常称之为 7 段发光二极管数码器。 其内部结构如下图 24 所示。 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 10 图 24 数码管内部框图 LED 数码显示器有两种连接方法如下。 ( 1)共阳极接法。 把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接 +5V,每个发光二极管的阴极通过电阻与输入端相连。 ( 2)共阴极接法。 把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极 接地。 每个发光二极管的阳极通过电阻与输入端相连。 LED 数码显示器的显示段码。 为了显示字符,要为 LED 显示器断码(或称字形代码),组成一个 8字形字符的 7段,再加上 1个小数点位,共计 8段,因此提供给 LED 显示器的显示段码为 1 个字节。 各段码位的对应关系如下表 21 所示。 其中共阴极和共阳极的字段码互为反码。 表 21 各段码位的对应关系 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 11 LED 数码管显示器的接口方法与电路 LED 数码显示的接口方法。 单片机与 LED 数码显示器有以硬件为主和以软件为主的两种接口方法。 以硬件为主的接口方法, 这种方法的电路如图 25 所示: 图 25 硬件为主的 LED 接口方法 LED 数码显示器的接口电路。 实际使用的 LED 数码显示器位数较多。 为降低成本,大部分以软件为主的接口方法对于多位 LED 数码管显示器,通常采用动态扫描显示方法,即逐个循环点亮各位显示器。 这样虽然在任一时期只有一位显示器被点亮,但是由于人眼有视觉残留效应,看起来与全部显示持续点亮的效果基本一样(在亮度上要有差别)。 驱动器 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 12 LED 显示是单片机控制产品中常见的应用。 使用 LED 模块,这种模块中带有 LED 显示管和 LED 驱 动电路,用起来较方便。 一般用户直接采用单片机 +LED驱动器 +LED 显示管的方式。 现在我们向大家推荐一种经常使用的 LED 驱动器 8550,它作为共阳数码管的驱动器,而共阴数码管的驱动器则是 A1015。 它们都是三极管。 单片机最小系统电路设计 最小系统就是单片机在发挥具体测控功能时所必须的组成部分。 如下图 26所示为最小系统电路图: 图 26 最小系统实际电路图 定时器系统总体框图 本定时器的基本原理是通过设定单片机定时中断,使单片机每 1秒产生一个中断,通过该中断可以实现显示部分 每 1 秒倒计时减 1 显示。 此外,通过人机交互(键盘)部分,可以完成 1分钟、 2分钟、 5分钟、 8分钟及任意时间倒计时的设定。 因此,如图 27 所示,在系统设计中应包括以下五个部分: 中央处理系统( 89s51); 复位电路部分; 振荡电路部分; 定时显示部分; 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 13 键盘部分。 8 9 S 5 1键 盘 部 分复 位 电 路定 时 显 示振 荡 电 路 图 27 定时器系统总体框图 算法的选择 本课题要实现单片机定时器的设计,最重要就是定时问题。 要精确定时,就需要用到中断方式,并工作在自动重装载方式。 本设计的具体算法如下: 首先选择晶振为 12MHz 的单片机,每秒钟可以执行 1000000( 12020000/12)个机器周期。 而 T0 每次溢出时最多经过了 65536 个机器周期。 1 秒等于 1000000微秒,而每一计时脉冲是 1 微秒,因此需输入 100000 个计时脉冲,方可达到 1秒的时间。 由于 16 位计数器初值为 0000H,需 65536 个计时脉冲方可发生溢出。 选择每秒中断 14 次,每次溢出 1000000/14= 个机器周期,不为整数且超出 65536。 选择每秒中断 16次,每次溢出 1000000/16=62500个机器周期,小于 65536,有效。 选择每秒中断 20次,每次溢出 1000000/20=50000 个机器周期,小于 65536,有效。 通过上面的计算,我们可以发现,我们可以选择的方式有很多,本设计选择每秒中断 20 次 , 每 次 中 断 的 时 间 为 50ms ( 50000 个 机 器 周 期 )6553650000=15536=3cb0H 则 th0 和 tl0 的设置值分别为: TH0=0x3c; TL0=0xb0。 这样每秒中断 20次,即可实现 1s的中断定时。 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 14 第三章 定时器系统的软硬件实现 计时器系统的硬件实现 图 31 定时器系统硬件电路 定时器系统主要由电路硬件系统及软件系统组成,硬件系统以 Atmel 公司的AT89S51 为核心,主要包括 单片机、 LED 数码管显示器、二极管、晶振、开关、电容、电阻等。 软件部分由基于单片机的 C 语言实现。 由图 31 所示,整个定时系统分为五个部分: 键盘输入(包括暂时暂时、开始 ) 其中: d1 键为一分钟控制键, d2 键为二分钟控制键, d3 键为五分钟控制键,d5键为八分钟控制键, d5为千位, d6 为百位, d7 为十位, d8为个位。 显示部分 数码管显示倒计时的时间。 3到时提醒 倒计时为 0时,发光二极管闪烁给予提醒。 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 15 单片机复位电路 复位电路产生复位信号,复位信号送入 RST 后还要送至片内的施密特触发器,由片内复位电路在每个机器周期的 S5P2 时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。 一般的复位电路可分为上电自动复位和按键复位,我们在此选用的是上电复位。 上电自动复位原理: RST 引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。 上电自动复位是通过电容充电实现,上电瞬间, RST端电位与 Vcc 相同,随充电电流的 减少, RST的电位逐渐下降,直到复位信号无效。 单片机振荡电路 MCS51的振荡器输入分别由引脚 19( XTAL1)和引脚 18( XTAL2)来完成。 只要将这两个引脚外接石英晶体和陶瓷电容,就可与 CPU 内部组成完整的振荡电路。 计时器系统的软件实现 计时器系统的主要算法如第二章所述。 本方案所采用的开发工具是 keil C,主程序流程图如图 32 所示: 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 16 开 始显 示 9 9 9 9是 否 有 键 按 下 是 否 是 暂 停 、开 始 键Y e sN o开 始 倒 计 时是 否 倒 计 时 到 0二 极 管 闪 烁到 时 提 示N oY e sY e s根 据 所 按 键 软 件 设定 倒 计 时 时 间 并 在数 码 管 上 显 示N o 图 32 计时器系统软件流程图 单片机通电以后,数码管首先显示 9999,然后 软件查询是否有按键按下。 如果按下的是开始暂停键,则数码管开始倒计时。 如果是设置按键按下,那么软件自动设置倒计时的时间并在数码管上显示。 如果再按下开始暂停键,则根据数码管显示的数据开始倒计时,一旦倒计时为 0时,发光二极管闪烁进行到时提示。 天津大学仁爱学院 2020届本科 生 毕业 设计 (论文 ) 17 第四章 计时器系统的硬件仿真 Keil 介绍 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。 机器汇编是通过汇编软件将源程序变为机器码 ,用于 MCS51 单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展, Keil 软件是目前最流行开发 MCS51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。 Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境( uVision)将这些部份组合在一。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。