如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharsbitP32=P3^2;sbitP33=P3^3;sbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;sbitdula=P2^6;sbitwela=P2^7;sbitfmq=P2^3;uintshu;ucharxianshi,xianshi2;ucharaa,bb,cc,dd;ucharcodetablewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidDelay(unsignedinti);voiddelayms(uintz);voidinit()//初始化函数{shu=0;xianshi=30;xianshi2=35;aa=3;bb=0;cc=3;dd=5;P0=0xff;P1=0;TMOD=0x01;//用定时器0方式1EA=1;//打开中断ET0=1;//打开定时器0中断TL0=25536/256;TH0=25536%256;EX0=1;//外部中断0EX1=1;//外部中断1IT0=0;//外部中断0电平触发IT1=0;//外部中断1电平触发PX1=1;//设定外部中断1为高优先级}voiddelayms(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidDelay(unsignedinti)//延时程序{unsignedintj;for(;i>0;i--)for(j=0;j<60;j++){;}}voiddisplay(uchara,ucharb,ucharc,uchard){wela=1;P0=0xfe;wela=0;dula=1;P0=table[a];//北十位dula=0;Delay(2);wela=1;P0=0xfd;wela=0;dula=1;P0=table[b];//北个位dula=0;Delay(2);wela=1;P0=0xfb;wela=0;dula=1;P0=table[c];//西十位dula=0;Delay(2);wela=1;P0=0xf7;wela=0;dula=1;P0=table[d];//西个位dula=0;Delay(2);}voidtimer0()interrupt1using1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;shu++;if(shu%20==0){xianshi--;xianshi2--;aa=xianshi/10;bb=xianshi%10;cc=xianshi2/10;dd=xianshi2%10;}if(shu==600){P1=0xf5;//南北黄亮,东西依然红灯xianshi=5;}if(shu==700){P1=0xDE;//南北亮红灯,东西绿灯xianshi=35;xianshi2=30;}if(shu==1300){P1=0xee;//东西亮黄灯,南北红灯xianshi2=5;}if(shu==1400)//再过5s返回{shu=0;xianshi=30;xianshi2=35;P1=0xf3;//点亮南北绿灯,东西红灯}}voidinter0()interrupt0using2//南北方向绿灯{P0=0xff;P1=0xf3;//南北绿东西红while(P32==0){};P1=0xDE;xianshi=30;shu=700;aa=3;bb=0;cc=3;dd=5;}voidinter1()interrupt2using3//东西方向绿灯{P0=0xff;P1=0xDE;//东西绿南北红while(P33==0){};P1