2.5.5 数码管段位控制电路设计
由于整个十字路口交通信号灯需要8位数码管导致STC89C52RC单片机I/O口不够用,所以采用2片74HC573芯片构成的数码管段位控制电路来达到介绍I/O口的作用。
数码管段位控制电路如下图所示:
图2.8 数码管段位控制电路
其中2片74HC573芯片的D0~D7口同单片机的P1.0~P1.7相连,U2代表段选,其LE口接单片机P2.0引脚DULA,U3代表位选,其LE口接单片机P2.1引脚WELA。
工作原理介绍:当OE引脚接低电平时,从单片机过来传送过来的数据被74HC573芯片接收并输出给数码管,当LE引脚为低电平时,74HC573芯片将数据锁存。
2.6 本章小结
本章介绍了交通信号灯控制系统的硬件总体设计以及分别对每个模块进行详细的说明。
20
第三章 程序设计
3.1 程序主体设计
整个交通信号灯控制程序分为若干个模块:矩阵键盘功能实现程序、交通信号灯模拟程序、数码管显示程序、毫秒延时程序、车流量检测程序、交通信号灯倒计时调试程序、断电数据保护程序等。
整个程序主要由主程序、矩阵键盘功能程序、中断延时程序、断电数据保护程序构成。
其中主程序流程图如下图所示:
图3.1 主程序流程图
21
3.1.1 矩阵按键程序设计
在实际运用中,检测矩阵键盘的方法有三种:扫描法、线反转法和中断法。根据实际情况,检测矩阵键盘的程序采用扫描法。
矩阵按键程序流程图如下图所示:
图3.2 矩阵按键程序流程图
图3.1.1表达了矩阵键盘功能实现程序的思路,从图中可以看出矩阵按键程序相对于独立按键程序来说较为复杂。在矩阵按键程序设计当中,有个对按键处理的重要环节是对按键去抖动,因为当按键被按下和抬起的一瞬间会有一定的抖动,抖动的时间一般为5~20ms之间。STC89C52RC单片机的处理速度是12个时钟周期,本系统采用的晶振为11.0592MHz,所以其处理速度在微秒级别。如果不对按键消除抖动的话,那么程序会发生误操作。所以在矩阵键盘程序中,一定要在有按键按下后,加入软件延时后再次加入检测按键是否按下的指令,软件
22
延时一般设为5~20ms。
3.1.2 中断服务程序设计
中断服务程序在执行主程序的过程中,如果遇见中断请求,则单片机响应中断请求,暂时停止执行主程序转而执行中断服务程序,当中断服务程序执行完后,退出中断服务程序,继续执行之前未完成的主程序。
中断服务程序流程图如下图所示:
图3.3 中断服务程序流程图
中断服务程序主要目的是对数码管进行动态扫描,利用发光管的余辉和人体视线残影实现数码管的动态显示。中断服务程序执行前提有三点:中断源的中断请求、中断源的中断允许位为1以及总中断源EA=1。
23
3.1.3 断电数据保护程序设计
断电数据保护是采用单片机内部的EEPROM来实现的,单片机内部的EEPROM读写过程大致分为六个步骤:
1、 配置ISP_CONTR寄存器,使能第7位ISPEN,让ISP_IAP功能生效,并配置低3位的等待时间;
2 、写指令:读/写/擦除扇区这三个命令;
3 、赋值: ISP_ADDRH和ISP_ADDRL的地址值;
4 、关闭总中断EA,因为下面要写的两个触发指令必须是连续操作的,不能被中断;
5 、执行公用的 ISP_IAP 触发指令,触发后读写操作才能进行; 6 、打开中断 EA,关闭ISP_IAP功能:清相关寄存器。
将单片机内部的EEPROM读、写、擦三种操作分别写成三个子程序,然后用这三种操作来实现单片机的断电数据保护功能。
24
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的十字路口交通信号灯控制-毕业设计论文(6)在线全文阅读。
相关推荐: