标题:
51单片机十字路口交通灯Proteus仿真图和源码
[打印本页]
作者:
kkzzr
时间:
2017-5-9 20:22
标题:
51单片机十字路口交通灯Proteus仿真图和源码
51单片机十字路口交通灯
proteus仿真原理图:
0.png
(39.51 KB, 下载次数: 67)
下载附件
2017-5-9 23:10 上传
0.png
(66.89 KB, 下载次数: 86)
下载附件
2017-5-9 23:09 上传
单片机源码:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define PA 0xf8ff
#define PB 0xf9ff
#define PC 0xfaff
#define CTRL XBYTE[0xfbff]
sbit KEY1 = P3^0;
sbit KEY2 = P3^1;
uint i=0, cnt = 0;
uchar table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void IntConfiguration();
void TimeConfig();
void display(int, int, uint, uint, uint, uint);
void delay(int);
void main()
{
CTRL = 0x80;
IP = 0x05;
IntConfiguration();
TimeConfig();
while(1)
{
if(cnt < 55)
{
XBYTE[PA] = 0x33;
display(PB, PC, (54-cnt)/10,(54-cnt)%10, (59-cnt)/10,(59-cnt)%10);
}
else if(cnt >= 55 && cnt < 60)
{
XBYTE[PA] = 0x35;
display(PB, PC, (59-cnt)/10,(59-cnt)%10, (59-cnt)/10,(59-cnt)%10);
}
else if(cnt >= 60 && cnt < 85)
{
XBYTE[PA] = 0x1e;
display(PB, PC, (89-cnt)/10,(89-cnt)%10, (84-cnt)/10,(84-cnt)%10);
}
else if(cnt >= 85 && cnt < 90)
{
XBYTE[PA] = 0x2e;
display(PB, PC, (89-cnt)/10,(89-cnt)%10, (89-cnt)/10,(89-cnt)%10);
}
}
}
void display(int x, int y, uint a,uint b, uint c, uint d)
{
P1 = 0x0e;
XBYTE[x] = table[a];
delay(1);
P1 = 0x0d;
XBYTE[x] = table[b];
delay(1);
P1 = 0x0b;
XBYTE[y] = table[c];
delay(1);
P1 = 0x07;
XBYTE[y] = table[d];
delay(1);
P1 = 0x0f;
}
void delay(int z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void IntConfiguration()
{
IT0=0;
EX0=1;
IT1=0;
EX1=1;
EA=1;
}
void TimeConfig()
{
TMOD = 0x01;
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Int0() interrupt 0
{
XBYTE[PA] =0x36;
display(PB, PC, 0, 0, 0, 0);
}
void Int1() interrupt 2
{
if(KEY1 == 0)
XBYTE[PA] = 0x33;
if(KEY2 == 0)
XBYTE[PA] = 0x1e;
display(PB, PC, 0, 0, 0, 0);
}
void mytimer() interrupt 1
{
uint flag = 0;
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
i++;
if(i >= 100)
{
i = 0;
flag = 1;
}
if(flag == 1)
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
交通灯.rar
(96.13 KB, 下载次数: 37)
2017-5-9 20:21 上传
点击文件名下载附件
原理图及源码
下载积分: 黑币 -5
作者:
wuxin2004
时间:
2017-6-23 11:27
很好的资料
作者:
sz15207554653
时间:
2017-6-24 10:41
一个交通灯写的那么复杂!
作者:
sudan
时间:
2017-11-29 10:06
源代码编译提示有个错
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1