红绿灯C语言程序

时间:2022-07-15 11:14:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


红绿灯C语言程序

(P0口接数码管,平口接发光二极管)

#include

#define uchar unsigned char #define uint unsigned int uchar i=0,c=0,s=1;// m_flag=1;//

////////////////////////////////////// void dxlv1_nbh1(void) // {

P1=0x5a; }

void dx0_nbh1(void) // {

P1=0x0a; }

void dxh1_nbl1(void) // {

P1=0xa5; }

void dxh1_nb0(void) // {

P1=0xa0; }

void nbs(void) // 南北灯闪 {

if(m_flag==1){dxh1_nb0();} else {dxh1_nbl1();} }

void dxs(void){ // 东西灯闪 if(m_flag==1){dx0_nbh1();} else {dxlv1_nbh1();} }

//////主程序////////////////// void main() {

TMOD=0x01;//定时器0工作在方式1 TH0=-5000/256;//50ms TL0=-5000%256;//20ms

IE=0x82;///允许定时器0中断




TR0=1;///启动定时器0 while(1){

//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

if(s==10){P0=0x3f;} // 东西绿灯亮,南北红灯亮 倒计时开始 if(s==9)P0=0x06; if(s==8)P0=0x5b; if(s==7)P0=0x4f; if(s==6)P0=0x66; if(s==5)P0=0x6d; if(s==4)P0=0x7d; if(s==3)P0=0x07; if(s==2)P0=0x7f;

if(s==1){P0=0x6f;P1=0x5a;}

if(s>9&&s<13){dxs();} //10秒结束 if(s==13){dxh1_nbl1(); P0=0x6f; if(s==22){P0=0x3f;} if(s==21)P0=0x06; if(s==20)P0=0x5b; if(s==19)P0=0x4f; if(s==18)P0=0x66; if(s==17)P0=0x6d; if(s==16)P0=0x7d; if(s==15)P0=0x07; if(s==14)P0=0x7f;

if(s>21&&s<25){nbs();} //10秒结束 if(s==25){s=1; }// s归位 } }

/////T0中断子程序//////////// void T0_INT()interrupt 1 {

TH0=-50000/256;//50ms TL0=-50000%256; if(c==10)m_flag=0;

c++;if(c==20)//50ms*20=1s {m_flag=1; c=0;

s++;//s清零 }

南北红灯继续,东西绿灯一秒一闪 闪三次}//东西红灯亮,南北绿灯亮 倒计时开始 东西向红灯亮继续,南北绿灯一秒一闪三次


}




本文来源:https://www.wddqw.com/doc/078b4054ad02de80d4d840c0.html