基于STC-89C51的流水灯的设计与实现_第1页
基于STC-89C51的流水灯的设计与实现_第2页
基于STC-89C51的流水灯的设计与实现_第3页
基于STC-89C51的流水灯的设计与实现_第4页
基于STC-89C51的流水灯的设计与实现_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

开放与创新实验设计报告 设计题目 基于基于 STC 89C51STC 89C51 的流水灯的设计与实现的流水灯的设计与实现 指导老师 设计时间 开放与创新实验 流水灯控制系统设计 1 开放与创新实验任务书 一 设计任务一 设计任务 设计题目设计题目 按键式流水灯设计 设计内容设计内容 本设计是按键式流水灯设计 给出如下需求 整个流水 灯系统由按键控制 实现各种状态 4 种状态 之间的转换 即按 键第一次压下 流水灯进入到第一种状态 按键第二次压下 流水 灯进入到第二种状态 以此类推 二 系统需求二 系统需求 基本要求 基本要求 利用 STC 89C51 单片机作为系统核心控制部分 用 16 个 发光二极管模拟流水灯的显示部分 自己设计电路和程序完成流水 灯设计 发挥部分 发挥部分 1 使用外部中断作为对按键的控制 2 用硬件定时器完成流水灯状态转换间的延时 延时误差小于 20 10 6s 开放与创新实验 流水灯控制系统设计 2 开放与创新实验开放与创新实验 流水灯设计报告流水灯设计报告 流水灯控制系统设计流水灯控制系统设计 摘要摘要 本系统由单片机系统 数码显现管 LED 显示等部分组成 系 统能够实现以下功能 往南和往北的信号一致 即红灯 绿灯或黄 灯 同时亮或同时熄灭 用两个数码管来显示被点绿亮的指示灯还 将点亮多久 往东和往西方向的信号一致 其工作方式与南北方向 一样 也采用两个数码管来倒计时 当南北方向为绿灯或黄灯时 东西方向的红灯点亮禁止通行 而东西方向为绿灯或黄闪灯时 南 北向的红灯点亮禁止通行 交通信号灯控制方式很多 本设计采用 MSC 51 系列单片机 STC89C51 和可编程并行 I O 接口芯片 8255 8155 为中心器件来设计交通灯控制器 实现了用 8155 芯片控制数码显 现管 PC 口进行段选 PB 进行位选 来设置红 绿灯点亮倒计时的 功能 由 8255 芯片控制 12 个 LED 灯来实现红绿黄灯状态 红绿灯 循环点亮 倒计时结束后黄灯闪烁警示 在设计中采用了硬件技术 与软件技术相结合的方法 用 STC 89C51 的定时器 T0 设定 30 秒倒 计时时间 然后再利用软件进行技术 从而产生秒信号 定时器 T0 用了中断方式 当定时时间到时 在 T0 断服务程序中实现秒的倒计 数 从而控制 LED 显示器倒计数显示准行或禁行时间 本系统实用性强 操作简单 扩展功能强 关键词 关键词 单片机 8255 8155 芯片 交通灯 开放与创新实验 流水灯控制系统设计 3 目目 录录 一 绪 论 5 5 二 实验原 理 5 三 实验的各种方 案 12 四 硬件设 计 13 五 软件设 计 14 六 系统调 试 21 七 试验心得体 会 22 开放与创新实验 流水灯控制系统设计 4 一 绪论一 绪论 1 题目分析题目分析 设计要求是流水灯的控制 需自己设计图形并实现四种状 态 2 功能要求功能要求 我们利用 STC89C52 单片机作为核心控制部分扩展外部并 口芯片 用 P0 P1 P2 端口控制灯的亮灭 P02 端口控制按键 应用外部中断来实现流水灯的控制 开放与创新实验 流水灯控制系统设计 5 二二 实验原理 实验原理 80C51 80C51 的中断系统结构的中断系统结构 1 1 中断的概念 中断的概念 CPU 在处理某一事件 A 时 发生了另一事件 B 请求 CPU 迅速去 处理 中断发生 CPU 暂时中断当前的工作 转去处理事件 B 中 断响应和中断服务 待 CPU 将事件 B 处理完毕后 再回到原来事 件 A 被中断的地方继续处理事件 A 中断返回 这一过程称为中断 2 MCS 51 单片机的中断系统结构 执行主 程序 主程序 继续执行 主程序 断点 中断请求 中断响应 执行 中断 处理 程序 中断返回 引起 CPU 中断的根源 称为中断源 中断源向 CPU 提出的中 断请求 CPU 暂时中断原来的事务 A 转去处理事件 B 对事件 B 处 开放与创新实验 流水灯控制系统设计 6 理完毕后再回到原来被中断的地方 即断点 称为中断返回 随着计算机技术的应用 人们发现中断技术不仅解决了快速主机与 慢速 I O 设备的数据传送问题 而且还具有如下优点 1 分时操作 CPU 可以分时为多个 I O 设备服务 提高了计算机的 利用率 2 实时响应 CPU 能够及时处理应用系统的随机事件 系统的实时 性大大增强 3 可靠性高 CPU 具有处理设备故障及掉电等突发性事件能力 从 而使系统可靠性提高 3 3 80C5180C51 中断系统的结构中断系统的结构 80C51 的中断系统有 5 个中断源 8052 有 6 个 2 个优先级 可实现二级中断嵌套 EX0 EAPX0 0 1 ET 0 PT0 0 1 EX1 PX1 0 1 ET1 PT1 0 1 ES PS 0 1 1 RI TI SCON TCON IE0 TF0 IE1 TF1 1 0 1 0 1 IT0 IT1 INT0 INT1 T0 T1 RX TX IE IP 1 1 1 1 1 1 1 1 0 硬件查询 自 然 优 先 级 自 然 优 先 级 中断入口 中断入口 高 级 低 级 中断源 中断源 开放与创新实验 流水灯控制系统设计 7 1 P0 2 可由 IT0 TCON 0 选择其为低电平有效还是下降沿 有效 当 CPU 检测到 P0 2 引脚上出现有效的中断信号时 中断标志 IE0 TCON 1 置 1 向 CPU 申请中断 2 P0 3 可由 IT1 TCON 2 选择其为低电平有效还是下降沿有效 当 CPU 检测到 P0 3 引脚上出现有效的中断信号时 中断标志 IE1 TCON 3 置 1 向 CPU 申请中断 3 TF0 TCON 5 片内定时 计数器 T0 溢出中断请求标志 当定 时 计数器 T0 发生溢出时 置位 TF0 并向 CPU 申请中断 4 TF1 TCON 7 片内定时 计数器 T1 溢出中断请求标志 当定 时 计数器 T1 发生溢出时 置位 TF1 并向 CPU 申请中断 5 RI SCON 0 或 TI SCON 1 串行口中断请求标志 当串行 口接收完一帧串行数据时置位 RI 或当串行口发送完一帧串行数据时 置位 TI 向 CPU 申请中断 中断请求标志 中断请求标志 1 TCON 的中断标志的中断标志 开放与创新实验 流水灯控制系统设计 8 IT0 TCON 0 外部中断0触发方式控制位 当IT0 0时 为电平触发方式 当IT0 1时 为边沿触发方式 下降沿有效 IE0 TCON 1 外部中断0中断请求标志位 IT1 TCON 2 外部中断1触发方式控制位 IE1 TCON 3 外部中断1中断请求标志位 TF0 TCON 5 定时 计数器T0溢出中断请求标志位 TF1 TCON 7 定时 计数器T1溢出中断请求标志位 2 中断优先级控制 中断优先级控制 80C51 单片机有两个中断优先级 即可实现二级中断服务嵌套 每个中断源的中断优先级都是由中断优先级寄存器 IP 中的相应位的 状态来规定的 开放与创新实验 流水灯控制系统设计 9 PX0 IP 0 外部中断 0 优先级设定位 PT0 IP 1 定时 计数器 T0 优先级设定位 PX1 IP 2 外部中断 0 优先级设定位 PT1 IP 3 定时 计数器 T1 优先级设定位 PS IP 4 串行口优先级设定位 PT2 IP 5 定时 计数器 T2 优先级设定位 同一优先级中的中断申请不止一个时 则有中断优先权排队问 题 同一优先级的中断优先权排队 由中断系统硬件确定的自然优 先级形成 其排列如所示 设置 52 单片机的 4 个中断源 使他们的优顺序 T1 INT1 INT0 T0 IPH 0X08 PT1 1 IP 0X40 PX1 1 80C51 单片机的中断优先级有三条原则 1 CPU 同时接收到几个中断时 首先响应优先级别最高的中断请求 开放与创新实验 流水灯控制系统设计 10 2 正在进行的中断过程不能被新的同级或低优先级中断请求所中断 3 正在进行的低优先级中断服务 能被高优先级中断请求所中断 为了实现上述后两条原则 中断系统内部设有两个用户不能寻 址的优先级状态触发器 其中一个置 1 表示正在响应高优先级的 中断 它将阻断后来所有的中断请求 另一个置 1 表示正在响应 低优先级中断 它将阻断后来所有的低优先级中断请求 3 定时 计数器的结构和工作原理 一 定时 计数器的结构 定时 计数器的实质是加 1 计数器 16 位 由高 8 位和低 8 位两个 寄存器组成 TMOD 是定时 计数器的工作方式寄存器 确定工作方 式和功能 TCON 是控制寄存器 控制 T0 T1 的启动和停止及设 置溢出标志 GATE C T M1 M0 GATE C T M1 M0 TH1TL1TH0TL0 T1方式 T0方式 T1引脚 T0引脚 机器周 期脉冲 内部总线 TMOD TCON 外部中断相关位 TF1 TR1 TF0 TR0 开放与创新实验 流水灯控制系统设计 11 定时 计数器的工作原理 加 1 计数器输入的计数脉冲有两个来源 一个是由系统的时钟振 荡器输出脉冲经 12 分频后送来 一个是 T0 或 T1 引脚输入的外部 脉冲源 每来一个脉冲计数器加 1 当加到计数器为全 1 时 再输 入一个脉冲就使计数器回零 且计数器的溢出使 TCON 中 TF0 或 TF1 置 1 向 CPU 发出中断请求 定时 计数器中断允许时 如果 定时 计数器工作于定时模式 则表示定时时间已到 如果工作于计 数模式 则表示计数值已满 可见 由溢出时计数器的值减去计数初值才是加 1 计数器的计 数值 加 1 计数器输入的计数脉冲有两个来源 一个是由系统的时钟振 荡器输出脉冲经 12 分频后送来 一个是 T0 或 T1 引脚输入的外部 脉冲源 每来一个脉冲计数器加 1 当加到计数器为全 1 时 再输 入一个脉冲就使计数器回零 且计数器的溢出使 TCON 中 TF0 或 TF1 置 1 向 CPU 发出中断请求 定时 计数器中断允许时 如果 定时 计数器工作于定时模式 则表示定时时间已到 如果工作于计 数模式 则表示计数值已满 开放与创新实验 流水灯控制系统设计 12 可见 由溢出时计数器的值减去计数初值才是加 1 计数器的计 数值 设置为计数器模式时 外部事件计数脉冲由 T0 或 T1 引脚输 入到计数器 在每个机器周期的 S5P2 期间采样 T0 T1 引脚 电平 当某周期采样到一高电平输入 而下一周期又采样到一 低电平时 则计数器加 1 更新的计数值在下一个机器周期的 S3P1 期间装入计数器 由于检测一个从 1 到 0 的下降沿需要 2 个机器周期 因此要求被采样的电平至少要维持一个机器周 期 当晶振频率为 12MHz 时 最高计数频率不超过 1 2MHz 即计数脉冲的周期要大于 2 s 三三 实验的各种方案实验的各种方案 输入端接按键及外部中断接按键两种方案 输入端接按键及外部中断接按键两种方案 进行比较论证 方案一 利用 STC 89C52 单片机作为系统核心控制部分扩展外部 并口芯片 由 P0 P1 P2 端口控制发光二极管 选择 P0 P1 P2 任一端口接按键来控制流水灯 方案二 利用 STC 89C52 单片机作为系统核心控制部分扩展外部 并口芯片 由 P0 P1 P2 端口来控制灯的亮灭 P0 2 检测中断信 号 接按键 方案一将输入端接按键需要纯粹的软件编程来控制按键 对 CPU 的利用率高 但在日常生活中利用率不高 而将外部中断与按 键相接来控制流水灯 降低了 CPU 的利用率 可以更好的利用单片 四 硬件设计 包括电路图 四 硬件设计 包括电路图 开放与创新实验 流水灯控制系统设计 13 此电路总体来说由两部分组成 一部分是 STC89C52 单 片机 另一部分是单片机的外部扩展由发光二极管构成 五 软件设计五 软件设计 1 流程图 流程图 开放与创新实验 流水灯控制系统设计 14 初始化 有一半灯亮 灯先左移 后又移亮 灯闪烁三次 奇偶灯依次交替亮 2 源代码 源代码 实验一 实验一 ORG 0540h HA1S MOV A 00H HA1S1 JB P3 3 HA1S1 MOV R2 20H LCALL DELAY JB P3 3 HA1S1 HA1S2 JNB P3 3 HA1S2 MOV R2 20H LCALL DELAY 开放与创新实验 流水灯控制系统设计 15 JNB P3 3 HA1S2 INC A PUSH ACC CPL A MOV P1 A POP ACC AJMP HA1S1 DELAY PUSH 02H DELAY1 PUSH 02H DELAY2 PUSH 02H DELAY3 DJNZ R2 DELAY3 POP 02H DJNZ R2 DELAY2 POP 02H DJNZ R2 DELAY1 POP 02H DJNZ R2 DELAY RET END 实验二 实验二 include void main 开放与创新实验 流水灯控制系统设计 16 unsigned int i P1 0 x01 while 1 i 20000 while i P1 P1 1 if P1 0 x00 P1 0 x01 实验三 实验三 include unsigned int flag unsigned char flag 1 void timer init TMOD 0 x02 定时器定时器 0 工作方式工作方式 2 初值自动重装初值自动重装 TH0 0 x06 开放与创新实验 流水灯控制系统设计 17 TL0 0 x06 TR0 1 EA 1 ET0 1 void delay int i for i 0 i P1 0 xff P2 0 x7e delay 1 8 P1 0 xff P2 0 x3c delay 1 8 2 7 P1 0 xff P2 0 x18 delay 1 8 2 7 3 6 P1 0 xff 开放与创新实验 流水灯控制系统设计 18 P2 0 x00 delay 1 8 2 7 3 6 4 5 display 2 P1 0 xff P2 0 xe7 delay 1 8 P1 0 xff P2 0 xc3 delay 1 8 2 7 P1 0 xff P2 0 x81 delay 1 8 2 7 3 6 P1 0 xff P2 0 x00 delay 1 8 2 7 3 6 4 5 display 3 P1 0 x80 开放与创新实验 流水灯控制系统设计 19 P2 0 xfe delay 1 8 P1 0 xc0 P2 0 xfc delay 1 8 2 7 P1 0 xd0 P2 0 xf8 delay 1 8 2 7 3 6 P1 0 xf0 P2 0 xf0 delay 1 8 2 7 3 6 4 5 P1 0 xf8 P2 0 xe0 delay 1 8 2 7 3 6 4 5 P1 0 xfc P2 0 xc0 delay 1 8 2 7 3 6 4 5 P1 0 xfe P2 0 x80 delay 1 8 2 7 3 6 4 5 P1 0 xff P2 0 x00 开放与创新实验 流水灯控制系统设计 20 delay 1 8 2 7 3 6 4 5 void main while 1 if flag 1 0 display 1 if flag 1 1 display 2 if flag 1 2 display 3 void time 0 interrupt 1 flag if flag 100 flag 0 flag 1 flag 1 1 if flag 1 4 flag 1 0 开放与创新实验 流水灯控制系统设计 21 六 六 系统调试 用系统调试 用 keil c51keil c51 对程序进行调试 以及把程序对程序进行调试 以及把程序 烧录到单片机的过程 烧录到单片机的过程 A B C D E F G H 1 2 3 4 5 6 7 8 A B C D E F G H 1 2 3 4 5 6 7 8 A B C D E F G H 1 2 3 4 5 6 7 8 A B C D E F G H 1 2 3 4 5 6 7 8 A B C D E F G H 1 2 3 4 5 7 8 A B C D E F G H 1 2 3 4 5 6 7 8 A B C D E F G H A B C D E F G H 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 6 A B C D E F G H 1 2 3 4 5 6 7 8 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U1 AT89C51 1 2 3 4 5 6 7 8 20 19 18 17 16 15 14 13 9 10 12 11 U2 LED BARGRAPH GRN 1 2 3 4 5 6 7 8 20 19 18 17 16 15 14 13 9 10 12 11 U3 LED BARGRAPH GRN 1 2 3 4 5 6 7 8 20 1

温馨提示

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

评论

0/150

提交评论