急求啊~~~用标准51单片机制作交通灯的代码啊!!!(要求在下)
发布网友
发布时间:2022-04-29 09:27
我来回答
共1个回答
热心网友
时间:2022-06-25 11:23
/*******************************************************************
交通灯篇
功能简介:用数码管和八个LED发光二级管模拟出红交通灯的灯绿灯黄三种情
形,当黄灯剩下三秒时,数码管上数字闪烁显示出剩余时间,同时LED在绿灯与
红灯状态下来回切换。
实施步骤:步骤1:完成数码管的显示功能,开启定时器0,完成红灯功能;步骤2:完成绿灯功能;步骤3:完成黄灯功能,开始让黄灯,LED闪烁。
********************************************************************
********************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^3; //蜂鸣器与数码管的段选与位选的重定义
sbit wela=P2^7;
sbit la=P2^6;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,
0x79,0x71,0x00}; //数码管数字编码数组
uchar num,flag; //变量定义,flag用来控制显示信息,num用来计数
int red=59,green=60,yellow=4;
void delay(uint z)
{
uint i,j;
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
void timeinit()
{
TMOD=0x01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
EA=1;
ET0=1;
TR0=1;
}
void timedelay() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
num++;
if(num==20)
{
num=0;
if(flag==0) //红灯60秒倒计时
{
red--;
if(red==-1)
{
red=59;
flag=1;
}
}
if(flag==1)
{
green--; //绿灯60秒倒计时
if(green==-1)
{
green=60;
flag=2;
}
}
if(flag==2)
{
yellow--;
if(yellow==-1) //黄灯3秒倒计时
{
yellow=4;
flag=0;
}
}
}
}
void leddisplay(uchar date) //分别在数码管的第六,五位显示数据的个十位
{
uchar shi,ge;
shi=date/10;
ge=date%10;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
P0=0;
la=1;
P0=table[shi];
la=0;
delay(5);
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
P0=0;
la=1;
P0=table[ge];
la=0;
delay(5);
}
void leddisplay1(uchar date) //显示黄灯倒计时函数
{
uchar shi,ge;
shi=date/10;
ge=date%10;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
P0=0;
la=1;
P0=table[ge];
la=0;
delay(5);
}
void display() //清除数码管显示函数
{
P0=0xff;
wela=1;
P0=0xff;
wela=0;
}
int main()
{
beep=1;
timeinit();
while(1)
{
if(flag==0)
{
leddisplay(red); //显示红灯倒计时,八个发光二级管同时亮起,标志交通灯为红灯状态
P1=0;
}
if(flag==1)
{
leddisplay(green); //显示绿灯倒计时,奇数的四个发光二级管同时亮起,标志交通灯为绿灯状态
P1=0xaa;
}
if(flag==2)
{
leddisplay1(yellow); //显示黄灯倒计时,并且是以闪烁形式完成,同时蜂鸣器每隔200ms响一次,八个发光二级管在绿灯与红灯状态下来回切换
beep=0;
P1=0xaa;
delay(200);
display();
beep=1;
P1=0;
delay(200);
}
}
return 0;
}
急求啊~~~用标准51单片机制作交通灯的代码啊!!!(要求在下)
实施步骤:步骤1:完成数码管的显示功能,开启定时器0,完成红灯功能;步骤2:完成绿灯功能;步骤3:完成黄灯功能,开始让黄灯,LED闪烁。/ include <reg52.h> define uchar unsigned char define uint unsigned int sbit beep=P2^3; //蜂鸣器与数码管的段选与位选的重定义 sbit wela=P2^7;sb...
无源蜂鸣器与有源蜂鸣器的区别是什么?
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里...
c51单片机c语言交通灯的程序
sbit k5=P3^1;sbit Yellow_nb=P2^5; //南北黄灯标志 sbit Yellow_dx=P2^2; //东西黄灯标志 sbit Green_nb=P2^4;sbit Green_dx=P2^1;sbit Buzz=P3^7;bit Buzzer_Indicate;bit time=0;//灯状态循环标志 bit set=1;//调时方向切换键标志 uchar code table[11]={ //...
求用C语言编写的交通灯程序,C51单片机控制,无左转右转
//南北道 黄灯亮3秒 红灯亮 30秒 黄灯3秒 绿灯38秒 //东西道 黄灯亮3秒 绿灯亮 28秒 黄灯3秒 红灯40秒 sbit PortDX_Yellow = P1^0; //东西方向黄灯 sbit PortDX_Red = P1^1; //东西方向红灯 sbit PortDX_Green = P1^2; //东西方向绿灯 sbit PortNB_Yellow = P1^3; //南北...
c51单片机控制交通灯要求用汇编语言
// 51单片机控制交通灯要求用汇编语言,仿真实例,可以参考一下 SNF EQU 00H ; 南北通行标志位 EWF EQU 01H ; 东西通行标志位 URF EQU 02H ; 紧急事件标志位 ORG 0000H LJMP MAIN ; 上电转主程序 ORG 000BH ; 定时中断入口 LJMP DSZD ORG 0003H ...
单片机中的交通灯代码
include<reg51.h>#define uchar unsigned char#define uint unsigned int//定义三个灯sbit sw1=P3^0; sbit sw2=P3^1;sbit sw3=P3^2;sbit key_ew=P3^3;sbit key_sn=P3^4;sbit BZ=P3^5;uchar TH,TL; uchar SN=30,EW=25,NN=60;uint tt,ii,jj,kk;//数码管,应该是7seg,0-9...
基于51单片机的交通灯控制设计
include<reg51.h> define uchar unsigned char define uint unsigned int sbit RED_A=P0^0; //东西向灯 sbit YELLOW_A=P0^1;sbit GREEN_A=P0^2;sbit RED_B=P0^3; //南北向灯 sbit YELLOW_B=P0^4;sbit GREEN_B=P0^5;uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型...
急求:51单片机 交通灯控制
N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0DDH MOVX @DPTR,A N14: MOV R4,#00H CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N1 ;闪烁时间达5秒则退出 ;--- N2: MOV R7,#00H MOV A,R0 ;东西通行,南北禁止 MOV R3,A MOV DPT...
单片机交通灯程序
采用51单片机作为系统的MCU,基本完成控制两组交通指示灯交替亮 每个街口有左拐、直行及行人三种指示灯。直行灯每个灯有红、黄、绿三种颜色。自行车与汽车共用左拐和直行灯。首先东西向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒(同时南北向红灯亮95秒),然后东西向红灯亮95秒钟(同时首先南北...
基于51单片机控制交通灯的电路图与C语言程序
在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。四、软件程序(C语言)以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。//***// //程序名:十字路口交通灯控制 //编写人:黄庭剑 //初写时间:2009年1月2日 //...
用单片机模拟控制交通灯
你也可到“淘宝网”上找找:“51单片机交通灯控制系统C语言设计源程序送仿真图”,有现成的,有实物图、仿真、原理图、源程序等,这款交通灯有以下功能。1. 系统除基本交通灯功能外;2. 还具有倒计时、显示时间设置;3. 紧急情况处理、LED信息显示;4. 时间可以根据具体情况手动控制等功能。