标题:
简易单片机交通灯显示系统仿真,带有急停功能
[打印本页]
作者:
liuyiryigr
时间:
2017-5-30 21:20
标题:
简易单片机交通灯显示系统仿真,带有急停功能
单片机交通灯仿真图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(33.77 KB, 下载次数: 55)
下载附件
2017-5-30 21:25 上传
原理图:
单片机源程序如下:
#include "reg51.h"
unsigned char t0,t1;//定义全局变量,用来保存延时时间的循环次数
unsigned char i,j,k,l,m;
void delay0_10s1()
{
for(t0=0;t0<20;t0++)//采用全局变量作为循环控制变量
{
TH1=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
TL1=(65536-46080)%256;//46080的来历,为50000*11.0592/12
TR1 = 1;//启动T1
while(!TF1);//查出计数是否溢出,即50ms定时时间一到,TF1 = 1
TF1 = 0;
}
}
void delay_t1 (unsigned char t)
{
for (t1 = 0;t1<t; t1++)
delay0_10s1();
}
void int_0() interrupt 0//紧急情况中断
{
unsigned char i,j,k,l,m;
i = P1;
j = t0;
k = t1;
l = TH1;
m = TL1;
P1 = 0xdb;
delay_t1 (20);
P1 = i;
t0 = j;
t1 = k;
TH1 = l;
TL1= m;
}
void main() //主函数
{
//unsigned char k;
TMOD = 0x10;//T1设置为工作方式1
EA = 1; //开总中断允许位
EX0 = 1; //开外部中断0允许位
IT0 = 1; //设置外部中断0为下降沿触发
while(1)
{
P1 = 0xde; //A红灯,B绿灯,延时10秒
delay_t1(20);
P1 = 0xdd; //A红灯,B黄灯,延时3秒
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
仿真:
交通灯系统控制电路.rar
(93.93 KB, 下载次数: 15)
2017-5-30 21:19 上传
点击文件名下载附件
这是仿真图
下载积分: 黑币 -5
程序:
交通信号灯.rar
(22.8 KB, 下载次数: 25)
2017-5-30 21:20 上传
点击文件名下载附件
这是源程序
下载积分: 黑币 -5
作者:
jie951
时间:
2017-6-3 18:56
感谢分享谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1