模拟交通灯仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
模拟交通灯单片机源程序如下:
- # include <absacc.h>
- # define PORTB XBYTE[0X7FFA]
- # define CONTROL XBYTE[0X7FF8]
- void delaylong(void);
- void delayshort(void) ;
- void main(void)
- {
-
- CONTROL=0X02;//设定工作方式
- PORTB=0XFF;//关闭所有LED
-
- while(1)
- {
- PORTB=0X36;//南北绿,东西红
- delaylong();
- PORTB=0X37;//东西红
- delayshort();
- PORTB=0X35;//南北黄,东西红 南北黄灯闪第1次
- delayshort();
- PORTB=0X37;//东西红
- delayshort();
- PORTB=0X35;//南北黄,东西红 南北黄灯闪第2次
- delayshort();
- PORTB=0X37;//东西红
- delayshort();
- PORTB=0X35;//南北黄,东西红 南北黄灯闪第3次
- delayshort();
- PORTB=0X1B;//东西绿,南北红
- delaylong();
- PORTB=0X3B;//南北红
- delayshort();
- PORTB=0X2B;//东西黄,南北红 南北黄灯闪第1次
- delayshort();
- PORTB=0X3B;//南北红
- delayshort();
- PORTB=0X2B;//东西黄,南北红 南北黄灯闪第2次
- delayshort();
- PORTB=0X3B;//南北红
- delayshort();
- PORTB=0X2B;//东西黄,南北红 南北黄灯闪第3次
- delayshort();
- }
- }
- //延时函数
- void delaylong()
- {
- unsigned j,k,m;
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
实验四.rar
(60.02 KB, 下载次数: 21)
|