文档详情

基于单片机的交通灯控制系统程序c语言.doc

发布:2017-09-16约1.35万字共12页下载文档
文本预览下载声明
/**************************************************************************************** ******************************单片机交通灯实时控制系统*********************************** 模块名称: 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 设计时间 修改时间*****************************************************************************************/ #includereg52.h //内含单片机寄存器地址 #includeabsacc.h //访问绝对地址 XBYTE unsigned char Set_time[8]; bit Set_flag,flag,fsec; unsigned char NSLGtime,NSLYtime,NSFGtime,NSFYtime,NStime; unsigned char WELGtime,WELYtime,WEFGtime,WEFYtime,WEtime; unsigned char T,count,Tab,Set_num,key,p; //函数声明 void cpuInit(void); //cpu初始化 void Display(void); //显示运行时间 void Set_bitDisplay();//显示设定时间 void key_analyse(void); //键处理程序 void Kv_Set(void); //设置键 void Kv_Enter(void); //确定键 void Kv_Up(void); //加键 void Kv_Down(void); //减键 void smec(unsigned char x); //延时子程序 //0 1 2 3 4 5 6 7 8 9 unsigned char TAB1[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(); //显示 switch(T) { case 1 :XBYTE[0XFB00]=0XAD;//NS左转行,直行停 人行左停
显示全部
相似文档