




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计本科毕业设计 题 目 基于 Proteus 软件的单片机 数字时钟系统设计与仿真 课题性质 实践应用型 学生姓名 专业名称 自动化 指导教师 教学单位 电子电气工程系 学生学号 编 号 2011 年 5 月 20 日 I 目目 录录 一 设计正文 1 二 附录 1 设计任务书 32 2 设计中期检查报告 34 3 指导教师指导记录表 35 4 设计结题报告 36 5 成绩评定及答辩评议表 37 6 设计答辩过程记录 40 II 基于基于 ProteusProteus 软件的单片机数字时钟系统设计与仿真软件的单片机数字时钟系统设计与仿真 摘摘 要 要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展 单片 机的应用正在不断地走向深入 由于它具有功能强 体积小 功耗低 价格便 宜 工作可靠 使用方便等特点 因此越来越广泛地应用各个领域 本文的电子钟系统是以单片机 AT89C51 为核心 时钟芯片 DS1302 数 码管显示驱动芯片 MAX7219 等元器件组成 具体介绍应用 Proteus 的 ISIS 软件 进行单片机系统的电子钟设计与仿真的实现方法 该方法既能准确验证所设计 的系统是否满足技术要求 又能提高系统设计的效率和质量 降低开发成本 具有 推广价值 关键词 关键词 单片机 时钟芯片 数码管显示驱动芯片 Proteus 电子钟 III Design and Simulation Of electronic clock Based on Proteus Software System Abstract In recent years with computers in the infiltration and the development of large scale integrated circuits SCM application is steadily deepening as it has strong function small size low power dissipation low prices reliable easy to use features it is particularly suited to and control of the system increasingly widely used in various fields This article describes an electronic bell system is single chip microcomputer AT89C51 as the core the clock chip DS1302 LED display driver chip components such as MAX7219 component Describes the application of Proteus s ISIS software of the electronic single chip system clock to achieve the design and simulation methods in details The method can not only test the property of the system precisely but also improve development efficiency and reduce development cost which values in popularity Key words AT89C51 DS1302 MAX7219 Proteus electronics clock IV 目目 录录 1 1 绪论绪论 1 1 1 引 言 1 1 2 PROTEUS软件简介 1 2 2 系统设计系统设计 3 2 1 电子钟系统硬件组成 3 2 2 AT89C51 单片机简介 4 2 2 1 主要特性 5 2 2 2 管脚说明 5 2 3 实时时钟电路 DS1302 工作原理 8 2 3 1 DS1302 的结构及工作原理 8 2 3 3 DS1302 的寄存器 9 2 4 MAX7219 工作原理简介 10 2 4 1 引脚分配及功能 11 2 4 2 寄存器介绍 12 2 5 数码管介绍 14 2 5 1 数码管的分类 14 2 5 2 数码管的应用 15 2 5 6 数码管使用的电流与电压 15 2 6 电子时钟系统设计流程 16 3 3 硬件电路设计硬件电路设计 17 3 1 电路原理图设计 17 3 2 PROTEUS 电路图设计 18 4 4 软件设计软件设计 19 4 1 程序流程图设计 19 4 2 源程序设计 19 4 3 KEILC51 进行程序调试 25 5 5 系统调试与仿真系统调试与仿真 27 5 1 PROTEUS中 HEX 文件选择 27 5 2 PROTEUS进行电子钟系统仿真 28 结束语结束语 29 V 参考文献参考文献 30 谢谢 辞辞 31 1 1 1 绪论绪论 1 11 1 引引 言言 随着半导体技术的飞速发展 以及移动通信 网络技术 多媒体技术在嵌 入式系统设计中的应用 单片机从 4 位 8 位 16 位到 32 位 其发展历程一直 受到广大电子爱好者的极大关注 单片机功能越来越强大 价格却不断下降的 优势无疑成为嵌入式系统方案设计的首选 同时单片机应用领域的扩大也使得 更多人加入到基于单片机系统的开发行列中 推动着单片机技术的创新进步 然而传统的单片机系统开发除了需要购置诸如仿真器 编程器 示波器等 价格不菲的电子设备外 开发过程也较繁琐 来自英国 Labcenter Electronics 公 司的 Proteus 软件很好地诠释了利用现代 EDA 工具方便快捷开发单片机系统的优 势 它包括 PROTEUS VSM Virtual System Modelling PROTEUS PCB DESIGN 两大组成部分 在 PC 机上就能实现原理图电路设计 电路分析与仿真 单片机 代码级调试与仿真 系统测试与功能验证以及形成 PCB 文件的完整嵌入式系统 设计与研发过程 单片机系统作为一种典型的嵌入式系统 其系统设计包括硬件电路设计和 软件编程设计两个方面 其调试过程一般分为软件调试 硬件测试 系统调试 3 个过程 如果采用单片机系统的虚拟仿真软件 Proteus 则不用制作具体 的电路板也能够完成以上工作 1 21 2 Proteus 软件简介软件简介 PROTEUS 软件由 Labcenter 公司开发 是目前世界上最先进 最完整的嵌 入式系统设计与仿真平台 可以实现数字电路 模拟电路及微控制器系统与外 设的混合电路系统的电路仿真 软件仿真 系统协同仿真和 PCB 设计等功能 是目前唯一能够对各种处理器进行实时仿真 调试与测试的 EDA 工具 微控制 2 器系统相关的仿真需建立编译和调试环境 可选择 Keil C51uVision2 软件 该软件支持众多不同公司的芯片 集编辑 编译和程序仿真等于一体 同时还 支持 PLM 汇编和 C 语言的程序设计 它的界面友好易学 在调试程序 软件 仿真方面有很强大的功能 其革命性的功能是 将电路仿真和微处理器仿真进 行协同 直接在基于原理图的虚拟原型上进行处理器编程调试 并进行功能验 证 通过动态器件如电机 LED LCD 开关等 实时看到运行后的输入 输出 的效果 配合系统配置的虚拟仪器如示波器 逻辑分析仪等 Proteus 为我们 建立了完备的电子设计开发环境 3 2 2 系统设计系统设计 2 12 1 电子钟系统硬件组成电子钟系统硬件组成 电子钟系统硬件主要由 AT89C51 单片机 时钟芯片 DS1302 数码管显示驱 动芯片 MAX7219 等元器件组成 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压 高性能 CMOS8 位微处理器 俗称单片机 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 MAX7219 是 MAXIM 公司生产的串行输入 输出共阴极数码管显示驱动芯片 单单片片机机晶晶振振电电路路 单单片片机机复复位位电电路路 AT89C51 单单片片机机 时时钟钟芯芯片片 DS1302 8位位LED显显示示 数数码码管管显显示示驱驱 动动芯芯片片 MAX7219 按按键键电电路路 蜂蜂鸣鸣器器 图 1 电子钟系统硬件电路组成框图 4 2 22 2 AT89C51AT89C51 单片机简介单片机简介 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位 微处理器 俗称单片机 AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存 储器的单片机 单片机的可擦除只读存储器可以反复擦除 100 次 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出 管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C2051 是它的一种精简版本 AT89C 单片 机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 图 2 AT89C51 单片机 5 2 2 1 主要特性 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦循环 数据保 留时间 10 年 全静态工作 0Hz 24Hz 三级程序存储器锁定 128 8 位内部 RAM 32 可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 可编程串行通道 低功 耗的闲置和掉电模式 片内振荡器和时钟电路 2 2 2 管脚说明 V VC CC C 供电电压 G GN ND D 接地 P P0 0 口口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电 流 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部 程序数据存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部 必须被拉高 P P1 1 口口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲 器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作 输入 P1 口被外部下拉为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接收 P P2 2 口口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可 接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电 阻拉高 且作为输入 并因此作为输入时 P2 口的管脚被外部拉低 将输 出电流 这是由于内部上拉的缘故 P2 口当用于外部程序存储器或 16 位 地址外部数据存储器进行存取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八位地址数据存储器进行读写时 6 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八 位地址信号和控制信号 P P3 3 口口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作 输入 作为输入 由于外部下拉为低电平 P3 口将输出电流 ILL 这是 由于上拉的缘故 P3 口也可作为 AT89C51 的一些特殊功能口 如下表所示 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 记时器 0 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 表 1 1 P3 口作为 AT89C51 的一些特殊功能口 R RS ST T 复位输入 当振荡器复位器件时 要保持RST 脚两个机器周期的 高电平时间 A AL LE E P PR RO OG G 当访问外部存储器时 地址锁存允许的输出电平用于锁存地 址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的1 6 因 7 此它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每当用作 外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起 作用 另外 该引脚被略微拉高 如果微处理器在外部执行状态ALE 禁止 置位无效 P PS SE EN N 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 E EA A V VP PP P 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式1 时 EA 将内部锁 定为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在FLASH 编程 期间 此引脚也用于施加 12V 编程电源 VPP X XT TA AL L1 1 反向振荡放大器的输入及内部时钟工作电路的输入 X XT TA AL L2 2 来自反向振荡器的输出 振振荡荡器器特特性性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出 该反向放大器可以配 置为片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器 件 XTAL2 应不接 有余输入至内部时钟信号要通过一个二分频触发器 因 此对外部时钟信号的脉宽无任何要求 但必须保证脉冲的高低电平要求的宽 度 8 2 32 3 实时时钟电路实时时钟电路 DS1302DS1302 工作原理工作原理 2 3 1 DS1302 的结构及工作原理 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功 能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突 发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的 用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背电源双电源引脚 同时提供了对后背电源进行涓细 电流充电的能力 2 3 2 引脚功能及结构 图 3 DS1302 芯片 图示表出 DS1302 的引脚排列 其中 Vcc1为后备电源 VCC2为主电源 在主电 源关闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1或 Vcc2两者中的较 大者供电 当 Vcc2大于 Vcc1 0 2V 时 Vcc2给 DS1302 供电 当 Vcc2小于 Vcc1时 DS1302 由 Vcc1供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片 选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种 功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其次 9 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电平时 所有的数 据传送被初始化 允许对 DS1302 进行操作 如果在传送过程中 RST 置为低电平 则会终止此次数据传送 I O 引脚变为高阻态 上电运行时 在 Vcc 2 5V 之前 RST 必须保持低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入输出端 双向 SCLK 始终是输入端 2 3 3 DS1302 的寄存器 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器及与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写 除充电寄存器外的所有寄存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是单个 RAM 单元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制 字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 寄存器 此方式下可一次性读写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 10 2 42 4 MAX7219MAX7219 工作原理简介工作原理简介 MAX7219 是 MAXIM 公司生产的串行输入 输出共阴极数码管显示驱动芯片 一片 MAX7219 可驱动 8 个 7 段 包括小数点共 8 段 数字 LED LED 条线图形显 示器 或 64 个分立的 LED 发光二级管 该芯片具有 10MHz 传输率的三线串行接 口可与任何微处理器相连 只需一个外接电阻即可设置所有 LED 的段电流 它的操作很简单 MCU 只需通过模拟 SPI 三线接口就可以将相关的指令写入 MAX7219 的内部指令和数据寄存器 同时它还允许用户选择多种译码方式和译 码位 此外它还支持多片 7219 串联方式 这样 MCU 就可以通过 3 根线 即串行 数据线 串行时钟线和芯片选通线 控制更多的数码管显示 图 4 DS1302 芯片 MAX7219 的外部引脚分配 11 2 4 1 引脚分配及功能 图 5 MAX7219 的内部引脚分配 各引脚的功能为 DIN 串行数据输入端 DOUT 串行数据输出端 用于级连扩展 LOAD 装载数据输入 CLK 串行时钟输入 DIG0 DIG7 8 位 LED 位选线 从共阴极 LED 中吸入电流 SEG A SEG G DP7 段驱动和小数点驱动 ISET 通过一个 10k 电阻和 Vcc 相连 设置段电流 12 2 4 2 寄存器介绍 MAX7219 内部的寄存器如图所示 主要有 译码控制寄存器 亮度控制寄 存器 扫描界限寄存器 关断模式寄存器 测试控制寄存器 编程时只有正确 操作这些寄存器 MAX7219 才可工作 图 6 MAX7219 内部的相关寄存器 分别介绍如下 译码控制寄存器 X9H 如图所示 MAX7219 有两种译码方式 B 译码方式和不译码方式 当选择不译码 时 8 个数据为分别一一对应 7 个段和小数点位 B 译码方式是 BCD 译码 直接 送数据就可以显示 实际应用中可以按位设置选择 B 译码或是不译码方式 13 图 7 MAX7219 的译码控制寄存器 扫描界限寄存器 XBH 如图所示 此寄存器用于设置显示的 LED 的个数 1 8 比如当设置为 0 xX4 时 LED 0 5 显示 图 8 MAX7219 的扫描界限控制寄存器 亮度控制寄存器 XAH 共有 16 级可选择 用于设置 LED 的显示亮度 从 0 xX0 0 xXF 关断模式寄存器 XCH 共有两种模式选择 一是关断状态 最低位 D0 0 一是正常工作状态 D0 1 14 2 52 5 数码管介绍数码管介绍 2 5 1 数码管的分类 数码管按段数分为七段数码管和八段数码管 八段数码管比七段数码管多 一个发光二极管单元 多一个小数点显示 按能显示多少个 8 可分为1位 2位 4位等等数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极 数码管 共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极 COM 的数码管 共阳极数码管在应用时应将公共极COM接到 5V 当某一字段发 光二极管的阴极为低电平时 相应字段就点亮 当某一字段的阴极为高电平时 相应字段就不亮 共阴极数码管是指将所有发光二极管的阴极接到一起形成公 共阴极 COM 的数码管 共阴极数码管在应用时应将公共极COM接到地线GND上 当某一字段发光二极管的阳极为高电平时 相应字段就点亮 当某一字段的阳 极为低电平时 相应字段就不亮 1 数码管驱动方式的分类 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示 出我们要的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态 式两类 2 静态显示驱动 静态驱动也称直流驱动 静态驱动是指每个数码管的每一个段码都由一个 单片机的I O端口进行驱动 或者使用如BCD码二 十进制译码器译码进行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是占用I O端口多 如驱动5个 数码管静态显示则需要5 8 40根I O端口来驱动 要知道一个89S51单片机可 用的I O端口才32个呢 实际应用时必须增加译码驱动器进行驱动 增加了 硬件电路的复杂性 15 3 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一 动态 驱动是将所有数码管的8个显示笔划 a b c d e f g dp 的同名端连在一起 另 外为每个数码管的公共极COM增加位选通控制电各自独立的I O线控制 当单片 机输出字形码时 所有数码管都接收到相同的字形码 但究竟是那个数码管会 显示出字形 取决于单片机对位选通COM端电路的控制 所以我们只要将需要显 示的数码管的选通控制打开 该位就显示出字形 没有选通的数码管就不会亮 通过分时轮流控制各个数码管的COM端 就使各个数码管轮流受控显示 这就是 动态驱动 在轮流显示过程中 每位数码管的点亮时间为1 2ms 由于人的视 觉暂留现象及发光二极管的余辉效应 尽管实际上各位数码管并非同时点亮 但只要扫描的速度足够快 给人的印象就是一组稳定的显示数据 不会有闪烁 感 动态显示的效果和静态显示是一样的 能够节省大量的I O端口 而且功耗 更低 2 5 2 数码管的应用 数码管是一类显示屏 通过对其不同的管脚输入相对的电流会使其发亮从而 显示出数字 可以显示 时间 日期 温度等所有可以用数字代替的参数 由于它的价格便宜使用简单 所以在电器特别是家电领域应用极为广泛 如 空调 热水器 冰箱等等 绝大多数热水器用的都是数码管其他家电也用 液晶屏与荧光屏 2 5 6 数码管使用的电流与电压 电流 静态时 推荐使用10 15mA 动态时 16 1动态扫描时 平均电流为 4 5mA 峰值电流50 60mA 16 电压 当选择红色时 使用1 9V 当选择绿色时 使用2 1V 2 62 6 电子时钟电子时钟系统设计流程系统设计流程 Protel DXP 与与 Proteus 电电路路设设计计 源源程程序序设设计计 生生成成目目标标代代码码 基基于于Proteus仿仿真真 图 9 基于 Proteus 的单片机系统设计流程 17 3 3 硬件电路设计硬件电路设计 3 13 1 电路原理图设计电路原理图设计 图 10 Protel DXP 设计的电子钟电路原理图 主要元器件功能介绍 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压 高性能 CMOS8 位微处理器 俗称单片机 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有调时功能 时钟操作可通过 AM PM 指示决定采用 24 或 12 小时格式 MAX7219 是 MAXIM 公司生产的串行输入 输出共阴极数码管显示驱动芯片 采用三线制串行接口技术进行数据传送 可直接与单片机连接 用户能方便地 18 修改内部参数实现多位 LED 数码管显示 内含有硬件动态扫描显示控制 每块 芯片可驱动 8 个 LED 数码管 3 23 2 ProteusProteus 电路图设计电路图设计 运行 Proteus 的 ISIS 后出现程序主窗口界面 鼠标左键单击窗口左侧的 元器件工具栏的 component 按钮 接着再点击窗口左侧的元器件选择区的 Pick Divices 按钮 弹出的 Pick Devices 窗口 再在 Categ 栏里点击 MicroprocessorICs 项后 在 Results 栏里会出现各种类型的 CPU 器件 找到 AT89C51 后双击 AT89C51 就被添加到当前窗口左侧的元器件列表区了 用同样的方法依次把 DS130 MAX7219 数码管 晶振以及多个电阻 电容 也添加到器件列表区里 然后再依次点击列表区里的器件 单击左键把他们放到绘图区 右键选中 元件 并编辑其属性 合理布局后 进行连线 连线时当鼠标的指针靠近一个 对象的引脚时 跟着鼠标的指针 r ICs 就会出现一个 提示符号 点击鼠 标左键即可画线了 需要拐弯时点击一下即可 在终点再点击确认一下就画出 了一段导线 所有导线画完后 点击工具栏的 Inter sheeTerminal 按钮 添 加上电源和接地符号 原理图的绘制就完成了 19 图 11 Proteus 中设计的电子时钟系统原理图 4 4 软件设计软件设计 4 14 1 程序流程图设计程序流程图设计 20 MAX7219初始化 DS1302初始化 从DS1302读取时间 时间送MAX7219显示 开始 图 12 系统程序流程图 4 24 2 源程序设计源程序设计 以下为源程序 include AT89X51 H include delay h 21 include max7219 c include music c define uchar unsigned char define uint unsigned int idata sbit ADD P1 1 sbit SUB P1 0 sbit ACC0 ACC 0 sbit ACC7 ACC 7 void showDay void 显示时间 void showData void 显示日期 void showDishi void 显示定时 void int 0 void 中断 0 void int 1 void 中断 1 void flash max7219 unsigned char n 闪一个位 max7219 实时时钟模块 时钟芯片型号 DS1302 sbit T CLK P2 3 实时时钟时钟线引脚 sbit T IO P2 4 实时时钟数据线引脚 22 sbit T RST P2 5 实时时钟复位线引脚 void v RTInputByte uchar ucDa 往 DS1302 写入 1Byte 数据 uchar uc RTOutputByte void 从 DS1302 读取 1Byte 数据 void v W1302 uchar ucAddr uchar ucDa 往 DS1302 写入数据 uchar uc R1302 uchar ucAddr 读取 DS1302 某地址的数据 void v BurstW1302T uchar pSecDa 往 DS1302 写入时钟数据 多字节 方式 void v BurstR1302T uchar pSecDa 读取 DS1302 时钟数据 void v BurstW1302R uchar pReDa 往 DS1302 寄存器数写入数据 多字 节方式 void v BurstR1302R uchar pReDa 读取 DS1302 寄存器数据 void v Set1302 uchar pSecDa 设置初始时间 输入 pSecDa 初始时 间地址 初始时间格式为 秒 分 时 日 月 星期 年 void v Get1302 uchar ucCurtime 读取 DS1302 当前时间 uchar showTime 8 0 0 10 0 0 10 0 0 显示的时间 全局变量 uchar setTime 2 0 0 定时的设定 uchar time 7 0 0 x59 0 x19 0 x24 0 x7 0 x01 0 x08 秒 分 时 日 月 星 期 年 23 uchar Tmod 7 此时的调节模式 void main delay ms 200 sound initMAX7219 初始化 max7219 cls 清屏 max7219 v Get1302 v Set1302 EX0 1 EX1 1 IT1 1 下降沿触发 IT0 1 EA 1 开中断 v Get1302 showDay int 1 int 0 while 1 v Get1302 24 showDay if setTime 0 time 2 显示时间 void showDay void 将数据转化为显示格式 showTime 7 time 0 个位 showTime 6 time 0 4 十位 showTime 4 time 1 showTime 3 time 1 4 showTime 1 time 2 showTime 0 time 2 4 showTime 2 showTime 5 10 disp 88 显示日期 void showData void showTime 7 time 3 showTime 6 time 3 4 showTime 4 time 4 25 showTime 3 time 4 4 showTime 1 time 6 showTime 0 time 6 4 showTime 2 showTime 5 10 disp 88 显示定时 void showDishi void showTime 1 setTime 0 showTime 0 setTime 0 4 showTime 4 setTime 1 showTime 3 setTime 1 4 showTime 6 12 showTime 7 13 showTime 2 showTime 5 10 disp 88 4 34 3 KeilC51KeilC51 进行程序调试进行程序调试 把编写完的源程序放在 KEIL 软件中 先自行检查下程序是否有误 更改有误 的部分 再创建工程进行程序一个一个地调试 把调试结果显示有误的部分找 出 检查错误的原因然后再进行更改 更改后再进行调试 再找出错误进行更 改 依次循环进行 至到程序调试成功为止 26 图 13 电子时钟程序编辑编译 27 图 14 电子时钟程序链接 28 5 5 系统调试与仿真系统调试与仿真 5 15 1 ProteusProteus 中中 HexHex 文件选择文件选择 系统仿真分析电路原理图在 ISIS 里设计完成 并将系统软件编译成 Hex 文件 再进行电子时钟的系统虚拟仿真 1 在 ISIS 的原理图中 右键单击 AT89C51 将其选中 然后单击左键打 开 AT89C51 的 Edit Component 对话框 如下图所示 图图 1515 EditEdit ComponentComponent 对话框对话框 2 选择相应的 Hex 文件 再在 Proteus ISIS 编辑窗口的 File 菜单中选 择 Save Design 选项 保存设计 生成 DSN 文件 29 5 2 Proteus 进行电子钟系统仿真 在 Proteus ISIS 的 Debug 菜单中选择 Execute 运行程序 系统仿真结果 如下图所示 实现功能 当进入调整功能时 按第一个键 K1 进行减运算 按第二个键 K2 进行加运 算 按下第三个键 K3 实现日期 时间调整及 定时功能 等数字闪烁后 按一 二键进行加减 从而可以进行具体日期时间调整 当定时设定后 到预定时间后 系统通过 C51 音乐程序演唱歌曲 八月桂花 按下第四个键 K4 可以进行时间 日期切换 8 位 LED 数码管将显示时间或 日期 采用 24 小时制 时间显示格式为 时 分 秒 日期显示格式为 日 月 年 具有实时显示当前计算机系统时间和日期的功能 30 图 16 Proteus 系统仿真结果 结束语结束语 本文的电子钟系统是以单片机 AT89C51 为核心 时钟芯片 DS1302 数 码管显示驱动芯片 MAX7219 等元器件组成 具体介绍应用 Protel DXP 进行电路 原理图设计 Keil C51 软件调试程序以及 Proteus 的 ISIS 软件进行单片机系 统的电子钟设计与仿真 实现了硬件软化的目的 31 参考文献参考文献 1 代启化 基于 Proteus 的电路设计与仿真 J 现代电子技术 2006 第 19 期 2 曹洪奎 马莹莹 基于 Proteus 单片机系统设计与仿真 J 辽宁工学院学报 07 年 04 期 3 侯玉宝 基于 Proteus 的 51 系列单片机设计与仿真 M 电子工业出版社 2008 270 288 4 蔡希彪 曹洪奎 单片机电子时钟系统的设计与仿真 J 中国科技信息 2007 年 04 期 5 方怡冰 单片机课程的教学与实验改革 J 电气电子教学学报 2006 第 3 期 6 刘文秀 单片机应用系统仿真的研究 J 现代电子技术 2005 第 286 期 7 张友德 单片微型机原理 应用与实验 M 上海 复旦大学出版社 2003 225 256 8 李光飞 单片机设计实例指导 M 北京 北京航空航天大学出版社 2004 5 96 100 9 胡汉才 单片机原理及其接口技术 M 北京 清华大学出版社 1996 89 110 10 杨立民 单片机技术及应用 M 西安 西安电子科技大学出版社 32 谢谢 辞辞 时光如梭 转眼四年的求学之路已临近尾声 心中感慨万千 在此之际我要 向这四年来在生活和学习等诸多方面给予我无私帮助 关心的老师 同学和亲 人们表示我崇高的敬意和诚挚的感激之情 在本文结束之际 我要感谢 老师 她在论文选题 结构 内容等方面提 供了很多宝贵的意见 并在百忙之中对论文进行了多次审阅 修改 没有她的 帮助与监督 论文不可能如期顺利完成 在四年的学习期间 老师对我的学习 和工作做了悉心指导和耐心帮助 她开朗的作风和平易近人的态度为我今后的 工作 生活树立了学习的榜样 最后特别感谢我的父母 衷心感谢他们对我无微不至的关心和为我学习和生 活做出的无私奉献 祝福所有给我帮助的人 万事如意 33 宝鸡文理学院本科毕业论文 设计 任务书 34 课题条件课题条件 1 在这几年的自动化专业学习中 通过了系统的专业学习 实践 知识构造完 整 完全有能力对该领域进行研究 2 学校图书馆和院资料室丰富的藏书和期刊资料为本课题的研究提供了坚实的 基础 学校购买的电子期刊上的大量学术论文文献是本课题完成的保证 3 在得到李雅丽老师的亲切指导和支持后 经过前期对一些有助于课题研究的 资料的大量搜集 并且结合自己的知识和兴趣 在条件相对成熟的前提下决定来 开发此设计 毕业论文 设计 主要内容毕业论文 设计 主要内容 1 Proteus 软件在单片机应用研发中有着非常重要的作用 可节约开发时间和成 本 提高开发效率 而且有很大的灵活性和可扩展性 2 在熟悉软件应用的基础上 以数字时钟系统开发设计为例 参阅相关资料确 定系统功能及设计方案 并对系统进行硬件和软件设计 3 在 Proteus 软件中对系统进行调试 仿真 注 课题性质分为注 课题性质分为 理论型理论型 实践应用型 下同实践应用型 下同 35 注 以上各项内容由学生填写 指导教师审核后签署意见 主要参考文献 主要参考文献 1 代启化 基于 Proteus 的电路设计与仿真 J 现代电子技术 2006 第 19 期 2 曹洪奎 马莹莹 基于 Proteus 单片机系统设计与仿真 J 辽宁工学院学报 07 年 04 期 3 侯玉宝 基于 Proteus 的 51 系列单片机设计与仿真 M 电子工业出版社 2008 270 288 4 蔡希彪 曹洪奎 单片机电子时钟系统的设计与仿真 J 中国科技信息 2007 年 04 期 5 方怡冰 单片机课程的教学与实验改革 J 电气电子教学学报 2006
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浦发银行福州市马尾区2025秋招笔试创新题型专练及答案
- 兴业银行南通市崇川区2025秋招笔试综合模拟题库及答案
- 广发银行上海市松江区2025秋招小语种岗笔试题及答案
- 民生银行上海市青浦区2025秋招笔试专业知识题专练及答案
- 中信银行宝鸡市渭滨区2025秋招笔试英语题专练及答案
- 中信银行苏州市吴中区2025秋招笔试英文行测高频题含答案
- 平安银行烟台市龙口市2025秋招笔试综合模拟题库及答案
- 平安银行苏州市吴中区2025秋招笔试行测高频题及答案
- 浦发银行沧州市运河区2025秋招结构化面试经典题及参考答案
- 3.2 算法描述与设计-物资购买 教学设计 2023-2024学年粤教版(2019)高中信息技术必修1
- 电表抄表记录
- 水的组成发现史
- 社区卫生服务机构信息公开目录(向社会公开、向服务人群公开)
- 消防控制室值班记录1
- 梗阻性黄疸患者护理查房
- 双绞线链路测试报告
- GB∕T 34662-2017 电气设备 可接触热表面的温度指南
- 医院窗口服务礼仪培训PPT课件(最新)
- 医疗电子票据管理系统建设方案
- 智慧教育云平台解决方案
- 干货最全的主族元素发现史(每族一篇,成系列,共8篇)
评论
0/150
提交评论