崔建彪单片机课程设计报告第二部分.doc_第1页
崔建彪单片机课程设计报告第二部分.doc_第2页
崔建彪单片机课程设计报告第二部分.doc_第3页
崔建彪单片机课程设计报告第二部分.doc_第4页
崔建彪单片机课程设计报告第二部分.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

自控系单片机课程设计 1 一 设计目的 为了熟悉单片机课程的精髓 增加对单片机课程的认识程度 特别是对自身的实践能 力的提高 所以选择进行单片机应用系统设计 在设计过程中对 Keil 软件和 protel99 软件进行熟悉和应用 首先对这两个软件进行学习也扩大自己对计算机软件的认识程 度和了解应用程度 这样能充分锻炼自己对理论和实践的结合认识 增强自己在实践 方面的能力 比较好地掌握单片机知识 也会为自己将来面临的就业打下良好的基础 二 设计要求和设计指标 本设计程序能够正常显示一个交通灯所能达到的指示效果 并能够对其稍作改进后 可以显示不同的效果 满足对交通的指挥和向导作用 本次设计锻炼了我自己的动手 实践能力和软件编程能力 另外本次单片机应用系统设计让我更好地了解到单片机知 识在实际生活中的应用 让我更加有兴趣去学习单片机知识 本次交通灯应用系统设 计中 要求设计一个十字路口的交通灯控制电路 要求南北方向和东西方向车道的车 辆交替运行 分别有红 黄 绿三种通行灯在绿灯转为红灯时 要求黄灯先亮 才能 变换运行车道 黄灯亮时 要求每秒闪亮一次 带紧急按钮功能 当紧急按钮按下时 所有方向均亮起红灯 夜间运行模式按钮 按下时 所有方向黄灯闪烁 可以在线修 改红绿灯等待间隔时间 实现显示倒计时功能 在现有的研发装置上掌握相关硬件正 确地进行连线 在计算机上编写汇编程序 调试 下载 配合外部电路进行系统功能调 试 设计并实现上述要求的系统 要求按设计制定方案 直至正确地实现系统功能 写出课程设计报告 理解设计方案后自己动手修改程序并连线 构成硬件电路 通过 独立调试实现预定功能 三 设计内容 3 13 1 设计任务设计任务 该课程设计是利用 STC 89C52RC 单片机中断系统 以及行列键盘和 LED 显示器 等部件 设计一个单片机交通信号灯 设计的交通信号灯通过 LED 灯显示 并能通过 按键实现设置时间和暂停 启动控制等 自控系单片机课程设计 2 3 23 2 硬件部分硬件部分 单片机是由运算器 控制器 存储器 输入设备以及输出设备共五个基本部分组成 的 单片机是把包括运算器 控制器 少量的存储器 最基本的输入输出口电路 串 行口电路 中断和定时电路等都集成在一个尺寸有限的芯片上 选用的 STC 89C52 与同系列的 STC 89C52 在功能上有明显的提高 最突出是的可以实 现在线的编程 用于实现系统的总的控制 其主要功能列举如下 1 为一般控制应用的 8 位单片机 2 晶片内部具有时钟振荡器 传统最高工作频率可至 33MHz 3 内部程式存储器 ROM 为 4KB 4 内部数据存储器 RAM 为 128B 5 外部程序存储器可扩充至 64KB 6 外部数据存储器可扩充至 64KB 7 32 条双向输入输出线 且每条均 可以单独做 I O 的控制 8 5 个中断向量源 9 2 组独立的 16 位定时器 10 1 个全双工串行通信端口 11 8751 及 8752 单芯片具有数据保密的功能 12 单芯片提供位逻辑运算指令 通常 单片机由单个集成电路芯片构成 内部包含有计算机的基本功能部件 中央 处理器 存储器和 I O 接口电路等 因此 单片机只需要和适当的软件及外部设备相 结合 便可成为一个单片机控制系统 STC 89C52RC 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编 程 Flash 存储器 使用 Atmel 公司高密度非 易失性存储器技术制造 与工业 80C51 产品指令和引脚完 全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于 常规编 程器 在单芯片上 拥有灵巧的 8 位 CPU 和在系统 可编程 Flash 使得 STC 89C52 为众多嵌入式控制应用系统提 供高灵活 超有效的解决方案 STC 89C52 具有以下 标准功能 8k 字节 Flash 256 字节 RAM 32 位 I O 口线 看门狗定时器 2 个数据 指针 三个 16 位 定时器 计数器 一个 6 向量 2 级中断结构 全双工串行口 片内 晶振及时钟电路 另外 STC 89C52 可降至 0Hz 静态逻 辑操作 支持 2 种软件可选 自控系单片机课程设计 3 择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继 续工 作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机一切工作停止 直到下一个中断或硬件复位为止 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻 辑电平 对 P0 端口写 1 时 引脚用作高阻 抗输入 当访问外部程序和数据存储器时 P0 口也被作为低 8 位地址 数据复用 在 这种模式下 P0 不具有内部上拉电阻 在 flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令字节 程序校验 时 需要外部上拉电 VCC STC 89C52RC 电源正端输入 接 5V VSS 电源地端 XTAL1 单芯片系统时钟的反向放大器输入端 XTAL2 系统时钟的反向放大器输出端 一般在设计上只要在 XTAL1 和 XTAL2 上 接上一只石英振荡晶体系统就可以动作了 此外可以在两个引脚与地之间加入一个 20PF 的小电容 可以使系统更稳定 避免噪声干扰而死机 RESET STC 89C52RC 的重置引脚 高电平动作 当要对晶片重置时 只要对此引 脚电平提升至高电平并保持两个机器周期以上的时间 STC 89C52RC 便能完成系统重 置的各项动作 使得内部特殊功能寄存器之内容均被设成已知状态 并且至地址 0000H 处开始读入程序代码而执行程序 EA Vpp EA 为英文 External Access 的缩写 表示存取外部程序代码之意 低 电平动作 也就是说当此引脚接低电平后 系统会取用外部的程序代码 存于外部 EPROM 中 来执行程序 因此在 8031 及 8032 中 EA 引脚必须接低电平 因为其内部 无程序存储器空间 如果是使用 8751 内部程序空间时 此引脚要接成高电平 此外 在将程序代码烧录至 8751 内部 EPROM 时 可以利用此引脚来输入 21V 的烧录高压 Vpp ALE PROG ALE 是英文 Address Latch Enable 的缩写 表示地址锁存器启用信号 STC 89C52RC 可以利用这个引脚来触发外部的 8 位锁存器 如 74LS373 将端口 0 的 地址总线 A0 A7 锁进锁存器中 因为 STC 89C52RC 是以多工的方式送出地址及数 据 平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1 6 因此可以用来驱 动其他周边晶片的时基输入 此外在烧录 8751 程序代码时 此引脚会被当成程序规划 的特殊功能来使用 自控系单片机课程设计 4 PSEN 此为 Program Store Enable 的缩写 其意为程序储存启用 当 8051 被设 成为读取外部程序代码工作模式时 EA 0 会送出此信号以便取得程序代码 通常这 支脚是接到 EPROM 的 OE 脚 STC 89C52RC 可以利用 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 端口使用外 若是在 STC 89C52RC 扩充外接程序 存储器或数据存储器时 也提供地址总线的高字节 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 输入 自控系单片机课程设计 5 P3 4 T0 计时计数器 0 输入 P3 5 T1 计时计数器 1 输入 P3 6 WR 外部数据存储器的写入信号 P3 7 RD 外部数据存储器的读取信号 3 33 3 软件部分软件部分 3 3 13 3 1 定时器的设置定时器的设置 定时器需定时 毫秒 故 1 工作于方式 初值计算 TC M T T 计数 216 50ms 1us 15536 3CBOH START MOV TMOD 10H 令 为定时器方式 MOV TH0 3CH 装入定时器初值 MOV TL0 0BOH SETB EA 打开总中断 SETB ET1 开 1 中断 SETB ER 启动 1 计数器 CLR FLAG1 自控系单片机课程设计 6 CLR FLAG2 CLR FLAG3 MOV R3 20H 软件计数器赋初值 3 3 23 3 2 相应中断服务子程序相应中断服务子程序 ORG 001B LJMP DSD ORG 0030H DSD INC R3 MOV TH0 3CH 重装入定时器初值 MOV TL0 BOH CJNE R3 20 FH DEC R0 DEC R1 MOV R3 00H FH RETI 3 3 33 3 3 程序的软件延时程序的软件延时 STC 89C52 的工作频率为 0 33MHZ 我们选用的 STC 89C52 单片机的工作频率 为 12MHZ 机器周期与主频有关 机器周期是主频的 12 倍 所以一个机器周期的时 间为 12 1 12M 1us 我们可以知道具体每条指令的周期数 这样我们就可以通过 指令的执行条数来确定 1 秒的时间 具体的延时程序分析 DELAY MOV R4 08H 延时 1 秒主程序 DE2 LCALL DELAY1 DJNZ R4 DE2 RET DELAY1 MOV R4 00H 延时 125us 子程序 D1 MOV R5 00H D2 CJNE R5 DL2 自控系单片机课程设计 7 CJNE R4 D1 RET DELAY1 为一个双重循坏 循环次数为 256 256 65536 所以延时时间 65536 2 131072us 约为 125us 3 43 4 设计方案及工作原理设计方案及工作原理 中断技术是计算机中一项很重要的技术 它既和硬件有关 也和软件有关 正是 因为有了中断才使计算机的工作更加灵活 效率更高 单片机交通信号灯的模拟系统 就是根据中断这一方式进行工作的 对于中断系统的应用 需要 用户完成的工作主要 是编制中断应用程序 它包括两部分内容 一是编制中断初始化程序 二是编制中断 服务程序 中断初始化实质上就是用软件对四个与中断有关的特殊功能寄存器进行设置 使 CPU 按照要求对中断源进行管理和控制 中断初始化一般是放在主程序中 与主程序其 他初始化内容一起完成设置 中断服务程序是具有特定功能的独立程序段 他是为了中断源的特定要求服务 以 中断返回指令结束 在本设计中 实际控制的灯只有 6 个 即 东西红灯 东西绿灯 东西黄灯 南北红灯 南北绿灯 南北黄灯 下表为交通状态及红绿灯状态 共有 4 钟状态 东西红灯亮 南北绿灯亮 11011101 DDH 东西红灯亮 南北黄灯 亮 10111101 BDH 东西绿灯亮 南北红灯亮 11101101 EDH 东西黄灯亮 南北 状态 1状态 3状态 4状态 6 东西向禁行等待变换通行等待变换 南北向通行等待变换禁行等待变换 东西红灯 0011 东西黄灯 1110 东西绿灯 1101 南北红灯 1100 南北绿灯 0111 南北黄灯 1 011 自控系单片机课程设计 8 红灯亮 11100111 E7H 括号中是 P2 端口 8 个引脚值 P2 7 P2 6 P2 5 P2 4 P2 3 P2 2 P2 1 P2 0 以及对应的十六进制码 在用于显示发光二极管 时 直接由 MOV 指令将十六进制码送入 P2 口 刚才的 4 个状态是依次变换的 这就 要涉及到状态的判断和衔接了 先把 P2 端口的值与所有的 4 个状态码比较 若相同则 判断成功当前状态 再把下一状态的状态码送显 P2 即可 程序如下 MOV A P2 DJNZ A 0DDH D1 MOV P2 BDH D1 DJNZ A BDH D2 MOV P2 EDH D2 CJNZ A EDH D3 MOV P2 E7H D3 CJNZ A E7H Y MOV R2 DDH 本次设计的交通灯原理图如下 自控系单片机课程设计 9 自控系单片机课程设计 10 上图表示只用了六个 LED 灯来表示四个方向的红黄绿共十二个 LED 灯 自控系单片机课程设计 11 3 53 5 程序流程图程序流程图 开始 夜间所有方向黄灯灯 闪烁 初始化 所有方向初始全灭 东西向绿灯亮 放行 南北向红灯亮 禁行 延时30S 东西向绿灯灭 黄灯亮 延时3秒 东西向红灯亮 禁行 南北向绿灯亮 放行 延时30S 南北向绿灯灭 黄 灯亮 延时30S 重新开始下一个周期 中断响应 保护现场 恢复现场 中断返回 遇紧急情况所有方 向红灯全亮6S 自控系单片机课程设计 12 3 63 6 交通灯汇编程序如下交通灯汇编程序如下 ORG 0000H LJMP SETUP ORG 0003H 外部中断外部中断 INT0INT0 的入口地址的入口地址 LJMP INT0SER ORG 0013H 外部中断外部中断 INT1INT1 的入口地址的入口地址 LJMP INT1SER ORG 0030H SETUP SETB IT0 初始化 打开中断初始化 打开中断 SETB IT1 SETB EX0 MOV IE 15H SETB EX1 SETB EA MAIN MOV R2 0AH 闪烁次数闪烁次数 MOV P2 0FFH 信号灯初始状态全灭信号灯初始状态全灭 CLR P2 2 东西向绿灯亮 东西向放行东西向绿灯亮 东西向放行 CLR P2 3 南北向红灯亮 南北向禁止通行南北向红灯亮 南北向禁止通行 MOV R4 3CH 延时延时 30S30S LP1 LCALL DL DJNZ R4 LP1 SETB P2 2 D CLR P2 1 东西向黄灯闪烁东西向黄灯闪烁 LCALL DL SETB P2 1 LCALL DL DJNZ R2 D 自控系单片机课程设计 13 MOV R4 06H LP2 LCALL DL DJNZ R4 LP2 MOV P2 0FFH CLR P2 0 东西向红灯亮 东西向禁止通行东西向红灯亮 东西向禁止通行 CLR P2 5 南北向绿灯亮 南北向通行南北向绿灯亮 南北向通行 MOV R4 3CH 延时延时 30S30S LP3 LCALL DL DJNZ R4 LP3 SETB P2 5 熄灭南北向绿灯熄灭南北向绿灯 MOV R2 06H N CLR P2 4 南北向黄灯闪烁南北向黄灯闪烁 LCALL DL SETB P2 4 LCALL DL DJNZ R2 N MOV R4 06H 延时延时 3S3S LP4 LCALL DL DJNZ R4 LP4 LJMP MAIN 重新开始下一个周期重新开始下一个周期 INT0SER MOV A P2 保存中断前状态保存中断前状态 MOV P2 0FFH MOV R1 11H I0 CLR P2 0 紧急情况红灯全亮紧急情况红灯全亮 CLR P2 3 ACALL DL DJNZ R1 I0 红灯亮红灯亮 6S6S 自控系单片机课程设计 14 SETB P2 0 SETB P2 3 MOV P2 A 恢复中断前状态恢复中断前状态 RETI INT1SER MOV A P2 保存中断前状态保存中断前状态 MOV P2 0FFH MOV R1 0AH I1 CLR P2 1 夜间模式下黄灯闪烁夜间模式下黄灯闪烁 CLR P2 4 ACALL DL SETB P2 1 SETB P2 4 ACALL DL DJNZ R1 I1 SETB P2 1 SETB P2 4 MOV P2 A 恢复中断前状态恢复中断前状态 RETI

温馨提示

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

评论

0/150

提交评论