历史上的今天
今天是:2024年12月05日(星期四)
2020年12月05日 | 带中断的单片机红绿灯
2020-12-05 来源:51hei

带中断的单片机红绿灯源程序:
#include #include #define uchar unsigned char sbit c=P1^1; sbit d=P1^4; uchar led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9数码管显示 void delay1(uchar j)//延时若干ms {uchar i; while(j--) {for(i=0;i<125;i++) for(i=0;i<125;i++);} } void delay(uchar i) //延时1秒钟 { unsigned char a,b,c; while(i--) {for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--); _nop_; } } void nanbei(uchar a)//南北显示红绿灯 {uchar j=100; P1=0X24; for(a;a>0;a--) { while(j--) { P0=0XFE; P2=led[a/10];//显示十位倒计时 delay1(5);//延时5毫秒,给机器一点反应时间 P0=0XFd; P2=led[a%10];//显示个位倒计时 delay1(5);//延时5毫秒,给机器一点反应时间 if(a<=3)//如果a小于3,则开始黄灯闪烁 { P1=0X12; delay1(10); P1=0X00; delay1(10); } } } } void dongxi(uchar a)//东西显示红绿灯 {uchar j=100; P1=0X09; for(a;a>0;a--) { while(j--) { P0=0XFB; P2=led[a/10];//显示十位倒计时 delay1(5);//延时5毫秒,给机器一点反应时间 P0=0XF7; P2=led[a%10];//显示个位倒计时 delay1(5);//延时5毫秒,给机器一点反应时间 if(a<=3)//如果a小于3,则开始黄灯闪烁 { P1=0X12; delay1(10); P1=0X00; delay1(10); } } } } main() {EA=1;//允许中断 EX0=1;//允许外部中断0 IT0=1;//跳沿触发 while(1) {dongxi(15);//东西通行时间15秒 nanbei(30);//南北通行时间30秒 } } void into(void) interrupt 0 //外部中断0函数,用于强行更改红绿灯方向 {uchar i,j=1000,b; P0=0XFF; P1=P1&0X01;//判断如果P1最后一位为1,则东西方向为绿灯,南北方向为红灯 if(P1==0X01) {P1=0X08; for(b=0;b<3;b++) {{for(i=0;i<10;i++)//黄灯闪烁次数 {delay1(100); c=~c; delay1(100); }}} P1=0Xe4; delay(10);//改变之后的时间延时10秒 } else {P1=0X04; for(b=0;b<3;b++) {{for(i=0;i<10;i++) {delay1(100); d=~d; delay1(100); }}} P1=0X09; delay(10);//改变之后的时间延时10秒 }}
史海拾趣
|
2000年到2009年十年间,中国的IC设计公司的命运跌宕起伏。十年来,始终没有一家IC公司能够在中国市场扛起旗帜,可谓是各领风骚一二年。天天谈芯 成立于1999年10月的中星微电子,除了CMOS数码图像处理芯片“星光N号”取得成功,公司依靠“星光中国 ...… 查看全部问答> |
|
lock_kernel(); mixer.busy = 0; module_put(dmasound.mach.owner); unlock_kernel(); --------------lock_kernel(); unlock_kernel();----- ...… 查看全部问答> |
|
想问一下,我打通ZigBee串口,每次只可读写一次,不知道是那里的毛病,并且用linux下的串口也是这样,希望大家指导一下,谢谢 想问一下,我打通ZigBee串口,每次只可读写一次,不知道是那里的毛病,并且用linux下的串口也是这样,希望大家指导一下,谢谢… 查看全部问答> |
|
在网上搜了很多EVC4.0用ADO访问数据的,大多数都说是使用ADOCE3.1,就是那一堆注册什么Dll的,并有一个例子。我在WM5.0的机子上试过了,有一个DLL无法注册,程序可以正常运行(至少那个例子是正常运行了),有人说在Wince 4.2和WM5.0上没有实验过。 ...… 查看全部问答> |




