红绿灯倒计时代码(红绿灯十字路东西红灯亮60秒,黄灯亮1秒,灭1秒,共10秒,绿灯亮50秒,单片机程序)
本文目录
- 红绿灯十字路东西红灯亮60秒,黄灯亮1秒,灭1秒,共10秒,绿灯亮50秒,单片机程序
- 单片机简单的红绿灯程序,要求只亮黄灯和绿灯,黄灯亮3秒后,绿灯亮倒计时用LED灯显示
- VB程序红绿灯设计
- 单片机交通灯程序每条代码的意思
- 急求KEIL C51 红绿灯程序!(用C语言!)
- 关于51单片机的红绿灯实验的C语言程序,注意是要C语言程序
- 用51单片机显示交通灯倒计时原理是什么
- 红绿灯倒计时拨码怎么拨
- 单片机C语言红绿灯程序,要求:数码管显示时间倒计时、16*16LED点阵显示模块显示红绿黄灯、
- 怎么用VB做红绿灯倒计时器
红绿灯十字路东西红灯亮60秒,黄灯亮1秒,灭1秒,共10秒,绿灯亮50秒,单片机程序
太简单,我的百度空间有类似的程序,改一下就行。你实在不会给我留言,我马上解决(下面程序就是你需要的) 设计一个交通灯模拟系统,要求 1南北方向和东西方向通行时间都是60秒 2绿灯变红灯时有10秒的黄灯闪烁时间,黄灯亮1秒,灭1秒 3设置两个LED,用于时间倒计时的显示 #include《regx51.h》 #define uchar unsigned char #define uint unsigned int sbit red1=P1^0;//红灯1(所有灯0亮,1灭) sbit yellow1=P1^1;//黄灯1 sbit green1=P1^2;//绿灯1 sbit red2=P1^3;//红灯2 sbit yellow2=P1^4;//黄灯2 sbit green2=P1^5;//绿灯2 bit change;//选择通行方向 uchar timer0_tick;//timer0_tick计数 uchar i=0,n=0,time=0,timer; code seven_seg={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//1,2,3, 4, 5, 6, 7, 8, 9 code scan={0xf7,0xfb,0xfd,0xfe}; uchar counter={0,0,0,0}; static void timer0_isr(void) interrupt 1 using 0 //中断函数,200次每秒,晶振为12M { TR0=0; TL0=0x00; TH0=0xee; TR0=1; i++; if(i==4) i=0; P0=seven_seg; P2=scan; timer0_tick=timer0_tick+1; if(timer0_tick==200) { timer0_tick=0; time=time+1; timer=timer-1; if(timer==0) { change=~change; timer=60;//重复计时 } if(time==60) { time=0;//重复计时 } } if(change==0) { if(time《=50)//南北 { green1=0;//南北向绿灯亮50秒 yellow1=1; red1=1; green2=1; yellow2=1; red2=0;//东西红灯亮50 } if(50《time&&time《=60) { n=n+1; if(n==200) { n=0; yellow1=~yellow1;//南北向黄灯闪烁10秒 } green1=1; red1=1; yellow2=1; green2=1; red2=0;//东西红灯继续亮 } } if(change==1) { if(time《=50)//东西 { red1=0;//南北向红灯亮50秒 yellow1=1; green1=1; red2=1; yellow2=1; green2=0;//东西绿灯灯亮50 } if(50《time&&time《=60) { red1=0;//南北向红灯继续亮10秒 yellow1=1; green1=1; red2=1; n=n+1; if(n==200) { n=0; yellow2=~yellow2;//东西向黄灯闪烁10秒黄灯亮1秒,灭1秒 } green2=1; } } counter=timer/10;//倒计时1的十位 counter=timer%10;//倒计时1的个位 counter=timer/10;//倒计时2的十位 counter=timer%10;//倒计时2的个位 } static void timer0_initialize(void)//中断初始化 { EA=0; timer0_tick=0; TR0=0; TMOD=0x01; TL0=0x00; TH0=0xee; PT0=0; ET0=1; TR0=1; EA=1; } void main(void) { timer=60; timer0_initialize(); while(1); }
单片机简单的红绿灯程序,要求只亮黄灯和绿灯,黄灯亮3秒后,绿灯亮倒计时用LED灯显示
要求只亮黄灯和绿灯,...---------没有红灯吗?怎么程序里面还有: /*红灯时是30秒倒计时*/ ?
VB程序红绿灯设计
1、 在桌面上,鼠标左键双击,打开VB编程软件,在左边工具栏上单击Image按钮,在Form1窗口上,绘制出图框,然后在Image属性面板的Picture属性上,单击【加载图片】按钮。
2、 接着,在弹出选取图片对话框,选择合适的红绿灯素材来体现效果,这里先选取了一张红灯的图片。
3、在Image属性面板的名称属性上,将其改名为red,标识后就不会与其他图混淆。
4、在VB编程的界面中也可以直接复制控件,如将red这个Image控件复制两个出来,不加入控件组,并将后两个依次改名为yellow、green。
5、 然后,将yellow图形控件与red控件重叠,并右键单击,在弹出的菜单中选择【移至底层】,放好后,green 图形控件放在最底层。三个图形控件依红、黄、绿的顺序叠加重合了。
6、接着,鼠标左键双击red图形控件,弹出输入代码窗口,在其上输入如下代码段。
单片机交通灯程序每条代码的意思
ORG 0000HLJMP MAIN ORG 000BH ;中断程序入口地址LJMP TIME_0ORG 0040HMAIN: MOV IE,#82H MOV TCON , #10H MOV TH0, #3CH MOV TL0,#0AFH ;定时器T0初始化 MOV R1,#20 ;定时累积RED: MOV R2,#30 ;R2为时间设定LOOP1: MOV A,R2 JZ GREEN ;R2为0时转到GREEN处,改变亮灯状态 CALL SHOW ;调用显示子程序,显示30s MOV P3,#0 SETB P3.0 LJMP LOOP1GREEN: MOV R2,#20LOOP2: MOV A,R2 JZ YELLOW ;R2为0时转到YELLOW 处,改变亮灯状态 CALL SHOW ;调用显示子程序,显示20s MOV P3,#0 SETB P3.1LJMP LOOP2YELLOW: MOV R2, #3 ;3s时间设定 MOV R0, #6 MOV P3, #00H SETB P3.2 ;闪烁位LOOP3: MOV A, R2 JZ RED MOV A, R0 JZ SHAN dec R0 CALL SHOW LJMP LOOP3SHAN: MOV R0, #6 CPL P3.2 LJMP LOOP3 SHOW: MOV A,R2 MOV B,#10 DIV AB ;二进制转十进制 MOV DPTR ,#TABL MOVC A,@A+DPTR ;查表 MOV P1,#0FFH MOV P1,A MOV P2,#00H SETB P2.1 CALL DELY MOV A,B MOV DPTR, #TABL MOVC A, @A+DPTR MOV P1, #0FFH MOV P1, A MOV P2, #00H SETB P2.2 CALL DELY RETDELY: ;延时子程序 D3: MOV R6, #100D2: MOV R7, #10D1: DJNZ R7, D1 DJNZ R6, D2 RETTIME_0: PUSH ACC ;保护现场 PUSH PSW MOV TH0, #3CH MOV TL0, #0AFH ;定时器T0初始化,定时50ms DJNZ R1, OUT_T0 ;计时1s后做如下工作 MOV R1, #20 DEC R2OUT_T0: POP PSW POP ACC RETITABL:DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90HEND
急求KEIL C51 红绿灯程序!(用C语言!)
//12M晶振
//共阴数码管
#include 《reg51.h》
sbit red=P1^0;
sbit green=P1^1;
sbit yellow=P1^2;
bit flag=1;
unsigned char code duan={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code wei={0xfd,0xfe};
unsigned char time=35;
void main()
{
void show_time();
void show_light();
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
red=0;
while(1)
{
show_time();
show_light();
}
}
void show_time()
{
void delay();
unsigned char num=time,i;
for(i=0;i《2;++i)
{
P2=wei;
P0=duan;
delay();
P0=0x00;
num/=10;
}
}
void delay()
{
int i;
for(i=1000;i;i--);
}
void show_light()
{
if(flag)
{
if(!time)
{
flag=0;
red=1;
green=0;
time=35;
}
}
else
{
if(time》0&&time《4)
{
green=1;
yellow=0;
}
if(!time)
{
yellow=1;
red=0;
flag=1;
time=35;
}
}
}
void dec_sec() interrupt 1
{
static count=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++count==20)
{
count=0;
time--;
}
}
关于51单片机的红绿灯实验的C语言程序,注意是要C语言程序
主函数部分:void main(void){ InitTimer1() ;Time=30;P1=0xFF;Flag=0;while(1){ if(Time==0) { if(Flag) Time=20; else Time=30; Flag=~Flag; } if(Time》3 && (!Flag)) { EastR=OFF; EastG=ON;WestR=OFF; WestG=ON;SouthR=ON; SouthG=OFF;NorthR=ON; NorthG=OFF;display(Time,1); } else if(Time》3 && Flag) { EastR=ON; EastG=OFF;WestR=ON; WestG=OFF;SouthR=OFF; SouthG=ON;NorthR=OFF; NorthG=ON;display(Time,0); }}}其他已发到邮箱啦
用51单片机显示交通灯倒计时原理是什么
void main()
{
P3 = 0;
P1 = 0;
P2 = 0xff;
initTimer();
TR0=1;
ET0=1;
EA=1;
while(1)
{
switch(state)
{
// 状态跳转
case 0:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 1;
}
break;
case 1:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 2;
}
break;
case 2:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 3;
}
break;
case 3:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 10;
state = 4;
}
break;
case 4:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 5;
}
break;
case 5:
if(ct == 0)
{
P3=0;P1=0;P2=0xff;
ct = 2;
state = 0;
}
break;
default:break;
}
// 执行
switch(state)
{
case 0:
//东西绿灯,南北红灯,倒计时30秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
break;
case 1:
//数码管倒计时10秒;
E_G = 1;W_G = 1;S_R = 1;N_R = 1;
display(ct,0);
display(ct,2);
display(ct+2,1);
display(ct+2,3);
break;
case 2:
//东西黄灯,倒计时2秒;
E_Y = 1;W_Y = 1;S_R = 1;N_R = 1;
display(ct,1);
display(ct,3);
break;
case 3:
//南北绿灯,东西红灯,倒计时30秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
break;
case 4:
//数码管倒计时10秒;
E_R = 1;W_R = 1;S_G = 1;N_G = 1;
display(ct,1);
display(ct,3);
display(ct+2,0);
display(ct+2,2);
break;
case 5:
//南北黄灯,倒计时2秒;
E_R = 1;W_R = 1;S_Y = 1;N_Y = 1;
display(ct,0);
display(ct,2);
break;
default:break;
}
}
}
红绿灯倒计时拨码怎么拨
红绿灯倒计时拨码步骤如下:1、确定拨码器类型:需要根据具体的要求和系统来选择拨码器类型,可以选择二进制拨码器或BCD码拨码器。2、确定拨码器位数:确定需要使用的拨码器的位数,可以选择4位、8位或16位等不同的位数。3、确定输出码型:根据具体的显示要求来确定拨码器的输出码型,可以选择二进制码、BCD码、格雷码或反码等码型。4、拨码:根据拨码器的输入方式和拨码规则,将拨码器按照要求进行拨码。拨码器的输入端是由交通信号控制器中的计时器输出的时序信号,通过拨码器的输出端可以控制红绿灯倒计时显示器的数字显示。5、测试:拨码完成后,需要进行测试,确保拨码器的输出符合要求,并能正常控制红绿灯倒计时显示器的数字显示。
单片机C语言红绿灯程序,要求:数码管显示时间倒计时、16*16LED点阵显示模块显示红绿黄灯、
#include 《reg51.h》#define uint unsigned int#define uchar unsigned char#define BLKN 2 //列锁存器数sbit G = P1^7; //P1.7为显示允许控制信号端口sbit RCLK = P2^0; //P2.0为输出锁存器时钟信号端sbit SCLR = P2^1; //P2.1为移位寄存器清○端void delay(uint); //延时函数uchar data display; //显示缓存uchar code BMP={{16,0,16,0,37,248,36,64,120,64,8,64,16,64,32,64,124,64,0,64,0,64,12,64,112,64,3,252,0,0,0,0}, {16,0,19,240,32,16,41,240,120,16,19,252,32,64,122,72,1,80,0,224,25,80,102,76,0,64,1,192,0,0,0,0}, {4,64,4,64,63,248,4,64,127,252,1,0,31,240,17,16,31,240,17,16,31,240,8,32,16,16,32,8,0,0,0,0}}; //字模表’红‘’绿‘‘黄’void main(){register uchar i,j;SCON=0x00; //串口工作模式0:移位寄存器方式TMOD=0x01; //定时器T0工作方式1:16位方式P1=0x3f; //P1端口初值:允许接收、锁存、显示TR0=1; //启动定时器T0ET0=1; //允许定时器T0中断EA=1; //开启总中断;while(1){delay(2000);for(j=0;j《3;j++){for(i=0;i《32;i++){display;if (i%2) delay(100);}delay(10000);}}}void delay(uint x){register uchar i,j;for (i=x;i》0;i--) for (j=120;j》0;j--);}void leddisplay(void) interrupt 1 using 1{register uchar i, j=BLKN;TH0 =(65536-100)/256; //设定显示屏刷新率每秒60帧TL0 =(65536-100)%256;i = P1; //读取当前显示的行号i = ++i & 0x0f; //行号加1,屏蔽高4位while(j){ j--; SBUF = display; //送显示数据 while (!TI);TI = 0; } //完成一行数据的发送G = 1; //消隐(关闭显示)P1 &= 0xf0; //行号端口清○RCLK = 1; //显示数据打入输出锁存器P1 |= i; //写入行号RCLK = 0; //锁存显示数据G = 0; //打开显示}
怎么用VB做红绿灯倒计时器
VB可用Timer计时器控件和,Label控件和Shape控件组合实现红绿灯倒计时器。
Timer 控件,通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执行一次代码。
Label 控件是图形控件,可以显示用户不能直接改变的文本。
Shape 控件是图形控件,显示矩形、正方形、椭圆、圆形、圆角矩形或者圆角正方形。
将Label控件和Shape控件叠放在一起,用下列代码:
Option Explicit Dim i As Long Private Sub Form_Load() Timer1.Interval = 1000 Shape1.FillColor = vbRed i = 10 Label1.BorderStyle = 0 Label1.FontSize = 18 Label1.Caption = ""End SubPrivate Sub Timer1_Timer() i = i - 1 Label1.Caption = i If i = 0 Then Shape1.FillColor = vbGreen Label1.Caption = "" Timer1.Enabled = False End IfEnd Sub
真实的红绿灯还需对程序的设计和代码进行完整修改。
更多文章:
synthesia(下载安装一个安卓液晶电视板的synthesia软件要怎么交费解锁)
2024年5月7日 21:55
精品成品网站入口(请推荐个你认为最值得去的网站,比较有特色的那种精品网站!)
2024年6月25日 12:50
spartan浏览器(win10怎么开启spartan浏览器)
2023年5月22日 04:20
nba2k21下载安卓版(在哪里可以下载NBA2k21安卓手机中文版)
2024年6月30日 06:55
轩辕传奇药师弑神技能(轩辕传奇手游弑神有什么用 弑神攻击提升方法解说)
2024年7月3日 19:06
autocad2014注册机在什么位置(CAD2014版安装后怎么激活注册机在哪里找到)
2024年10月11日 11:15