




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西省教育学院毕业论文设计 题 目 基于单片机 89S52 的数字时钟电路 姓 名 白海燕 班 级 信息 1031 指导老师 艾明祥 日 期 2012 9 10 摘要摘要 本设计基于单片机技术原理 以单片机芯片 AT89C51 作为核心控制器 通过硬件电路 的制作以及软件程序的编制 设计了多功能数字时钟系统 该时钟系统主要由时钟模块 块 液晶显示模块以及键盘控制模块组成 系统具有简单清晰的操作界面 能在 4V 7V 直流电源下正常工作 能够准确显示时间 显示格式为时时 分分 秒秒 24 小时制 可随时进行时间调整 具有闹钟时间设置 闹钟开 关 止闹功能 设计以硬件软件化为指 导思想 充分发挥单片机功能 大部分功能通过软件编程来实现 电路简单明了 系统稳 定性高 同时 该时钟系统还具有功耗小 成本低的特点 具有很强的实用性 由于系统 所用元器件较少 单片机所被占用的 I O 口不多 因此系统具有一定的可扩展性 其中软件系统采用 C 语言编写程序 包括显示程序 定时中断服务 延时 程序等 并在 keil 中调试运行 硬件系统利用 PROTEUS 强大的功能来实现 简 单切易于观察 在仿真中就可以观察到实际的工作状态 利用单片机开发板可 下载程序 实现硬件实现 关键词 秒表 时钟 定时 计数器 关键词 LCD 显示 单片机 时钟芯片 DS1302 Abstract The design is based on the principles of microcomputer technology based on microcontroller AT89C51 as the core controller through the production of the hardware circuits and software programming design of the multifunctional digital clock system The clock system is mainly composed of a clock module block liquid crystal display module and the keyboard control module The system is simple and clear user interface can be in 4V 7V DC power supply to work Be able to accurately display the time HH display format seconds 24 hours may at any time to time adjustment has set the alarm time the alarm on off stop alarm function design of hardware and software as the guiding ideology give full play to the function of the MCU most of the functionality through software programming circuit simple and clear high system stability At the same time the clock system also has a small power consumption low cost strong practicability Because the system uses few components single chip occupied by the I O port is not much so the system has a certain degree of scalability The software system using C language program including the display program timer interrupt service procedures time delay and in keil debugging operation hardware system by using the powerful function of PROTEUS to achieve simple and easy to observe in the simulation can be observed in the actual working condition the use of MCU development board can download the program to achieve hardware implementation Key words LCD display SCM DS1302 目目 录录 1 绪论 1 1 1 课题的提出及研究意义 1 1 2 数字时钟的发展现状 2 1 3 课题研究目的和研究内容 5 2 多功能数字时钟硬件设计 5 2 1 主控制模块 6 2 2 显示模块 9 2 3 时钟模块 11 2 4 电源转换模块 17 2 5 本章小结 18 3 电路仿真与制作 18 3 1 电路仿真 18 3 2 电路板制作 19 3 3 本章小结 19 4 软件设计部分 20 4 1 时钟程序的设计 20 4 2 本章小结 21 5 总结 21 参考文献 23 致 谢 24 附录 25 1 1 绪论绪论 人类的生活和工作均离不开时钟 从古代的滴漏更鼓到近代的机械钟 从电子表到 目前的数字时钟 为了准确的测量和记录时间 人们一直在努力改进着计时工具 钟表 的数字化 大力推动了计时的精确性和可靠性 1 11 1 课题的提出及研究意义课题的提出及研究意义 1 1 11 1 1 课题的提出课题的提出 近些年 随着科技的发展和社会的进步 人们对数字钟的要求也越来越高 传统的 时钟已不能满足人们的要求 多功能数字钟不管在性能还是在样式上都发生了质的变化 有电子闹钟 数字闹钟等等 数字钟成为人们日常生活中不可少的必需品 由于数字 1 集成电路的发展和石英晶体振荡器的广泛应用 使得数字钟的精度 远远超过老式钟表 钟表的数字化给人们生产生活带来了极大的方便 在日常生活和工作中 我们常常用到定时控制 如扩印过程中的曝光定时等 早期 常用的一些时间控制单元都使用模拟电路设计制作的 其定时准确性和重复精度都不是 很理想 现在基本上都是基于数字技术的新一代产品 随着单片机性能价格比的不断提 高 新一代产品的应用也越来越广泛 大可构成复杂的工业过程控制系统 完成复杂的 控制功能 小则可以用于家电控制 甚至可以用于儿童电子玩具 它功能强大 体积小 质量轻 灵活好用 配以适当的接口芯片 可以构造各种各样 功能各异的微电子产品 2 随着电子技术的飞速发展 家用电器和办公电子设备逐渐增多 不同的设备都有自 己的控制器 使用起来很不方便 根据这种实际情况 设计了一个单片机多功能数字时 钟 它可以避免多种控制器的混淆 利用一个控制器对多路电器进行控制 同时又可以 进行时钟校准和定点打铃 它可以执行不同的时间表 考试时间和日常作息时间 的 3 打铃 可以任意设置时间 这种具有人们所需要的智能化特性的产品减轻了人的劳动 扩大了数字化的范围 为家庭数字化提供了可能 电子钟是一种利用数字电路来显示秒 分 时的计时装置 与传统的机械钟相比 它具有走时准确 显示直观 无机械传动装置等优点 因而得到广泛应用 随着人们生 活环境的不断改善和美化 在许多场合可以看到数字电子钟 在城市的主要营业场所 车站 码头等公共场所使用 LCD 数字电子钟已经成为一种时尚 但目前市场上各式各样 的 LCD 数字电子钟大多数用全硬件电路实现 电路结构复杂 功率损耗大等缺点 因此 有必要对数字电子钟进行改进 1 1 21 1 2 课题研究的意义课题研究的意义 多功能数字时钟的用途十分广泛 只要有计时的存在 便要用到数字时钟的原理及 结构 同时在日期中 它以其小巧 价格低廉 走时精度高 使用方便 功能多 便于 集成化而受广大消费者的喜爱 随着人类科技文明的发展 人们对于时钟的要求在不断 提高 时钟已不仅仅被看出一种用来显示时间的工具 在很多实际应用中它还需要能 4 够实现更多其它的功能 高精度 多功能 小体积 低功耗 是现代时钟发展的趋势 在这种趋势下 时钟的数字化 多功能化已经成为现在时钟生产研究的主导设计方向 本设计使用 89C52 芯片作为控制芯片 复位电路和时钟电路构成单片机最 小系统 利用 P1 口 8 个引脚接上拉电阻 然后连接六位共阴极数码管段选段即 P0 0 P0 7 分别连接共阴极数码管的 A DP 脚 P1 0 P1 3 分别反相器 74HC04 再与数码管的位选端 1 6 脚连接 实现秒表的显示 利用 P3 2 和 P3 3 分别连接了 2 个按键 分别用来控制秒表复位 开始 暂停 单片机控制原理图 如下 图 2 2 单片机控制原理图 2 2 3 3 单单元元电电路路设设计计 本设计主要分为时钟电路模块 复位电路模块 显示模块和控制模块 设 计方案如下 2 2 3 3 1 1 时时钟钟模模块块 图 2 3 时钟电路 如上图所示 89C52 单片机的时钟信号通常用内部振荡方法得到 在引脚 XTAL1 和 XTAL2 外接晶体振荡器 简称晶振 或陶瓷谐振器 就构成了内部振荡 方法 由于单片机内部有一个高增益反相放大器 当外接晶振后 就构成了自 激振荡器并产生振荡时钟脉冲 晶振通常选择 6MHz 12MHz 24MHz 本设计采 用 12MHz 晶振 图中电容 C1 C2 起到稳固振荡频率 快速起振的作用 电容值 一般为 5 30pF 本设计选用 22pF 电容 2 3 2 复位电路模块 图 2 4 复位电路 复位操作完成电路的初始化 使单片机从一种确定的状态开始运行 由上图可知 控制模块实际上就是单片机的最小系统 本设计采用常用的 上电且开关复位电路 上电后 由于电容的充电 使 RST 持续一段高电平时间 当单片机已在运行中时 按下复位键也能使 RST 持续一段时间的高电平 从而 实现上电且开关复位的操作 此处 C3 电容取 20uF R1 1K 2 3 3 控制模块 控制部分电路连接如下图所示 图 2 5 控制电路 单片机检测按键的原理是 单片机的 I O 口既可作为输出也可作为输入使 用 当检测按键时 用的是它的输入功能 我们把按键的一端接地 另一端与 单片机的某个 I O 口相连 开始时先给该 I O 口赋一高电平 然后让单片机不 断的检测该 I O 口是否变为低电平 当按键闭合时 即相当于该 I O 口通过按 键与地相连 变成低电平 程序一旦检测到 I O 口变为低电平则说明按键被放 下 然后执行相应的指令 本设计如图 2 5 所示 1 个独立按键 K2 接到 P3 口的 P3 2 端 K2 键即既可 以当作开始键又可以当作暂停键 同时也可当复位键 同时借助于复位电路中 按键 K1 也可以实现秒表的复位 当需要秒表重新计时 利用 K1 键复位 当程 序出现错误时 可以随时使电路复位 2 3 4 显示模块 显示部分电路设计如下图 图 2 6 显示模块电路图 显示电路我们采用的是数码管显示电路 用 4 个共阴极 LED 显示 LED 是 七段式显示器 内部有 7 个条形发光二极管和 1 个小圆点发光二极管组成 根 据各管的亮暗组合成字符 在用数码管显示时 我们有静态和动态两种选择 静态显示程序简单 显 示稳定 但是占用端口比较多 动态显示所使用的端口比较少 可以节省单片 机的 I O 口 在设计中 我们采用 LED 动态显示 用 P0 口驱动显示 由于 P0 口的输出级是开漏电路 用它驱动时需要外接上拉电阻才能输出高电平 P1 O P1 3 提供位选择 共阴极数码管用非门 74HC04 反相驱动 3 软件设计 1 实现计时 利用单片机内部 T0 计时器实现计时 首先给定时器工作方式 寄存器 TMOD 赋值 0 x01 选定 T0 定时器工作在方式 1 接着确定定时初值 TH0 65536 10000 256 TL0 65536 10000 256 实现 10ms 的定时 利 用中断一次实现 0 01 秒定时 2 实现时间显示 利用单片机 P1 端口控制数码管的位选 利用 P0 端口控制 数码管的段选 只要两个数码管位选段选间隔的时间适当 就可以实现动态显 示时间 3 实现按键控制 利用单片机 P3 复用端口输入按键控制命令 可以将与 P3 2 端口相连的按键定义为启动 暂停按键 复位按键 3 3 1 1 整整体体程程序序设设计计 思思路路 此次设计中 定时 计数器选择定时 计数器 T0 工作于工作方式 1 即 16 位定时 计数器 利用定时器定时中断 每定时 10ms 即产生一次中断 每发生 一次中断即定时 0 01s 没发生 100 次中断即定时 1s P3 2 口为秒表启动 暂停控制按键 在键值处理子程序中 每检测到一次低 电平 按键 K1 计数值加一 当此值为奇数时 秒表启动 当此值为偶数时 秒表暂停 P3 3 口为秒表复位控制按键 每检测到一次低电平 秒表停止计时 显示恢复为 00 00 另外 独立按键在闭合时存在抖动现象 所以编写键盘检测程序时 需在 检测按下时加入去抖延时 检测松手时就不用了 3 3 2 2 程程序序流流图图 主程序 调按键处理子程序 调显示子程序 关中断 初始化 开始 中断子程序 入口 保护现场 送定时初值 毫秒级单元加1 毫秒级单元清 0 秒级单元加1 毫秒级单元 100 秒级单元 100 返回主程序 Y N Y N 秒单元清0 按键检测子程序 入口 有键按下 真有键按下 按键松开了 Count加1 Count 1 Count 2 开定时器 关定时器 秒单元清零 毫秒 单元清零 count 0 关定时器 返回 Y N Y N Y N Y N Y N 3 3 3 3 主主要要程程序序代代码码 include define uint unsigned int define uchar unsigned char sbit k1 P3 2 定义开始 暂停按键 sbit k2 P3 3 定义秒表复位按键 uint count uchar code table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f uchar code table1 0 xbf 0 x86 0 xdb 0 xcf 0 xe6 0 xed 0 xfd 0 x87 0 xff 0 xef uint second uint millisecond void delay uint z 延时 0 5ms uint x y for x z x 0 x for y 60 y 0 y void keyscan if k1 0 delay 20 if k1 0 count while k1 switch count case 1 TR0 1 break case 2 TR0 0 break case 3 TR0 0 second 0 millisecond 0 count 0 break void disply P0 table millisecond 10 P0 0 xff P1 0 x08 delay 1 P0 table millisecond 10 P0 0 xff P1 0 x04 delay 1 P0 table1 second 10 P0 0 xff P1 0 x02 delay 1 P0 table second 10 P0 0 xff P1 0 x01 delay 1 void main count 0 second 0 millisecond 0 disply TMOD 0 x01 TO 工作在定时器方式 1 TH0 65536 10000 256 预置计数初值 定时 10ms TL0 65536 10000 256 EA 1 CPU 开中断 ET0 1 T0 开中断 TR0 0 T0 停 P1 P2 P3 0 xFF while 1 keyscan disply void timer0 interrupt 1 TH0 65536 10000 256 计数初值重装载 TL0 65536 10000 256 millisecond if millisecond 100 millisecond 0 second if second 60 second 0 4 仿真调试 总体仿真电路图如下图所示 图 4 1 整体仿真原理图 4 4 1 1 k ke ei il l 简简介介 Keil C51是美国 Keil Software 公司出品的51系列兼容单片机 C 语言软件开 发系统 与汇编相比 C 语言在功能上 结构性 可读性 可维护性上有明显 的优势 因而易学易用 Keil 提供了包括 C 编译器 宏汇编 连接器 库管理 和一个功能强大的仿真调试器等在内的完整开发方案 通过一个集成开发环境 uVision 将这些部分组合在一起 运行 Keil 软件需要 WIN98 NT WIN2000 WINXP 等操作系统 如果你使用 C 语言编程 那么 Keil 几乎就是你的不二之选 即使不使用 C 语言而仅用汇编语言编程 其方便 易用的集成环境 强大的软件仿真调试工具也会令你事半功倍 Keil C51生成的目标代码效率非常之高 多数语句生成的汇编代码很紧凑 容易理解 在开发大型软件时更能体现高级语言的优势 4 4 2 2 k ke ei il l 与与 p pr ro ot tu ue es s 联联调调 联调设置步骤如下 1 把 C Program Files Labcenter Electronics Proteus 6 Professional MODELS 目录下的 VDM51 dll 文件复制到 C Keil C51 BIN 文件夹下 目录名都是默认 的 你可以根据你实际安装的目录进行复制 可能会没有这个 VDM51 dll 楼 主需要网上下一个 再放到 BIN 里面 2 用记事本 其它的编辑软件也可以 如 Ultra Edit 打开 Keil 根目录下的 TOOLS INI 文件 在 C51 栏目下加入 TDRV8 BIN VDM51 DLL Proteus VSM Monitor 51 Driver 3 打开 Proteus 画出相应电路 在 Proteus 的 Debug 菜单中选中 Use Remote Debug Monitor 远程监控 4 进入 Keil 的 Project 菜单 Option for Target 工程名 在 Debug 选项中右 栏上部的下拉菜单选中 Proteus Driver 再进入 Settings 机子 IP 设为 127 0 0 1 端口号为 8000 5 在 Keil 中进行 debug 同时在 Proteus 中查看直观的结果 这样就可以像 使用仿真器一样调试程序了 4 4 3 3 仿仿真真 实实现现 双击图标进入 Keil uVision2 编程环境 输入程序 返回桌面双击图标 进 入 PROTEUS 仿真环境 点击左上角选项 P 后根据设计的电路图调出所需元件 画好硬件原理图如图 4 1 所示 然后按照 4 1 节所写步骤 设置 keil 和 proteus 的工作环境 实现 keil 和 proteus 的连调 设置完成后 程序开始执行即可看到数码管显示初始值 00 00 按下 K1 一 次 秒表开始计时 再按下 K1 秒表暂停 依次循环操作 按下 K2 键秒表又 恢复至 00 00 停止计时 再按下 K1 键才能重新开始计时 5 硬件实现 5 5 1 1 程程序序下下载载步步骤骤 1 连接硬件 将串口下载线一头与计算机串口相连 另一头与学习板串口相连 注意此时不要给学习板上电 2 运行 STC 下载软件 STC ISP V3 5 出现如下界面 图 5 1 STC ISP V3 5 运行界面 第一步 选择单片机型号 STC89C52 第二步 打开要下载的 HEX 文件 第三步 选择串口和波特率 波特率请选用默认值 第四步 点击下载按钮 由此完成程序的下载 5 5 1 1 硬硬件件调调试试 给目标板上电复位 即可按键数码管显示 00 00 按下 K1 一次 秒表开始 计时 再按下 K1 秒表暂停 依次循环操作 按下 K2 键秒表又从 00 00 开始 计时 由此可见 该设计完成了设计要求 如下图为硬件实现照片展示 图 5 2 硬件调试 6 拓展 在基于定时 计数器设计的秒表的基础上 设计一个基于定时 计数器的时 钟秒表计时器 可以显示年 月 日 星期 时间进制 时 分 秒 以及闹 钟启 停状态 可以实现时间的调整 时钟 秒表功能的转换 闹钟的启 停 采用定时器 T0 实现时钟定时器 定时器 T1 实现秒表定时器 用 LCD1602 液晶显示器显示年 月 日 星期 时间进制 时 分 秒 以及闹钟启 停 状态 使用弹性小按键 可以实现时间的调整 时钟 秒表功能的转换 闹钟的 启 停 6 6 1 1 设设计计原原理理 原理图如下图所示 图 6 1 时钟秒表原理图 6 6 2 2 主主要要程程序序清清单单 void delay uint z void di uint x 蜂鸣器发声函数 void write com uchar com 给写液晶命令 void write date uchar date 给液晶写数据 void init 初始化函数 void write nian uchar add uint date 年显示函数 void write yue uchar add uchar date 月显示函数 void write ri uchar add uchar date 日显示函数 void write sfm uchar add uchar date 时分秒显示函数 void write week uchar week 星期显示函数 void write jinzhi uchar jinzhi 时间进制显示函数 void write nao uchar nao 闹钟开关 ON OFF 显示函数 void keyboard 按键扫描函数 void mbiao 秒表函数 void main 主函数 void timer0 interrupt 1 时钟定时器 void timer1 interrupt 3 秒表定时器 6 6 3 3 仿仿真真实实现现 设置完成后 程序开始执行即可看到液晶显示器显示初始时间 如图 6 2 所示 当时钟走至整点时 如图 6 3 所示 进行整点报时 如图 6 4 所示 当 按动 K1 键 进行调时控制 并由 K2 K3 键进行加 减调时控制 可以任意 调整时间 如图 6 5 所示 当按动 K4 键 可以实现时钟 秒表功能转换 并可 以实现秒表的启 停控制 如图 6 6 所示 由此可见 本设计完成了基本的时钟秒表定时器设计要求 图 6 2 初始时间 图 6 3 时钟模式 整点 图 6 4 整点报时 图 6 5 调时 图 6 6 秒表模式 1 21 2 数字时钟的发展现状数字时钟的发展现状 几种常用数字时钟设计方案 一 基于微机系统的数字时钟设计 计时单元由定时 计数器 8253 的通道 0 来实现 定时采用硬件计数和软件技术相结 合的方式 即通过 8253 产生一定的定时时间 然后再利用软件进行计数 从而实现 24 小时制定时 8253 定时时间到了之后产生中断信号 8253 在中断服务程序中实现时 分 秒的累加 时间显示采用实验平台上的 6 个 LED 数码管分别显示时 分 秒 采用动态扫描方 式实现 校时和闹铃定时通过键盘电路和单脉冲产生单元来输入 按键包括校时键 闹钟定 时键 加 1 键和减 1 键等 报警声响用蜂鸣器产生 将蜂鸣器接到 8255 的一个端口 通过输出电平的高低来 控制蜂鸣器的发声 系统硬件设计主要利用微机实验平台上的电路模块 硬件电路主要由键盘电路 单脉冲产 生单元 8253 定时计数器 8255 并行接口单元 8259 中断控制器 LED 显示电路和蜂鸣 器电路等等 图 1 1 基于微机系统的数字时钟设计框图 二 基于 VHDL 的数字时钟设计 基于 VHDL 语言 用 Top Down 的思想进行设计 用 CN6 无进位六进制计数器选择数码管的亮灭以及对应的数 循环扫描显示 用 SEL61 六选一选择器选择给定的信号输出对应的数送到七段码译码器 K4 模块进行复位 设置小时和分 输出整点报时信号和时 分 秒信号 单元模块设计部分 对应的数模 块 CN6 信号选择模 块 SEL61 七段码译码 器模块 DISP 图 1 2 基于 VHDL 数字时钟的设计模块 单元模块设计部分分三个部分 介绍数字钟选择显示数码管和对应的数模块 CN6 信号选择模块 SEL61 七段码译码器模块 DISP 和复位 秒 分 时显示 设置模块 三 基于单片机数字时钟设计 基于单片机的数字时钟设计是模块化设计 以单片机做主控制模块 控制时钟芯片 温度传感器芯片等 又将数据控制输出到显示模块 基于 MCS 51 单片机的数字时钟系统具有显示准确 直观 易于调整等特点 单片机 自诞生以来给全世界人类的生活和工作起到了剧烈的变化 而 MCS 51 单片机是我国使 用最早 最易掌握和应用的一款单片机 通过该系统的设计 对单片机的原理和功能有 个比较系统和全面的掌握 初步学习到有关工程设计的方法和思路 这样以后的就业面 会更加宽广 也可以满足当今社会对单片机开发人才的大量需求 5 目前单片机渗透到我们生活的各个领域 几乎很难找到哪个领域没有单片机的踪迹 导弹的导航装置 飞机上各种仪表的控制 计算机的网络通讯与数据传输 工业自动化 过程的实时控制和数据处理 广泛使用的各种智能 IC 卡 录象机 摄象机 以及程控 玩具 电子宠物等等 这些都离不开单片机 更不用说自动控制领域的机器人 智能仪 表 医疗器械了 因此 单片机的学习 开发与应用将造就一批计算机应用与智能化控 制的科学家 工程师 单片机在多功能数字钟中的应用已是非常普遍的 人们对数字钟 的功能及工作顺序都非常熟悉 但是却很少知道它的内部结构以及工作原理 由单片机 作为数字钟的核心控制器 可以通过它的时钟信号进行时实现计时功能 将其时间数据 经单片机输出 利用显示器显示出来 通过键盘可以进行定时 校时功能 输出设备显 示器可以用液晶显示技术和数码管显示技术 1 31 3 课题研究目的和研究内容课题研究目的和研究内容 1 3 11 3 1 课题研究目的课题研究目的 日常生活中人们离不开时钟 本文介绍是基于单片机的多功能数字时钟 在传统的时 钟基础上它具有走时准确 显示直观 无机械传动装置等优点 随着电子产业的发展 时 钟的数字化 多功能化已经成为现在时钟生产研究的主导设计方向 1 3 21 3 2 课题研究内容课题研究内容 采用模块设计法完成多功能数字时钟的设计 基本功能是时钟显示 能准确显示 时 分 秒 并具有快速校准时 分 秒的功能 时钟显示同时具有实时温度显示 扩展 功能有具整点报时功能以及闹钟功能 2 2 多功能数字时钟硬件设计多功能数字时钟硬件设计 基于单片机的多功能数字时钟的设计 单片机芯片作为控制系统的核心部件 它除 了具备微机 CPU 的数值计算功能外 还具有灵活强大的控制功能 以便实时检测系统的 输入量 控制系统的输出量 实现自动控制 在本次设计中采用单片机技术来实现数字 钟的功能 方案的设计可以从以下几个方面来确定 微处理器的选择 AT89S51 是 2003 年 ATMEL 推出的新型品种 除了完全兼容 8051 外 还多了 ISP 编程和看门狗功能 显 示电路的设计 随着科技的发展 液晶显示的使用越来越方便 已被普遍的使用 由于 液晶显示与驱动都集成在一个芯片上 因此使用起来很方便 在这里采用液晶显示 校 时和定时电路的设计 实时控制电路是时钟电路的一个重要组成部分 采用的是一个时 钟芯片 单片机从中读取数据送到显示器上显示 从而实现数字钟的功能 还有一些其 他控制电路如复位电路 时钟电路等 通过这些控制电路的连接构成了完整的电路 按照系统设计功能的要求 初步确定设计系统由电源转换模块 主控制模块 时钟 及温度模块 显示模块 键盘接口模块共 5 个模块组成 电路系统构成框图如图 2 1 所 示 电源模块 DS1302 89S52 主控制模块 健扫描控制 显示电路 图 2 1电路系统构成框图 2 12 1 主控制模块主控制模块 在本次设计中采用单片机技术来实现数字钟的功能 方案的设计可以从以下几个方 面来确定 微处理器的选择 AT89S51 是 2003 年 ATMEL 推出的新型品种 除了完全兼容 8051 外 还多了 ISP 编程和看门狗功能 89C51 是一种带 4K 字节闪烁可编程可擦除只 读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位微处理器 俗称单片机 89C2051 是一种带 2K 字节闪烁可编程可擦除只 读存储器的单片机 单片机的可擦除只读存储器可以反复擦除 100 次 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼 容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 89C51 是一种高 效微控制器 89C51 是它的一种精简版本 89C 单片机为很多嵌入式控制系统提供了一 种灵活性高且价廉的方案 2 1 12 1 1 AT89C52AT89C52 单片机的单片机的特性概述特性概述 主要特性 AT89S52 为 ATMEL 所生产的一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编程 Flsah 存储器 一 一 AT89S52 主要功能列举如下 主要功能列举如下 1 拥有灵巧的 8 位 CPU 和在系统可编程 Flash 2 晶片内部具时钟振荡器 传统最高工作频率可至 12MHz 3 内部程序存储器 ROM 为 8KB 4 内部数据存储器 RAM 为 256 字节 5 32 个可编程 I O 口线 6 8 个中断向量源 7 三个 16 位定时器 计数器 8 三级加密程序存储器 9 全双工 UART 串行通道 二 二 AT89S52 各引脚功能介绍 各引脚功能介绍 VCC AT89S52 电源正端输入 接 5V VSS 电源地端 XTAL1 单芯片系统时钟的反相放大器输入端 XTAL2 系统时钟的反相放大器输出端 一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了 此外可以在两引脚与地之间加入 一 20PF 的小电容 可以使系统更稳定 避免噪声干扰而死机 RESET AT89S52 的重置引脚 高电平动作 当要对晶片重置时 只要对此引脚电 平提升至高电平并保持两个机器周期以上的时间 AT89S51 便能完成系统重置 的各项动作 使得内部特殊功能寄存器之内容均被设成已知状态 并且至地址 0000H 处开始读入程序代码而执行程序 EA Vpp EA 为英文 External Access 的缩写 表示存取外部程序代码之意 低电平 动作 也就是说当此引脚接低电平后 系统会取用外部的程序代码 存于外部 EPROM 中 来执行程序 因此在 8031 及 8032 中 EA 引脚必须接低电平 因 为其内部无程序存储器空间 如果是使用 8751 内部程序空间时 此引脚要接 成高电平 此外 在将程序代码烧录至 8751 内部 EPROM 时 可以利用此引脚 来输入 21V 的烧录高压 Vpp ALE PROG ALE 是英文 Address Latch Enable 的缩写 表示地址锁存器启用信号 AT89S52 可以利用这支引脚来触发外部的 8 位锁存器 如 74LS373 将端口 0 的地址总线 A0 A7 锁进锁存器中 因为 AT89S52 是以多工的方式送出地 址及数据 平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1 6 因此可以用来驱动其他周边晶片的时基输入 此外在烧录 8751 程序代码时 此 引脚会被当成程序规划的特殊功能来使用 PSEN 此为 Program Store Enable 的缩写 其意为程序储存启用 当 8051 被设成 为读取外部程序代码工作模式时 EA 0 会送出此信号以便取得程序代码 通常这支脚是接到 EPROM 的 OE 脚 AT89S52 可以利用 PSEN 及 RD 引脚分 别启用存在外部的 RAM 与 EPROM 使得数据存储器与程序存储器可以合并在 一起而共用 64K 的定址范围 PORT0 P0 0 P0 7 端口 0 是一个 8 位宽的开路汲极 Open Drain 双向输出入端口 共有 8 个位 P0 0 表示位 0 P0 1 表示位 1 依此类推 其他三个 I O 端口 P1 P2 P3 则不具有此电路组态 而是内部有一提升电路 P0 在当做 I O 用时可以推动 8 个 LS 的 TTL 负载 如果当 EA 引脚为低电平时 即取用外部 程序代码或数据存储器 P0 就以多工方式提供地址总线 A0 A7 及数据总 线 D0 D7 设计者必须外加一锁存器将端口 0 送出的地址栓锁住成为 A0 A7 再配合端口 2 所送出的 A8 A15 合成一完整的 16 位地址总线 而定 址到 64K 的外部存储器空间 PORT2 P2 0 P2 7 端口 2 是具有内部提升电路的双向 I O 端口 每一个引脚可以推动 4 个 LS 的 TTL 负载 若将端口 2 的输出设为高电平时 此端口便能当成输入端口来使 用 P2 除了当做一般 I O 端口使用外 若是在 AT89S52 扩充外接程序存储器或 数据存储器时 也提供地址总线的高字节 A8 A15 这个时候 P2 便不能当做 I O 来使用了 PORT1 P1 0 P1 7 端口 1 也是具有内部提升电路的双向 I O 端口 其输出缓冲器可以推动 4 个 LS TTL 负载 同样地若将端口 1 的输出设为高电平 便是由此端口来输入 数据 如果是使用 8052 或是 8032 的话 P1 0 又当做定时器 2 的外部脉冲输入 脚 而 P1 1 可以有 T2EX 功能 可以做外部中断输入的触发脚位 PORT3 P3 0 P3 7 端口 3 也具有内部提升电路的双向 I O 端口 其输出缓冲器可以推动 4 个 TTL 负载 同时还多工具有其他的额外特殊功能 包括串行通信 外部中断控 制 计时计数控制及外部数据存储器内容的读取或写入控制等功能 其引脚分配如下 P3 0 RXD 串行通信输入 P3 1 TXD 串行通信输出 P3 2 INT0 外部中断 0 输入 P3 3 INT1 外部中断 1 输入 P3 4 T0 计时计数器 0 输入 P3 5 T1 计时计数器 1 输入 P3 6 WR 外部数据存储器的写入信号 P3 7 RD 外部数据存储器的读取信号 RST 复位输入 当振荡器复位器件时 要保持RST 脚两个机器周 期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存 地址的地位字节 在FLASH 编程期间 此引脚用于输入编程脉冲 在平 时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将跳过一个ALE 脉冲 如想禁止 ALE 的 输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指 令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器在外部执行 状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效 的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在 FLASH 编程期间 此引脚也用于施加12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 2 22 2 显示模块显示模块 随着科技的发展 液晶显示的使用越来越方便 已被普遍的使用 所以本次设计采用 液晶显示 液晶显示的原理是利用液晶的物理特性 通过电压对其显示区域进行控制 有 电就有显示 这样即可以显示出图形 液晶显示器具有厚度薄 适用于大规模集成电路直 接驱动 易于实现全彩色显示的特点 目前已经被广泛应用在便携式电脑 数字摄像机 PDA 移动通信工具等众多领域 由于液晶显示与驱动都集成在一个芯片上 因此使用起来很方便 数字钟要显示现在 的日历时间包括年 月 日 星期 时 分 秒 在这里采用 1602LCD 液晶显示 2 2 12 2 1 1602LCD1602LCD 显示器的结构显示器的结构 1 1602LCD 主要技术参数 显示容量为 16 2 个字符 芯片工作电压为 4 5 5 5V 工作电流为 2 0mA 5 0V 字符尺寸为 2 95 4 35 W H mm 2 接口 信号说明 1602LCD 采用标准的 16 引脚 带背光 接口 编号符号引脚说明编号符号引脚说明 1VSS 电源地 9D2Date I O 2VDD 电源正极 10D3Date I O 3VL 液晶显示偏压信号 11D4Date I O 4RS 数据 命令选择端 V L 12D5Date I O 5R W 读 写选择端 H L 13D6Date I O 6E 使能信号 14D7Date I O 7D0Date I O15BLA 背光源正极 8D1Date I O16BLK 背光源负极 图 2 3 1602 液晶接口引脚定义 1 2 组电源 一组是模块的电源 一组是背光板的电源 均为 5V 供电 2 VL 是调节对比度的引脚调节此脚上的电压可以改变黑白对比度 3 RS 是很多液晶上都有的引脚 是命令 数据选择引脚 该脚电平为高时表示将进 行数据操作 为低时表示进行命令操作 4 RW 也是很多液晶上都有的引脚 是读写选择端 该脚电平为高是表示要对液晶进 行读操作 为低时表示要进行写操作 5 E 同样很多液晶模块有此引脚 通常在总线上信号稳定后给一正脉冲通知把数据 读走 在此脚为高电平的时候总线不允许变化 6 D0 D7 8 位双向并行总线 用来传送命令和数据 7 BLA 是背光源正极 BLK 是背光源负极 9 2 2 22 2 2 1602LCD1602LCD 数据原理数据原理 读状态输入RS L R W H E H输出D0 D7 状态字 写指令输入RS L R W L D0 D7 指令码 E 高 脉冲 输出无 读数据输入RS H R W H E H输出D0 D7 数据 写数据输入RS H R W L D0 D7 数据 E 高脉 冲 输出无 图 2 4 1602LCD 基本操作时序 1602LCD 的指令码 命令码 此液晶上电的时候需要初始化典型的指令码是 38H 也就是上电的时候需要 调用 void write cmd unsigned char command 这个函数写指令码 用法是 write cmd 0 x38 执行完这个函数可以把液晶初始化成 16x2 显示 5x7 的点阵 8 位总线接口 以下指令 码用法相同 此液晶支持的指令码有 指令码功能 00111000 设置 16 2 显示 5 7 点陈 8 位数据接口 第一行指令主要能完成的功能是 控制液晶显示否 光标显示否 光标闪烁否 共有以下 8 种指令 0000100008H 关液晶显示 光标不闪烁 不显示光标位置 0000100109H 关液晶显示 光标不闪烁 显示光标位置 000010100AH 关液晶显示 光标不闪烁 不显示光标位置 000010110BH 关液晶显示 光标不闪烁 显示光标位置 000011000CH 开液晶显示 光标不闪烁 不显示光标位置 000011010DH 开液晶显示 光标不闪烁 显示光标位置 000011100EH 开液晶显示 光标不闪烁 不显示光标位置 000011110FH 开液晶显示 光标不闪烁 显示光标位置 第二行指令主要能完成的功能是写完字符 光标或屏幕移动方向 指令码功能 80H 地址码 0 27H 40H 67H 设置数据地址指针 2 2 2 2 3 3 显显示示模模块块的的数数据据连连接接 1602LCD 的 D0 D7 的八位数据线分别接单片机 89C51 的 P0 0 P0 7 RS 复位端接 P2 0 EN 使能端接 P2 2 读 写信号端接 P2 1 图 2 5 显示模块的数据连接图 2 32 3 时钟模块时钟模块 单片机控制时钟模块 定时时间 它通常有两种实现方法 一是用软件实现 即用 单片机内部的可编程定时 计数器来实现 但误差很大 主要用在对时间精度要求不高的 场合 二是用专门的时钟芯片实现 在对时间精度要求很高的情况下 通常采用这种方 法 典型的时钟芯片有 DS1302 DS12887 X1203 等都可以满足高精度的要求 本次设 计采用 DS1302 芯片 2 3 22 3 2 DS1302DS1302 数据操作原理数据操作原理 DS1302 时钟芯片简介时钟芯片简介 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片 内含一个实时时钟 日历 和 31 字节静态 RAM 可以通过串行接口与单片机进行通信 实时时钟 日历电 路提供秒 分 时 日 星期 月 年的信息 每个月的天数和闰年的天数可 自动调整 时钟操作可通过 AM PM 标志位决定采用 24 或 12 小时时间格式 D S1302 与单片机之间能简单地采用同步串行的方式进行通信 仅需三根 I O 线 复位 RST I O 数据线 串行时钟 SCLK 时钟 RAM 的读 写数据以 一字节或多达 31 字节的字符组方式通信 DS1302 工作时功耗很低 保持数据 和时钟信息时 功耗小于 1mW DS1302 的内部结构如图 4 所示 主要组成部分为 移位寄存器 控制逻辑 振荡器 实 时时钟以及 RAM 虽然数据分成两种 但是对单片机的程序而言 其实是一样的 就是对 特定的地址进行读写操作 DS1302 含充电电路 可以对作为后备电源的可充电电池充电 并可选择充电使能和串入 的二极管数目 以调节电池充电电压 不过对我们目前而言 最需要熟悉的是和时钟相关 部分的功能 DS1302 的工作原理的工作原理 DS1302 工作时为了对任何数据传送进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业文化建设与人力资源管理知识考试试卷及答案2025年
- 2025年辐射安全与防护知识培训模拟题带答案
- 韩国语能力考试题及答案
- 海南教资考试题目及答案
- 海壳物流考试题及答案大全
- 海安公交车考试题及答案
- 2025年反假币知识培训应知应会考试题库(含答案)
- 网络安全评估体系-第1篇-洞察与解读
- 市区地下管网更新改造工程技术方案
- 农产品仓储物流园建设项目技术方案
- 2026届新高考语文冲刺复习2025年高考全国2卷作文讲解
- 肝病科医师晋升副主任医师职称病例分析专题报告(服氟康唑致严重肝损伤诊疗分析)
- 吉林省长春市2025年中考英语真题附真题答案
- 2025年放射学影像学诊断综合考试卷答案及解析
- 2025年宿州首创水务有限责任公司招聘15人笔试模拟试题及答案解析
- 2025浙江湖州市产业投资发展集团下属市飞英融资租赁有限公司招聘笔试历年参考题库附带答案详解
- 软件项目开发团队管理方案
- 教师招聘培训课件
- 招江西省交通投资集团有限责任公司招聘笔试真题2024
- dj打碟培训课件
- 医院药师培训课件
评论
0/150
提交评论