文档介绍:《单片机》技术期末总结报告
基于单片机的交通灯控制器设计
目的
利用发光二极管模拟交通灯的控制。
程序功能
模拟交通灯显示。
八位发光二极管分成2组,分别代表交通路口甲、乙两个方向的信号灯(红、黄、绿、左转)。 其中,红灯与绿灯显示时间均为50s,左转显示时间为15s,黄灯显示5s。其状态表如下:
A方向
B方向
绿灯50s
红灯50s
左转15s
红灯15s
黄灯5s
红灯5s
红灯50s
绿灯50s
红灯15s
左转15s
红灯5s
黄灯5s
在信号灯亮的同时,在LED数码管上显示响应的时间(每个方向用2个数码管,倒计时)。
电路原理图
发光二极管电路图:
数码管电路图:
程序流程:
是否有定时器中断
A、B两个方向显示倒计时
程序初始化
开启定时器0和1
开始
否 是
定时时间减一
A方向程序控制流程图
开始
每隔一秒计数值减一
计数值是否为0
亮灯标志是否为1
是
否
绿灯亮,置亮灯标志为2,计数值为50s
是
亮灯标志是否为2
否
左转灯亮,置亮灯标志为2,计数值为15s
是
亮灯标志是否为3
否
黄灯亮,置亮灯标志为4,计数值为5s
是
亮灯标志是否为4
是
红灯亮,置亮灯标志为1,计数值为70s
B方向程序控制流程图
开始
每隔一秒计数值减一
计数值是否为0
亮灯标志是否为1
是
否
红灯亮,置亮灯标志为2,计数值为70s
是
亮灯标志是否为2
否
绿灯亮,置亮灯标志为2,计数值为50s
是
亮灯标志是否为3
否
左转灯亮,置亮灯标志为4,计数值为15s
是
亮灯标志是否为4
是
黄灯亮,置亮灯标志为1,计数值为5s
程序源码(应有必要的注释):
程序功能:模拟交通灯显示。
其中,红灯与绿灯显示时间均为50s,中间的黄灯显示时间 为15s。
绿灯用八位发光二极管流动闪烁作代表;
红灯用八位发光二极管全亮作代表;
黄灯用八位发光二极管全亮全灭闪烁作代表。
刚开始显示的为绿灯。
显示顺序:绿--黄--红--黄--绿--黄--红--………………#include<>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
unsigned int pp;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,