文档详情

DXP 交通信号指示灯 单片机.ppt

发布:2017-05-24约2.54千字共15页下载文档
文本预览下载声明
简易交通灯电路 设计要求: 南北、东西方向交通灯显示时间一样 红绿灯均显示30秒,红灯绿灯切换时黄灯显示2秒 红黄绿灯用发光二极管表示,并且显示出时间 用单片机实现功能 最小系统 电路图 管口分配: P1.0 ~ P1.7 a ~ h P0.0 东西向数码管十位 P0.1 东西向数码管个位 P0.2 南北向数码管十位 P0.3 南北向数码管个位 P2.0 ~ P2.2 东西向绿黄红灯 P2.3 ~ P2.5 南北向红黄绿灯 数码管管脚实际分配 P1.0 b P1.1 a P1.2 f P1.3 g P1.4 h P1.5 c P1.6 d P1.7 e a P1.1 b P1.0 c P1.5 d P1.6 e P1.7 f P1.2 g P1.3 h P1.4 C程序 #includereg51.h #define uchar unsigned char #define uint unsigned int uchar TAB[10]={0x18,0xde,0x34,0x94,0xd2,0x91,0x11,0xdc,0x10,0x90}; sbit Y=P2^1; sbit R=P2^2; sbit y=P2^4; sbit r=P2^3; void delay(uint k) //延时程序 { unsigned char h,m; while(k--) { for(h=5;h0;h--) for(m=214;m0;m--); } } void main() //主程序 { uint i=65,a,b,c,d,e,f,g,h,A,B,C,D; while(i--){ P2=0xff; g=58; h=2; if(i=68i=38) { a=i-38; d=i-35; A=a/10; B=a%10; C=d/10; D=d%10; while(g--) { P0=0x01; P1=TAB[A]; P2=0xf6; delay(h); P1=0xff; P0=0x02; P1=TAB[B]; P2=0xf6; delay(h); P1=0xff; P0=0x04; P1=TAB[C]; P2=0xf6; delay(h); P1=0xff; P0=0x08; P1=TAB[D]; P2=0xf6; delay(h); P1=0xff; } } if(i38i=35) { a=i-35; d=i-35; A=a/10; B=a%10; C=d/10; D=d%10; while(g--) { if(g=15) Y=0; if(g15g=30) Y=1; if(g30g=45) Y=0; if(g45) Y=1; P0=0x01; P1=TAB[A]; r=0; delay(h); P1=0xff; P0=0x02; P1=TAB[B]; r=0; delay(h); P1=0xff; P0=0x04; P1=TAB[C]; r=0; delay(h); P1=0xff; P0=0x08; P1=TAB[D]; r=0; delay(h); P1=0xff; } } if(i35i3) { b=i-1; e=i-4; A=b/10; B=b%10; C=e/10; D=e%10; while(g--) { P0=0x01; P1=TAB[A]; P2=0xdb; delay(h); P1=0xff; P0=0x02; P1=TAB[B]; P2=0xdb; delay(h); P1=0xff; P0=0x04; P1=TAB[C]; P2=0xdb; delay(h); P1=0xff; P0=0x08; P1=TAB[D]; P2=0xdb; delay(h); P1=0xff; } }
显示全部
相似文档