单片机在定时闹铃中的应用.doc_第1页
单片机在定时闹铃中的应用.doc_第2页
单片机在定时闹铃中的应用.doc_第3页
单片机在定时闹铃中的应用.doc_第4页
单片机在定时闹铃中的应用.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 设计任务书 设计题目 设计题目 单片机在定时闹铃中的应用单片机在定时闹铃中的应用 设计要求 设计要求 使用 4 位七段显示器来显示现在的时间 显示格式为 时时分分 由 LED 闪动来做秒计数表示 具有 4 个按键来做功能设置 可以设置现在的时间及显示闹铃设置时间 一旦时间到则发出一阵声响 同时继电器启动 可以扩充控制家电开启或关闭 程序执行后工作指示灯 LED 闪动 表示程序开始执行 七段显示器显示 0000 按 下操作键 K1 K4 动作如下 操作键 K1 设置现在的时间 操作键 K2 显示闹铃设置时间 操作键 K3 设置闹铃时间 操作键 K4 闹铃 ON OFF 设置 设为 ON 时连续 3 次发出哔的一声 设为 OFF 时发出哔一声 设置现在的时间或是闹铃时间设置如下 操作键 K1 调整时 操作键 K2 调整分 操作键 K3 设置完成 在本设计中使用一般的七段显示器扫描控制显示数据 除了具有显示现在时间 外 我们也可以自行扩充其要求如下 增加码表计数 闹铃功能时间到了则产生音乐声 增加计时倒数的功能 增加多组定时器功能 II 设计进度要求设计进度要求 第一周 根据设计要求查找相关资料 第二周 硬件的设计 第三 五周 软件的设计 第六周 综合调试 第七周 撰写毕业论文 第八周 打印毕业论文 毕业答辩 指导教师 签名 指导教师 签名 III 摘 要 本设计是利用 8051 单片机结合七段显示器设计的简易的定时闹铃 可以放在计 算机教室或是实验室中使用 由于用七段显示器显示数据 在夜晚或黑暗的场合中 也可以使用 可以设置现在的时间 若时间到则发出一阵声响 并可以启动继电器 进一步可以扩充控制家电开关 本设计充分发挥 8051 单片机高速 多输入输出 功能强大以及价格低廉的优点 本设计设计的定时闹铃易于扩展 使用范围广泛 同时在不升高成本的情况下尽可 能满足用户要求 21 世纪是通信 讯息 电力 材料 电子 能源以及控制技术大 发展并相互交叉的时代 自从微电子技术发展以来 单片机微型计算器因其体积小 价格低 性能灵活 开发方便的独特优势 在机电一体化产品的开发和控制中得到 了最广泛的应有 而且越来越向纵深发展 从简单的机电一体化产品深入到数控系 统 柔性化 智能化系统以及机器人系统等 近年来随着科技的飞速发展 单片机的应用正在不断地走向深入 同时带动传 统控制检测日新月益更新 在实时检测和自动控制的单片机应用系统中 单片机往 往是作为一个核心部件来使用 仅单片机方面知识是不够的 还应根据具体硬件结 构 以及针对具体应用对象特点的软件结合 以作完善 本题 单片机在定时闹铃中的应用 就是应用单片机这一特点而进行开发 程 序简单 功能强大 所要求的硬件设备比较少及经济实用 本设计以 MCS 51 单片机为控制核心 充分利用其功能 实现了定时闹铃的自 动控制 而且控制程序有很强的适应能力实测数据满足设计任务书基本要求和发挥 部分的主要技术指标要求 关键词 单片机 定时 闹铃 显示器 IV 目目 录录 摘 要 III 1 概论 1 1 1 绪论 1 1 2 单片机简介 1 2 设计思路 7 2 1 控制电路的设计 7 2 2 8051 单片机的结构组成与设计应用 10 2 3 8051 单片机引脚的选择 12 2 4 LED 的选择与设计 14 3 系统硬件设计与系统软件设计 17 3 1 系统硬件设计 17 3 2 系统软件设计 17 4 调试过程 20 4 1 硬件调试 20 4 2 软件调试 20 4 3 KeiL 调试 21 4 4 试验箱调试 21 致 谢 22 参考文献 23 附 录 A 24 1 1 概 论 1 11 1 绪绪 论论 近年来 计算机技术迅速发展 计算机在工业 农业 国防 科研及日常生活 的各个领域均发挥着极其重要的作用 成为各国工业发展水平的重要标志之一 自从世界上公认的第一台电子计算机问世以来 计算机的发展日新月异 短短 的几十年间 以有电子管数字计算机发展到今天的超大规模集成电路计算机 运算 速度由每秒 5000 次提高到今天的每秒上白亿次 近年来 计算机一方面向着高速 智能化的超级巨型机方向发展 另一方面向着微型机的方向发展 在微机的大家族中 单片微型计算机 以下简称单片机 异军突起 发展迅速 从美国仙童 Fairchild 公司 1974 年生产出第一块单片机 F8 开始 在短短的 几十年中 单片机如雨后春笋一般 大量涌现出来 GI 公司 Rockwell 公司 Intel 公司 Zilong 公司 Motorola 公司 NEC 公司等世界上几大计算机公司都纷纷 推出自己的单片机系列 目前 已经出现了 4 位 8 位和 16 位的单片机 甚至 32 位的超大规模集成电路单片机 如 T414 也以面试 同时性能也在不断提高 如 Intel 公司的 8096 其数据总线为 16 位 ROM 为 8K 字节 RAM 有 232 位字节 中断 源 8 级 时钟频率为 12MHz 可进行加 减 乘 除运算 具有 8 个模拟通道 10 位 A D 变换 全双工异步通信接口 5 个 8 位并行接口和 4 个 16 位可编程定时器 据统计 90 年代世界每 6 人就有一片单片机 美国及西欧已达到人均 4 片 目前单 片机已经成为工控领域 军事领域及日常生活中最为广泛应用的计算机 1 21 2 单片机简介单片机简介 单片微型计算机 Single Chip Microcomputer 简称单片机 它在一块芯片 上集成了中央处理器 CPU 只读存储器 ROM 输入 输出接口 可编程定时器 计数器等 有的甚至包含 A D 转换器 总而言之 一块单片机芯片 就相当于一台 计算机 1 单片机的特点 集成度高 功能强 2 微型计算机通常有中央处理器 CPU 存储器 RAM ROM 以及 I O 接口组成 其各部分分别集成在不同的芯片上 例如 大家熟悉 Z80 微型计算机就是由 Z80 CPU 存储器 RAM ROM PIO CTC 等芯片组成的 其原理如图 1 1 所示 数据总线 地址总线 控制总线 图1 1 微机结构 图 1 1 Z80 型微机结构 系统时钟 并行口 串行口 定时 计数器 地 电源 图1 2 典型单片机结构 图 1 2 典型单片机结构 和微型计算机进行比较 单片机不仅体积大大减小 而且功能大为增强 MCS 51 系列单片机内的定时 计数器为 16 位 而 Z80 微型计算机只有 8 位 MCS 51 系列 单片机中不但有 4 个 I O 接口 而且还有串行接口 且时钟频率可达 12MHz 结构合理 目前单片机大多采用 Harvard 结构 这是数据存储器与程序存储器相互独立的 一种结构 而在许多微型计算机中 如 Z80 Intel8085 M8000 等 中 大都采用两 类存储器合二为一 及统一编址 的方式 单片机采用上述结构主要有以下两点好处 3 a 存储容量大 例如 采用 16 位地址总线锝位单片机可寻址外部 64KBROM 包 括内部 ROM 此外还有内部 RAM 通常为 128 字节 和内部 ROM 一般为 2 4KB 正因为如此 使用单片机不仅可以进行控制 而且能够进行数据处理 单片机不仅 设有监控程序 还可同时汇编 反汇编 具有高级语言以及各种函数库 子程序及 图表 因此单片机的功能大为增强 用户使用起来十分方便 b 速度快 单片机由于主要用于工业控制方面 一般都需要较大的程序存储器 用以固化已调好的控制程序 而数据存储器的容量相对较小 主要用来存放少量的 随机数据 小容量随机存储器直接装在单片机内部 可使数据船送速度快 抗干扰性强 由于单片机的各种功能部件都集中在一个芯片上 特别是存储器也集成在芯片 内部 部线短 数据大都在芯片内部传送 不易受到外部干扰 增强了抗干扰能力 使系统运行更可靠 指令丰富 单片机一般都有传送指令逻辑运算指令 转移指令 加 减运算指令等 有些 单片机还具有乘法及除法运算指令 特别是位操作指令十分丰富 例如在 MCS 51 系 列单片机中 专门设有布尔处理器 并且有一个专用的处理布尔变量的指令集 指 令集中包括布尔变量的传送 逻辑运算 控制转移 置位等指令 因而单片机能在 逻辑控制 开关变量控制以及顺序控制中得以广泛应用 2 单片机的组成及工作过程 单片机是由中央处理器 CPU 和适当容量的存储器 输入 输出接口电路三大 基本部分组成 它通过接口电路再与输入 输出外部设备连接 以下简单叙述各部件的作用 中央处理器 CPU CPU 是整个单片机系统的核心 它是有算术逻辑运算单元和控制器组成的 它 的功能是进行数据处理 并且控制数据和指令在单片机中的运行 即控制单片机根 据给定的要求进行操作 存储器 存储器是单片机存放程序和数据的部件 它是有许多存储信息的单元组成 存 储单元越多 存储器容量越大 可存放的信息量就越多 4 输入 输出借口电路 I O 接口 接口电路 CPU 和外部设备之间不可缺少的连接纽带 人们要控制单片机的运行 可通过键盘送入指令 也可用开关送入信号 键盘和开关都是输入设备 单片机要 运行的结果输出 可通过显示器 打印机告诉人们 也可通过接口电路输出信号 操作各种电器设备进行动作 显示器 打印机和电器设备都是输出设备 因为外部设备与 CPU 之间的逻辑电平 速度 时序 驱动能力的有很大的差别 所以必须通过 I O 接口电路解决它们之间的匹配问题 单片机的工作过程 单片机在工作前 首先必须在程序存储器内装入程序 单片机开始工作后 即 按地址先从存储器中取出指令 然后把指令译码 以确定该指令执行的是什么操作 和操作数的存放地址 再根据这 3 个地址取操作数 接着 CPU 对操作数进行操作 操作结果送入存储器或经接口电路送入显示器 打印机等外部设备 3 单片机的应用 1 工业过程控制中的应用 由于单片机的 I O 接口线多 位操作指令丰富 逻辑操作功能强 因此 特别 适用于工业过程控制 它既可以作为主机控制 也可作为分布式控制系统的前端机 在作为主机使用的系统中 单片机为核心控制器件 用来完成模拟量和开关量的采 集 处理和控制计算 包括逻辑运算 然后输出控制信号 2 生活中的应用 由于单片机价格低廉 体积小 逻辑判断及控制功能强 因此广泛地应用于人 类生活的各个方面 如 洗衣机 电冰箱 电子玩具及电梯控制等 3 计算机网络及通信技术中的应用 单片机集成了通信接口 因而使其在计算机网络及通信设备中得以广泛应用 例如 Intel 公司的 8044 它由 8051 单片机及 SDLC 通信接口组合而成 用性能高的 串行接口单元 SIU 代替传统的 UART 其传送距离可达 1200m 传送速率为 2 4Mbit s 4 单片机的发展概况 自从 1974 年 12 月美国仙童 Fairchild 公司第一个推出 8 位单片机 F8 以来 单片机以惊人的速度发展 从 4 位机 8 位机发展到 16 位机 32 位机 集成度越来 5 越高 功能越来越强 应用范围越来越广 到目前为止 单片机的发展主要分为以下四个阶段 第一阶段 4 位单片机 这种单片机的特点是价格便宜 控制功能强 片内含 有多中 I O 接口 如并行 I O 接口 串行 I O 接口 定时 计数器接口 中断功能接 口等 根据不同的用途 还配有许多专用接口 如打印机接口 键盘及显示器接口 PLA 可编程逻辑阵列 译码输出接口 有些甚至还包括 A D D A 转换 PLL 锁相 环 声音合成等电路 丰富的 I O 功能大大地增强了 4 位单片机的控制功能 从而 使外部接口电路极为简单 第二阶段 低 中档 8 位机 1974 1978 年 这种 8 位机一般不带有 I O 接口 寻址范围通常为 4KB 它是 8 位机的早期产品 如 Mostek 公司的 3870 Intel 公司 的 8048 等单片机即属此类 MCS 48 系列单片机是 Intel 公司 1976 年以后陆续推出的第一代 8 位单片机系 列产品 它包括基本类型 8048 8478 和 8035 强化型 高档 8049 8749 8039 和 8050 8040 简化型 低挡 8020 8021 8022 专用型 UPI 8041 8741 等 低 中档单片机目前已经逐渐被高档 8 位单片机所取代 例如 MCS 51 系列高 档 8 位机所取代 第三阶段 高档 8 位机阶段 1978 1982 年 这一类单片机常有串行 I O 接 口 有多中断处理 定时 计数器为 16 位 片内的 RAM 和 ROM 的容量相对增大 且 寻址范围可达 64KB 有的片内还带有 A D 转换接口 这类单片机有 Intel 公司的 MCS 51 Motorla 公司的 6801 而后 Zilog 公司的 Z 等 由于这类单片机应用领域较 广 其结构和性能还在不断地改进和发展 第四阶段 16 位单片机和超 8 位单片机 1982 年至今 此阶段的主要特征是 一方面不断完善高档 8 位机 改善其结构 以满足不同用户的需要 另一方面发展 16 位单片机及专用单片机 16 位单片机除了 CPU 为 16 位外 片内 RAM 和 ROM 的容 量也进一步增大 片内 RAM 为 232 字节 ROM 为 8KB 片内带有高速输入输出部件 多通道 10 位 A D 转换部件 中断处理级为 8 级 其实时处理能力更强 近年来 32 位单片机已进入实用阶段 但还未引入国内市场 单片机的发展趋势将是 向着大容量 高性能化 小容量 低价格化和外围内 装化等几个方面发展 6 大容量化 片内存储器大容量化 以往单片机的 ROM 为 1 4KB RAM 为 64 128 字节 因此在某些复杂的应用上 存储器容量不够 不得不外接扩充 为 了适应这种领域的要求 运用新的工艺 使片内存储器大容量化 目前 单片机的 ROM 一般可达 4 8KB RAM 为 256 字节 有的单片机内 ROM 可达 12KB 今后 随着 工艺技术的不断发展 片内存储器容量进一步扩大 单片机的高性能化 主要是指进一步改进 CPU 的性能 加快指令运算速度和提 高系统控制的可靠性 并加强了位处理功能 中断和定时控制功能 采用流水结构 指令以队列形式出现在 CPU 中 从而有很高的运算速度 有的单片机基本采用了多 流水线结构 这类单片机的运算速度要比标准的单片机高出 10 倍以上 小容量 低价格化 与上述相反 小容量 低价格化的 4 位 8 位单片机是发 展的动向之一 这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单 片化 外围电路内装化 这也是单片机的发展的主要动向 随着集成度的不断提高 有可能把众多的外围功能器件集成在片内 除了一般必须具有的 CPU ROM RAM 定时 计数器等外 片内集成的部件还有模 数 数 模转换器 DMA 控制器 声音发 生器 监视定时器 液晶显示驱动器 彩色电视机和录象机用的锁相电路等 增强 I O 口功能 为了减少外部驱动芯片 进一步增加单片机并行口的驱动能 力 现在有的单片机可直接输出大电流和高电压 以便直接驱动显示器 单片机广泛地应用于各种仪器仪表中 使仪器仪表智能化 提高测试的自动化 程度和精度 简化其硬件结构 提高其性能价格比 此设计是利用 8051 单片机结合 七段显示器设计的简易的定时闹铃 也正是利用其这一特点 也进一步说明了单片 机应用的广泛 优化了单片机在定时闹铃中的应用 7 2 设计思路 2 12 1 控制电路的设计控制电路的设计 定时闹钟的控制电路分为以下几部分 单片机 8051 四合一共阴极七段显示器 按键控制 压力喇叭 继电器 完整的控制电路如图 2 1 和图 2 2 所示 此电路已内置在 IO51 控制板上 我们 可以直接在板上验证控制功能 也可以采用其他方法 这里就不作具体介绍了 共 阴极七段显示器的亮度控制可以由提升电阻来调整 控制程序中延迟时间长短 可 以得到不同的显示效果 控制继电器的闭合或断开 ON OFF 可以直接控制家电开 关 继电器接点说明如下 NC Normal Close 常闭点 以 COM 为共同点 NC 与 COM 在平时是呈导通 的 状态 COM Common 共通点 输出控制接点的共同接点 NO Normal Open 常开点 NO 与 COM 则呈开路状态 拿到继电器时可以三用电表量的短路断路功能测量其接点 图 2 3 为其控制回 路图 继电器所扮演的角色是一组可以电气控制的开关 因此是串联到电器的 AC 110V 电源回路中 其功能可以取代电器上的开关 在使用上 IO51 控制板上的继电 器线圈驱动电压为直流 5 V 做电器上的开关时 其流过的电流负载请勿过大 约 2 A 内较保险 以免烧毁继电器或是 8051 相关控制电路 内部总线接点说明 总线是用于传送信息的公共途径 总线可分为数据总线 地址总线 控制总线 单片机内的 CPU 存储器 I O 接口等单元部件都是通过总线连接到一起的 采用总 线结构可以减少信息传输线的根数 提高系统可靠性 增强系统灵活性 8 中断控制系统是指 CPU 暂停正在执行的原程序转而为中断服务 执行中断服务 程序 在执行完中断服务程序后再回到原程序继续执行 中断系统是指能够处理上 述中断过程的部分电路 MCS 51 单片机设有 5 个中断源 外中断 2 个 定时 记数 中断 2 个 串行中断 2 个 二级优先级 可实现两极中断嵌套 图 2 1 控制电路 9 图 2 2 控制电路 图 2 3 继电器控制回路图 输入 输出借口电路 I O 接口 接口电路 CPU 和外部设备之间不可缺少的连接纽带 人们要控制单片机的运行 可通过键盘送入指令 也可用开关送入信号 键盘和开关都是输入设备 单片机要 运行的结果输出 可通过显示器 打印机告诉人们 也可通过接口电路输出信号 10 操作各种电器设备进行动作 显示器 打印机和电器设备都是输出设备 而本设计 中应用到的主要是显示器 通过显示器我们就可以看到此设计的显示效果和计时时 间 因为外部设备与 CPU 之间的逻辑电平 速度 时序 驱动能力的有很大的差别 所以必须通过 I O 接口电路解决它们之间的匹配问题 定时器 计数器的说明 8051 内部有 2 个 16 位可编程定时器 计数器 简称为定时器 0 T0 和定时器 1 T1 T0 和 T1 分别由两个 8 位寄存器构成 其中 T0 由 TH0 高 8 位 和 TL0 低 8 位 构成 T1 由 TH1 高 8 位 TL1 低 8 位 构成 TH0 TH1 TL1 都是 SFR 中的 特殊功能寄存器 2 22 2 80518051 单片机的结构组成与设计应用单片机的结构组成与设计应用 MCS 51 系列单片机在结构上基本相同 只是在个别模块和功能上有些区别 图 2 4 是 8051 单片机的内部结构框图 它包含了作为微型计算机所必需的基本功能 部件 各功能部件通过片内机单一总线连成一个整体 集成在一块芯片上 MCS 51 单片机是在一块芯片中集成了 CPU 存储器 包括 RAM 和 ROM 定时器 计数器和多 种功能的 I O 线等一台计算机所需要的基本功能部件 主要包括 1 个 8 位 CPU 1 个 片内振荡器及时钟电路 128 RAM 4KB ROM 2 个 16 位定时器 计数器 32 条可编 程的 I O 线和一个可编程的全双工串行口 5 个中断源 2 个中断优先级嵌套中断结 11 构 图 2 4 8051 单片机内部 结构框图 1 中央处理器 CPU CPU 是单片机内部的核心部件 是一个 8 位二进制数 的中央处理器单元 主要由运算器 控制器和寄存器阵列构成 1 运算器 运算器用来完成算术运算 逻辑运算 位变量处理和数据传送等功 能 它是 8051 内部处理各种信息的主要部件 运算器主要由算术逻辑单元 ALU 累加器 ACC 暂存寄存器 TMP1 TMP2 寄存器 B 和程序状态字寄存器 PSW 组成 a 算术逻辑单元 ALU 8051 中 ALU 由加法器和一个布尔处理器组成 主要 是实现 8 位数据的加 减 乘 除算术运算和与 或 异或 循环 求反等逻辑运 算 布尔处理器主要用来处理位操作 它是以进位标志位 C 为累加器的 可执行置 位 复位 取反 等于 1 转移 等于 0 转移 等于 1 转移且清 0 以进位标志位与其 他位寻址的位之间进行数据转送等位操作 也能使进位标志位与其他可位寻址的位 之间进行逻辑与 或操作 b 累加器 ACC 用来存放参与算术运算的一个操作数或运算的结果 在运算时 将操作熟经暂存器送至 ALU 与另一个来自暂存器的操作数在 ALU 中进行运算 运 12 算后的结果又送回累加器 A 8051 单片机在结构上是以累加器 A 为中心 大部分指 令的执行都有通过累加器 A 进行 c 暂存寄存器 TMP1 TMP2 用来存放参与算术运算的和逻辑运算的另一个操 作数 它对用户不开放 d 寄存器 B 在乘 除运算时用来存放一个操作数 也用来存放运算后的一部 分结果 不进行乘 除运算时 可以作为通用的寄存器使用 e 程序状态字寄存器 PSW PSW 是一个 8 位标志寄存器 用来存放 ALU 操作 季节感特征和处理器状态 这些特征和状态可以作为控制程序转移的条件 供程序 校验和查询 2 控制器 控制器是单片机内部各部件按一定时序协调工作的控制核心 是 分析和执行指令的部件 控制器主要由程序计数器 PC 指令寄存器 IR 指令译码器 ID 振荡和定时控制逻辑电路等构成 3 寄存器阵列 寄存器阵列是单片机内部的临时存储单元或固定用途单元 包括通用寄存器组和专用寄存器组 2 存储器 8051 单片机内部有 128B 的 RAM 数据存储器和 4KB 的掩膜式 ROM 当不够使用时 可分别扩展为 64KB 外部 RAM 存储器和 64KB 外部程序存储器 它们 的逻辑空间是分开的 并有各自的寻址方式和寻址机构 2 32 3 80518051 单片机引脚的选择单片机引脚的选择 8051 单片机内部总线是单总线结构 即数据总线和地址总线是公用的 8051 有 40 条引脚 与其他 51 系列单片机引脚是兼容的 这 40 条引脚可分为 I O 接口线 电源线 控制线 外接晶体线 4 部分 8051 单片机为双列直插式封装结构 如图 2 5 所示 1 电源线 8051 单片机的电源线有以下两种 1 Vcc 5V 电源线 2 Vss 接地线 2 外接晶体引脚 8051 单片机的外接晶体引脚有以下两种 13 图 8051封装和引脚分配图 图 2 5 封装和引脚分配图 1 XTAL1 片内振荡反相放大器的输入端和内部时钟工作的输入端 采用内部 振荡器时 它接外部石英晶体和微调电容的一个引脚 2 XTAL2 片内振荡器反相放大器的输出端 接外部石英晶体和微调电容的另 一端 采用外部振荡器时 该引脚悬空 3 控制线 8051 单片机的控制线有以下几种 1 RST 复位输入端 高电平有效 2 ALE PROG 地址锁存允许 编程线 3 PSEN 外部程序存储器的读选通线 4 EA Vpp 片外 ROM 允许访问端 编程电源端 4 I O 接口组成 32 根 I O 接口线 及功能 I O 接口 8051 单片机对外部电路进行控制或交换信息都是通过 I O 接口进行的 单片机的 I O 接口分为并行 I O 接口和串行 I O 接口 它们的结构和作用并不相同 1 并行 I O 接口 8051 有 4 个 8 位并行双向 I O 接口 P0 接口 P1 接口 P2 接口 P3 接口 每一条 I O 接口都能独立的用作输入或输出 接口为准双向接口 在用作输入线时 接口锁存器 7 必须先写入 1 故称为准双向接口 负载能力 为 4 个 LSTTL 电路 14 2 串行 I O 接口 8051 有一个全双工的可编程串行 I O 接口 实现单片机与 其他数据设备之间的串行数据传递 该串行接口的功能较强 即可作为全双工异步 通讯收发器使用 也可作为同步移位器使用 a P0接口 P0接口有 8 条接口线 P0 0 0 7 其中 P0 0为低位 P0 7为高位 它 由一个输出锁存器 两个三态缓冲器 输出驱动电路和输出控制电路组成 P0接口 是一个三态双向 I O 接口 它有两种不同的功能 用于不同的工作环境 b P1接口 P1接口有 8 条接口线 P1 0 1 7 P1接口是一个准双相接口 只作 普通的 I O 接口使用 其功能与 P0接口的第一功能相同 做输出口使用时 由于其 内部有上拉电阻 所以不需外接上拉电阻 作输入口使用时 必须先向锁存器写入 1 使场效应管 T 截止 然后才能读取数据 c P2接口 P2接口有 8 条接口线 P2 0 2 7 P2接口也是一个准双向接口 它 有两种使用功能 一种是系统不扩展外部存储器时 作为普通 I O 接口使用 其功 能和原理与 P0接口 的第一功能相同 只是作为输出口时不需外接上拉电阻 另一 种是当系统外扩存储器时 P2接口作为系统扩展的地址总线接口使用 输出高 8 位 的地址 A8 15 与 P0接口第二功能上岁数出的底 8 位地址相配合 共同访问外部程 序或数据存储器 64KB 但它只确定地址并不能像 P0接口那样还可以传送存储器 的读写数据 d P3接口 P3接口有 8 条接口线 命名为 P1 0 3 7 P3接口是一个多用途的准 双向接口 第一功能是作为普通 I O 接口使用 其功能和原理与 P1接口相同 第二 功能是作为控制和特殊功能接口使用 这时 8 条接口线所定义的功能各不相同 3 I O 接口的读写 P0 3接口都可作为普通 I O 接口来使用 当作为输入口 使用时 必须先向该接口的锁存器中写入 1 然后再从读引脚缓冲器中读入引脚 状态 这样的读入结果才正确 2 42 4 LEDLED 的选择与设计的选择与设计 LED 数码管根据 LED 的接法不同分为共阴和共阳两类 了解 LED 的这些特性 对编程是很重要的 因为不同类型的数码管 除了它们的硬件电路有差异外 编程 方法也是不同的 图 1 6 a 是共阴和共阳极数码管的内部电路图 它们的发光原理 是一样的 只是它们的电源极性不同而已 15 将多只 LED 的阴极连在一起即为共阴式 而将多只 LED 的阳极连在一起即为共 阳式 以共阴式为例 如把阴极接地 在相应段的阳极接上正电源 该段即会发光 当然 LED 的电流通常较小 一般均需在回路中接上限流电阻 假如我们将 b 和 c 段接上正电源 其它端接地或悬空 那么 b 和 c 段发光 此时 数码管显示将 显示数字 1 而将 a b d e 和 g 段都接上正电源 其它引脚悬空 此时数码管将显示 2 其它数字的显示原理与此类同 LED 的 7 段数码管利用单只 LED 组合排列成 8 字型的数码管 分别引出它们 的电极 点亮相应的点划来显示出 0 9 的数字 在这次的设计中采用的均是共阴极 的 LED 显示 当 I O 口输出为高电平的时候 对应段就被点亮 LED 数码管的结构 图如图 2 6 b 所示 a b 图 2 6 LED 分类结构图和结构图 这次设计的显示部分采用 AT89C51 单片机动态扫描完成 在多数的应用场合中 我们并不希望使用多 I O 端口的单片机 原则上是使用尽量少引脚的器件 在没有 富余端口的情况下 应通过优化设计程序和扩展电路达到预期的目的 动态扫描的 频率有一定的要求 频率太低 LED 将出现闪烁现象 如频率太高 由于每个 LED 点亮的时间太短 LED 的亮度太低 肉眼无法看清 所以一般均取几个 ms 左右为宜 这就要求在编写程序时 选通某一位 LED 使其点亮并保持一定的时间 程序上常采 16 用的是调用延时子程序 LED 显示电路 1 静态显示电路 LDE 显示器工作在静态显示时 其公共阳极 或阴极 接 VCC 或 GND 一直处 于显示有效状态 所以每一位的显示内容必须由锁存器加以锁存 显示各位相互独 立 2 动态显示电路 将所有位的段选线的同名端联在一起 由一个 8 位 I O 口控制 形成段选线的 多位复用 而各位的公共阳极或公共阴极则分别由相应的 I O 口线控制 实现各位 的分时选通 即同一时刻只有被选通位是能显示相应的字符 而其他所有位都是熄 灭的 由于人眼有视觉暂留现象 只要每位显示间隔足够短 则会造成多位同时点 亮的假象 这就需要单片机不断地对显示进行控制 CPU 需要不断地进行显示刷新 动态显示电路参见图 2 7 图 2 7 中是扩展了五位的 LED 数码管显示 用一个 74LS154 作为五个 LED 的段选输入 采用动态显示的方式连接 类似地 16 位的 LED 数码管显示也可以用这种方法来实现 图 2 7 五位 LED 数码管的动态显示 17 3 系统硬件设计与系统软件设计 3 13 1 系统硬件设计系统硬件设计 1 时钟芯片选择 选用 89C51 时钟芯片 2 单片机的选择 选用 8051 单片机 并配备 11 0592MHz 晶振 复位电路采 用上电复位 3 显示电路选择 采用软件译码动态显示 P3 0 P3 3 作数码管的位选口 P1 0 P1 6 作数码管的段选口 考虑直接用单片机 I O 口作位选时驱动功率不够 因此采用 UNL2003 作驱动 共阴极数码管显示 4 电 源 选 择 采用直流 5V 电源供电 3 23 2 系统软件设计系统软件设计 程序框图如图 3 1 18 图 3 1 19 单片机在定时闹铃中的应用 打破了人们的传统设计思想 原来单片机的应用 很多都是用模拟电路 脉冲数字电路 逻辑部件来实现的功能 现在无需增加硬件 设备 可通过软件来完成 正由于这样 单片机已成为科技领域有力工具 人类生 活的得力助手 单片机在工作前 首先必须在程序存储器内装入程序 单片机开始工作后 即 按地址先从存储器中取出指令 然后把指令译码 以确定该指令执行的是什么操作 和操作数的存放地址 再根据这 3 个地址取操作数 接着 CPU 对操作数进行操作 操作结果送入存储器或经接口电路送入显示器 再经过下面的具体调试 我们就可 以得到我们设计的结果了 20 4 调试过程 4 14 1 硬件调试硬件调试 硬件的调试比较困难 因为是调试所以不能对元件进行焊接 只能把各个元件 用导线连接起来 调试的整体过程是 各个系统逐个调试 各部分调试成功后再进 行组装后的整体调试 调试过程包括 1 显示部分的调试 问题 数码管的显示不稳定 不停的闪烁 分析 没有考虑到干扰及环境的制约 于是我们把在面包板上连好的电路焊接 在印刷板上 并采用电容滤波尽可能去除纹波和干扰 2 控制部分的调试 问题 按下按键后数据有时正常有时又不正常 数据的加减不稳定 分析 根据分析有两个问题可以导致此种现象 一是按键接触不良可能有短路 二是程序部分有问题 用万用表测量后发现按键按下后不稳定 更换质量更好的按 键后故障即排除 4 24 2 软件调试软件调试 程序的调试分几个步骤 首先要在 WAVE6000 软件中编译通过 然后通过 Keil 软件把程序下载到单片机中最终调试出满意的效果才算成功 1 WAVE6000 调试 首先 启动 WAVE6000 新建一个项目 输入一个名字保存 然后打开 真器设置 在 语言 选项下选择 伟福汇编器 缺省显示格式 选择 混合十 十六进 制 仿真器 选项下选择 使用伟福软件模拟器 通信设置 选项下选择 使 用伟福软件模拟器 打开已经写好的程序 选择 项目 菜单下的 编译 命令 根据 Message 窗 口的编译信息修改程序中的错误地方 直到 Message 窗口中不再出现错误符号 全 21 部显示正确符号为止 虽然程序在 WAVE6000 中编译通过了 但并不代表程序就没有错误 只有最终出 现效果才说明没问题 4 34 3 KeiLKeiL 调试调试 在 WAVE6000 软件中调试过的程序在 KEIL 中还有可能有毛病 只有通过 KEIL 的 编译才能下载到试验箱上 启动 Keil 软件 选择 Project 菜单下的 New Project 命令 输入项目的 文件名 选择存储路径 点击 保存 按钮 在 Select Device 窗口中选择 Atmel 下的 89C51 芯片 单击 确定 按钮 展开 Project Workspace 窗口中的 Target 1 右击 Target 1 选 择 Options for Target Target 1 选择 Target 选项在 Keil MHZ 右边 输入 11 0592 选择 Debug 选项 选择 Use Keil Monitor 51 Driver 单 击 Settings 按钮 串口选择 COM1 波特率选择 38400 单击 OK 按钮 右击 Source Group 1 选择 Add files to Group Source Group 1 在 文件类型中选择 Asm Source file 找到将要编译的程序 单击 ADD 按钮 然后再单击 CLOSE 按钮 单击 Rebuild all target files 在 Build 窗口 中观察编译结果 根据提示修改程序 直到没有错误出现 4 44 4 试验箱调试试验箱调试 根据程序的设计在试验箱上分别连接好各个端口的连接线 用串口线把计算机 和试验箱的仿真头连接好 打开试验箱 单击 Keil 软件上的 Start Stop Debug Session 按钮 再单击 RUN 按钮 运行程序 观察试验箱上出现的效果 分析程序的对错 直到调试出正确的结果 22 致 谢 经过两个月的忙碌和工作 本次的毕业设计已经接近尾声 作为一个专科生的毕 业设计 由于经验的匮乏 难免有许多考虑不周全的地方 如果没有导师的督促指 导 以及一起工作的同学们的支持 想要完成这个设计是难以想象的 从论文选题到搜集资料 从写稿到反复修改 期间经历了喜悦 聒噪 痛苦和 彷徨 在写作论文的过程中心情是如此复杂 如今 伴随着这篇毕业论文的最终成 稿 复杂的心情烟消云散 自己甚至还有一点成就感 这篇毕业论文就是我的舞台 以下的言语便是有点成就感后在舞台上发表的发自肺腑的诚挚谢意与感想 我要感谢 非常感谢我的导师苑成友老师 他为人随和热情 治学严谨细心 在闲聊中他总是能像知心朋友一样鼓励你 在论文的写作和措辞等方面他也总会以 专业标准 严格要求你 从选题 定题开始 一直到最后论文的反复修改 润色 苑老师始终认真负责地给予我深刻而细致地指导 帮助我开拓论文思路 精心点拨 热忱鼓励 正是苑老师的无私帮助与热忱鼓励 我的毕业论文才能够得以顺利完成 谢谢苑老师 我要感谢 非常感谢自己 在论文的写作过程中 自己总是积极主动的 主动 与老师同学们沟通 不耻下问 通过写作论文 我更加深刻理解了 态度决定一切 这句话 其次还要感谢我的一个同学 他在本次设计中勤奋工作 克服了许多困难来完成 此次毕业设计 并承担了大部分的工作量 如果没有他的努力工作 此次设计的完 成将变得非常困难 还有那些在这期间曾给予我帮助的同学们 最后 我要感谢 非常感谢两年多的大学生活 感谢我的家人和那些永远也不 能忘记的朋友 他们的支持与情感 是我永远的财富 谢谢 23 参考文献 1 汪吉鹏 微机原理应用 北京 高等教育出版社 2001 2 李 华 MCS 51 系列单片机实用接口技术 北京 北京航空航天出版社 1993 3 陈立国 陈宇等 单片机原理及应用 北京 机械工业出版社 2001 4 耿长青等 单片机应用技术 北京 化工工业出版社 2004 5 胡汉才 单片机原理及其接口技术 北京 清华大学出版社 1995 6 王幸之 钟爱琴 AT89 系列单片机原理与接口技术 北京 北京航空航天大 学出版社 2004 7 杨文龙 单片机原理及应用 陕西 西安电子科技大学出版社 1999 24 附录 A ORG 00H JMP BEGIN ORG 0BH JMP T0 INT BEGIN CLR P3 5 继电器 1 CLR P3 6 继电器 2 CLR P20H 清除闹铃标志 MOV 39H 1H 内定的闹铃时间为 1 点 MOV 3AH 1H 内定的闹铃时间为 1min CALL BZ 压电喇叭连续两次发出哗的声音 CALL BZ CALL LED BL LED 闪动 表示程序开始执行 CALL INIT 初始化变量 CALL INIT TIMER 初始化定时器 MOV A 0FFH MOV P0 A CALL LOAD DATA 加载七段数码显示器初值数据 LOOP 无穷循环 CALL TIME PRO 时间计时处理 CALL SCAN1 扫描显示器 25 JB P2 4 M1 未按下 K1 键则继续扫描 CALL LED BL LED 闪动 CALL SET TIME 设置目前时间 JMP LOOP 继续循环执行 M1 JB P2 5 M2 未按下 K2 键则继续扫描 CALL BZ 发出哗的一声 CALL LOOK ATIME 显示闹铃时间 JMP LOOP 继续循环执行 M2 JB P2 6 M3 未按下 K3 键则继续扫描 CALL BZ 发出哗的一声 CALL SET ATIME 设置闹铃时间 CALL LED BL LED 闪动 JMP LOOP 继续循环执行 M3 JB P2 7 M4 未按下 K4 键则继续扫描 CPL 20H JNB 20H M31 CALL BZ CALL BZ CALL BZ JMP LOOP 继续循环执行 M31 CALL BZ JMP LOOP 继续循环执行 M4 JMP LOOP 继续循环执行 DELAY 总延迟时间 R5 10ms 26 MOV R6 50H D1 MOV R7 100H DJNZ R7 DJNZ R6 D1 DJNZ R5 DELAY RET DELAY1 控制七段显示器延迟时间 MOV R6 1H D2 MOV R7 100H DJNZ R7 DJNZ R6 D2 DJNZ R5 DELAY1 RET LED BL 工作指示灯闪烁 MOV R4 6H LE1 CPL WLED 位反向 MOV R5 5H 延迟 50ms CALL DELAY DJNZ R4 LE1 TABLE DB 3FH 06H 5BH 4FH 66H DB 6DH 7DH 07H 7FH 6FH DB 77H 7CH 58H 5EH 79H DB 71H SCAN1 MOV R0 30H 指向显示器显示缓冲区起始地址 27 MOV R2 4H 循环执行 4 次 MOV ACC 0FEH 加载扫描输出信号初 1111111B S1 PUSH ACC MOV A R0 取出七段显示器数据 MOV P0 ACC 由 P0 送出一位七段显示器数据 POP ACC MOV P2 ACC 由 P2 送出扫描输出信号 MOV R5 5H 延迟一会儿 CALL DELAY1 RL A 累加器向左移动一位 INC R0 显示器显示缓冲区地址加 1 DJNZ R2 S1 循环判断是否继续执行 RET LOAD DATA MOV 30H 3FH MOV 31H 3FH MOV 32H 3FH MOV 33H 3FH RET INIT 初始化控制变量 MOV 37H 00H 5ms 计数值清除为 0 MOV 38H 00H 旧的秒数清除为 0 MOV 36H 00H 秒种变量清除为 0 MOV 35H 00H 分钟变量清除为 0 MOV 34H 00H 小时变量清除为 0 RET INIT TIMER 初始化定时器接口 使用定时器 0 模式 0 计时 MOV TMOD 0000000B 设置定时器 0 工作模式为模式 0 28 MOV IE 10000010B 启用定时器 0 中断产生 MOV TL0 24H 加载低字节 MOV TH0 99H 加载高字节 SETB TR0 启动定时器 0 开始计时 RET T0 INT 定时器 0 计时中断程序每隔 5ms 中断一次 PUSH ACC 将累加器放入堆栈 MOV TL0 24H 加载低字节 MOV TH0 99H 加载高字节 INC 37H 5ms 计数值加 1 MOV A 37H CJNE A 200H TT1 是否 1s 到了 MOV 37H 00H 计数值清除为 0 CPL P3 7 LED 灯亮灭变换 INC 36H 秒计数加 1 MOV A 36H CJNE A 60H TT1 是否 1min 到了 INC 35H 分计数加 1 MOV 36H 00H 秒计数清除为 0 MOV A 35H CJNE A 60H TT1 是否 1h 到了 INC 34H 小时计数加 1 MOV 35H 00H 分计数清除为 0 MOV A 34H CJNE A 24H TT1 是否 24h 到了 MOV 36H 00H 秒钟变量清除为 0 MOV 35H 00H 分钟变量清除为 0 MOV 34H 00H 小时变量清除为 0 TT1 29 POP ACC 将累加器由堆栈取出 RETI CONV1 MOV A 35H MOV B 10H DIV AB MOV DPTR TARLE 查表转换 MOVC A A DPTR MOV 30H A MOV A B MOV A A DPTR MOV 31H A MOV A 36H MOV B 10H DIV AB MOV DPTR TABLE 查表转换 MOVC A A DPTR MOV 32H A MOV A B MOVC A A DPT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论