基于单片机交通灯控制系统程序c语言
/******************************************************************************
**********
****************************** 单 片 机 交 通 灯 实 时 控 制 系 统
***********************************
模块名称:jtd.c
说 明: 数码管段地址74HC373(U2)FE00、位地址74HC373(U3)为FD00
G1选通FE00、G2 选通FD00、G3选通FB00、G4 选通EF00、G5选通F700
共阴极数码管显示0 1 2 3 4 5 6 7 8 9
0X7E 0XOC 0XB6 0X9E 0XCC 0XDA 0XFA 0X0E 0XFE
0XDE
四个方向的标识: 南(S)北(N) 东 (E) 西 (W)
两位数码管的标识:北向N1N2,南向S1S2、西向W1W2、东向E1E2
指示灯标识:G(绿)Y(黄)R(红)L(左转弯)F(直行)M(人行)
例如:北向左转弯灯行 用NLG; 左转弯等待 用NLY ;左转弯停 用NLR
程序设计:GYX
设计时间
修改时间
*******************************************************************************
**********/
#include //内含单片机寄存器地址
#include//访问绝对地址 XBYTE
unsignedchar Set_time[8];
bit Set_flag,flag,fsec;
unsignedcharNSLGtime,NSLYtime,NSFGtime,NSFYtime,NStime;
unsignedcharWELGtime,WELYtime,WEFGtime,WEFYtime,WEtime;
unsignedcharT,count,Tab,Set_num,key,p;
//函数声明
void cpuInit(void);//cpu 初始化
voidDisplay(void);//显示运行时间
void Set_bitDisplay();//显示设定时间
voidkey_analyse(void);//键处理程序
voidKv_Set(void); //设置键
voidKv_Enter(void); //确定键
voidKv_Up(void); //加键
voidKv_Down(void); //减键
void smec(unsigned charx);//延时子程序
//0 1 2 3 4 5 6 7 8 9
unsignedcharTAB1[10] {0x7E,0x0C,0xB6,0x9E,0xCC,0xDA,0xFA,0x0E,0xFE,0xDE};
/**********************************************************************
函 数 名:main()
功 能,主程序不断查询有键按下
说 明:主函数
入口参数:无
返 回 值:无
设 计:GYX 日期
修 改: 日期:
***********************************************************************/
main()
{
cpuInit();
while(1)
{
key_analyse();//查询是否有键按下
if(Set_flag)
{
Set_bitDisplay();
}
else
{
Display(); //显示