河南理工大学微机原理与单片机实验、课程设计交通灯_第1页
河南理工大学微机原理与单片机实验、课程设计交通灯_第2页
河南理工大学微机原理与单片机实验、课程设计交通灯_第3页
河南理工大学微机原理与单片机实验、课程设计交通灯_第4页
河南理工大学微机原理与单片机实验、课程设计交通灯_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

实验四实验四 交通灯实验交通灯实验 一 实验目的一 实验目的 按键 数码管 发光二极管综合应用编程技术 数据存储于 EEPROM 的技术 也可以不使用 定时中断技术 按键中断技术 二 实验实现的功能二 实验实现的功能 通过 1 2 3 4 号按键对每个路口 主干道 次干道 的绿灯时间 及 黄灯时间的设定 紧急按键功能 当按下 6 键时 所有路口变成红灯 相当于交警指挥特 殊车辆通过 再按 6 键 恢复正常显示 三 系统硬件设计三 系统硬件设计 1 四 系统软件设计四 系统软件设计 include bit i 0 unsigned char b sbit L0 P0 0 sbit L1 P0 1 sbit L2 P0 2 sbit L3 P0 3 sbit L5 P0 5 sbit L6 P0 6 sbit L7 P0 7 void Delay300ms 300ms 延时 unsigned char i j k i 13 j 156 k 83 do do while k while j while i void Delay500us 500ms 延时 unsigned char i j i 6 j 93 do while j while i Scan Key 按键扫描 unsigned char FLAG 0 P3 P3 0 x80 P3 P3 if L5 0 FLAG 1 if L6 0 2 FLAG 2 if L7 0 FLAG 3 P3 P3 0 x40 P3 P3 if L5 0 FLAG 4 if L6 0 FLAG 5 if L7 0 FLAG 6 return FLAG main unsigned char a 0 xbf 0 x86 0 xdb 0 xcf 0 xe6 0 xed 0 xfd 0 x87 0 xff 0 xef unsigned char b 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f unsigned char v 9 w 5 y 9 z 5 n g x s t m q P1M0 0 xff 设置红绿灯时间 P1M1 0 x00 P3 0 xff while 1 n Scan Key if n 1 v if n 2 w if n 3 y if n 4 z if n 5 Delay300ms break for g 0 g 0 for x 0 n Scan Key if n 6 6 键按下视为紧急情况 红灯亮 while 1 P2 0 xdb P3 0 x18 Delay300ms n Scan Key if n 6 break for q 0 q 255 q if x 3P3 0 xe8 4 else P2 0 xf3 P3 0 xf0 L3 0 L2 1 L1 1 L0 1 P1 a x Delay500us P1 0 x00 Delay500us if x 0 for t 0 n Scan Key if n 6 while 1 6 键按下视为紧急情况 红灯亮 P2 0 xdb 5 P3 0 x18 Delay300ms Delay300ms n Scan Key if n 6 break for q 0 q 255 q 灯亮同时数码管亮 if m 0 else P2 0 x9e P3 0 xdf L3 1 L2 1 L1 0 L0 1 P1 a t Delay500us P1 0 x00 Delay500us if m 0 else P2 0 x9e P3 0 xdf L3 1 L2 1 L1 1 L0 0 P1 b m Delay500us P1 0 x00 Delay500us if t 0 while i 1 if t 0t 10 if t 0 t i 0 if t 0 if t 0 6 void intt1 interrupt 3 1 秒定时 TH1 0 xd8 TL1 0 xf0 b 1 if b 0 b 100 i 1 五 实验过程中遇到的问题及解决方法五 实验过程中遇到的问题及解决方法 1 数码管和灯不能同时点亮 解决 采用动态点亮数码管的思路 使各数码管和灯一次点亮 各延时一小段时间 由 于视觉暂留可产生同时亮的效果 2 动态显示后 灯亮 数码管几乎不亮 解决 与灯亮的时间相比 数码管亮时间过短 肉眼不能辨别 故应加长数码管点亮时 间 但每个数码管延时过长会影响动态显示 所以加数码管循环点亮放入 for 循环中 灯 每亮一次 其进行 250 次循环点亮 既可使数码管亮一定时间 又不影响动态显示 3 P3 口既在扫描开关时使用 又控制交通灯亮 即处于输入 输出两种状态 怎么才能 不引起混乱 解决 在按键扫描程序中不要直接给 P3 赋值 用与或非的逻辑表达式把 P3 前两位依 次清零即可 4 用按键控制进入紧急状态 在其中再次判断按键退出 则无法亮红灯 解决 思考可知 由于按键需要时间 紧急状态中按键值仍为 6 所以直接跳出 不能 看到红灯全亮 在进入紧急状态后 加入 3

温馨提示

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

评论

0/150

提交评论