资源简介
51单片机Protues,仿真交通灯。程序+仿真
代码片段和文件信息
#include // 对单片机的口进行了定义
#define uint unsigned int
#define uchar unsigned char
uchar code a[10]={0x400x790x240x300x190x120x020x780x000x10};//段码组合共阳极
uchar code b[4]={0x010x020x040x08}; //位码组合
uchar code c[4]={0xcc0xd40x780xb8};/*P1 绿红、黄红、红绿、红黄*/
//12MHz
//*************************************************************************************
uchar NB=25DX=30NBG=25DXG=15H=5; /*数码管显示值设置*/
uchar ik=0cnt=0j=0;
sbit K0=P3^4; /*支干道通行*/
sbit K1=P3^5; /*主干道通行*/
sbit K4=P3^6; /*返回*/
sbit K3=P3^2; /*设置时间*/
sbit K2=P3^3; /*紧急刹车*/
void delay(uchar t); /*定义延时程序*/
void key(); /*定义键盘程序*/
void display(); /*定义显示程序*/
void settime(); /*定义时间设置显示程序*/
//*************************程序初始*********************************************
void init(void)
{
TMOD=0x01; /*使用定时器0模式一*/
TH0=0x3c; /*(65536-5000)/256*/
TL0=0xb0; /*(65536-5000)%256*/
IT0=1; //开中断
ET0=1;
TR0=1;
EA=1;
EX0=1;
EX1=1;
P1=c[k]; //开启交通灯
}
//*************************中断0处理程序***************************************
void int0(void) interrupt 0 // 通行时间设置
{
EA=0;
P1=0xd8; /*红灯全亮*/
for(;;)
{
settime();
if(K1==0) /*P3^6=0设置主干道通行时间*/
{
delay(40);
if(K1==0)
{
while(!K1)
{settime();}
DXG++; /*主干道通行时间加1*/
if(DXG==100)
DXG=0;
}
}
if(K0==0) /*P3^5=0设置支干道通行时间*/
{
delay(40);
if(K0==0)
{
while(!K0)
{settime();}
NBG++; /*支干道通行时间加1*/
if(NBG==100)
NBG=0;
}
}
if(K4==0) /*P3^7=0返回*/
{
delay(40);
if(K4==0)
{
while(!K4)
{
}
k=0;P1=c[k];
NB=NBGDX=NBG+H;
display();
EA=1;
break;
}
}
}
}
//***********************************中断1处理程序********************
void int1(void) interrupt 2 //紧急情况
{
/*东西南北红灯亮*/
EA=0;
TR0=!TR0; /*停止计数*/
for(;;) /*主支干道显示全为0*/
{
P1=0xd8
P0=a[0];
P2=b[0];
delay(20);
P2=b[1];
delay(20);
P2=b[2];
delay(20);
P2=b[3];
delay(20);
if(K4==0) /*返回*/
{
delay(20);
EA=1;
P1=c[k]; /*返回紧急前状态开始计数*/
TR0=!TR0; /*重启计数*/
break;
}
}
}
void time1(void) interrupt 1 /*交通灯控制程序*/
{
TH0=0x3c; /*定时50ms*/
TL0=0xb0;
cnt++;
if(cnt>=20) /*每20*50ms=1s自减一*/
{
NB--;
DX--;
cnt=0;
if(NB==0||DX==0)
{
k++;
if(k>3) /*k取0123*/
k=0;
switch(k)
{
case 0:NB=NBGDX=NBG+H;j=0;P1=c[k];break; /*主干道通行显示绿红*/
case 1:NB=H;j=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 123979 2013-05-16 20:38 交通灯仿真\交通灯.DSN
文件 2950 2013-05-16 20:32 交通灯仿真\仿真交通灯.hex
文件 10185 2014-03-08 16:25 交通灯仿真\程序\交通灯
文件 5292 2014-03-08 16:20 交通灯仿真\程序\交通灯.c
文件 2950 2014-03-08 16:25 交通灯仿真\程序\交通灯.hex
文件 29 2014-03-08 16:25 交通灯仿真\程序\交通灯.lnp
文件 13825 2014-03-08 16:25 交通灯仿真\程序\交通灯.LST
文件 13500 2014-03-08 16:25 交通灯仿真\程序\交通灯.M51
文件 12057 2014-03-08 16:25 交通灯仿真\程序\交通灯.OBJ
文件 1018 2014-03-08 16:25 交通灯仿真\程序\交通灯.Opt
文件 1581 2014-03-08 16:25 交通灯仿真\程序\交通灯.plg
文件 1994 2013-11-27 11:05 交通灯仿真\程序\交通灯.Uv2
文件 1018 2014-03-08 16:14 交通灯仿真\程序\交通灯_Opt.Bak
文件 0 2013-11-27 10:57 交通灯仿真\程序\交通灯_Uv2.Bak
目录 0 2017-06-04 18:57 交通灯仿真\程序
目录 0 2017-06-04 18:57 交通灯仿真
----------- --------- ---------- ----- ----
190378 16
相关资源
- 51单片机Protues,仿真DS18b20温度传感器
- 51单片机Protues,通过ADC0809芯片仿真
- 基于RFID的同学签到系统的设计
- 51单片机寄存器详解
- 基于51单片机电炉丝加热控制仿真ke
- 基于51单片机仓库温度监控系统仿真设
- 基于51单片机多传感器楼道照明控制系
- 基于51单片机简易信号发生器仿真设计
- 51驱动继电器相关电路
- 51单片机Protues点阵广告屏仿真及实现
- 240128lcd驱动程序
- 基于8086的交通灯仿真 proteus电路图汇
- PLC 交通灯程序
- protues+8086+8255+步进电机仿真
- 51单片机心形闪烁配套资料
- 51单片机的串口采集温度程序
- 基于单片机智能交通灯
- 51单片机控制16位流水灯有源代码与
- 51单片机篮球记分器的设计
- 三线制实时时钟的读写
- 基于51单片机的温度控制系统最终版
- 基于51 单片机直流电机pwm控制
- ISD1700语音芯片 51单片机程序
- 矩阵键盘简易计算器Keil+proteus仿真.
- 基于51单片机的电机调速代码
- 51单片机12864显示波形程序
- Verilog HDL交通灯设计
- 传送带产品计数器的设计LCD显示51单片
- 智能交通灯控制系统_英文翻译
- 倒计时交通灯
评论
共有 条评论