实验一
使用KETL5 建立工程文件,编写红绿灯控制程序,,在实验箱上搭建电路, 实现功能演示。具体功能为:开始两红灯亮,数码管从3秒递减,当显示0时,东西路口的绿灯亮时,南北路口的红灯亮,数码管开始从9秒递减,当显示0时,东西路口绿灯灭,南北路口红灯不变,数码管开始从3秒递减,每递减一次东西路口黄灯闪烁1次,当显示0时,然后东西路口红灯亮,南北路口红灯灭,绿灯亮,数码管开始从9秒递减,当显示0时,南北路口绿灯灭,东西路口红灯不变,数码管开始从3秒递减,每递减一次南北路口黄灯闪烁1次,当显示0时,然后东西路口的绿灯亮时, 南北路口的红灯亮, 数码管开始从9秒递减,然后重复上述操作。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint t)
{
uint i;
while(t--)for(i=0;i<80;i++);
}
void main()
{
uchar i;
while(1)
{
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x36;
delay(1000);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x2e;
delay(1000);
}
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x1e;
delay(500);
P1=0x3e;
delay(500);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x35;
delay(1000);
}
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x33;
delay(500);
P1=0x37;
delay(500);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x2e;
delay(1000);
}
}
}
Proteus8仿真图如图所示:
实验二
加入外部中断0,修改程序实现,当有急救车到达时,按下应急按键,两个方向上的红灯同时亮,数码管开始从9秒递减,以便让急救车通过,当数码管显示0时,急教车通过后,交通灯和数码管恢复中断前的状态。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint t)
{
uint i;
while(t--)for(i=0;i<80;i++);
}
void int0() interrupt 0
{
uchar i;
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x36;
delay(1000);
}
}
void main()
{
uchar i;
EA=1;//quanjv
EX0=1;//waibu
IT0=1;//bianyan
while(1)
{
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x36;
delay(1000);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x2e;
delay(1000);
}
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x1e;
delay(500);
P1=0x3e;
delay(500);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x35;
delay(1000);
}
for(i=4;i>0;i--)
{
P0=dis_code[i-1];
P1=0x33;
delay(500);
P1=0x37;
delay(500);
}
for(i=10;i>0;i--)
{
P0=dis_code[i-1];
P1=0x2e;
delay(1000);
}
}
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/2301_77975422/article/details/143865443
|