資源簡介
自己用51單片機編的一個小程序,就是可以實現交通燈的,紅綠燈轉換。
代碼片段和文件信息
#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
sbit?SNred=P1^0;//南北方向紅燈
sbit?SNyel=P1^1;//南北方向黃燈
sbit?SNgre=P1^2;//南北方向綠燈
sbit?EWred=P1^3;//東西方向紅燈
sbit?EWyel=P1^4;//東西方向黃燈
sbit?EWgre=P1^5;//東西方向綠燈
sbit?dula=P2^6;
sbit?wela=P2^7;
uchar?code?table[]={
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x710};//共陰極數碼管顯示的從0到F的字符編碼
uchar?shigeflag=0timeflag1;
char?numshu;
uint?t0t1;
void?delay(uint?x)
{
uint?yz;
for(y=x;y>0;y--)
for(z=110;z>0;z--);
}
void?init()
{
TMOD=0x11;//選擇定時器0和定時器1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
num=10;
shu=5;
}
void?display(uchar?auchar?buchar?c)
{
dula=1;
P0=table[a];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(1);
dula=1;
P0=table[b];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(1);
dula=1;
P0=table[c];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay(1);
}
void?main()
{
init();
P0=0xff;
while(1)
{
switch(time)
{
case?0: SNyel=1;
EWred=1;
SNred=0;
EWgre=0;
break;
case?1:?SNred=1;
EWgre=1;
SNgre=0;
EWyel=0;
break;
case?2:?SNgre=1;
EWyel=1;
SNgre=0;
EWred=0;
break;
case?3: SNgre=1;
EWred=1;
SNyel=0;
EWred=0;
break;
}
if(flag1==1)
display(shige17);
if(flag==1)
disp
- 上一篇:《c語言代碼大全》源代碼
- 下一篇:一個簡單的移位密碼的解密算法
評論
共有 條評論