急求:51单片机 交通灯控制

作者&投稿:郁潘 (若有异议请与网页底部的电邮联系)
急求51单片机的交通灯控制程序参考(C语言)~

我有一个带程序且有仿真的,你可以参考一下!你的联系方式?

这个做起来需要点时间,给点分吧

ORG 0000H ;主程序的入口地址
LJMP MAIN ;跳转到主程序的开始处
ORG 0003H ;外部中断0的中断程序入口地址
ORG 000BH ;定时器0的中断程序入口地址
LJMP T0_INT ;跳转到中断服务程序处
ORG 0013H ;外部中断1的中断程序入口地址
MAIN : MOV SP,#50H
MOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断
MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1
MOV TH1,#00H ;T1计数器清零
MOV TL1,#00H
SETB TR1 ;启动T1计时器
SETB EX1 ;允许INT1中断
SETB IT1 ;选择边沿触发方式
MOV DPTR ,#0003H
MOV A, #80H ;给8255赋初值,8255工作于方式0
MOVX @DPTR, A
AGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转
MOV A,P1
JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间
MOV R0,#00H ;R0清零
MOV R0,A ;存入东西方向绿灯初始时间
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
RED: MOV A,P1
ANL A,#7FH ;P1.7置0
MOV R7,#00H ;R7清零
MOV R7,A ;存入东西方向红灯初始时间
MOV R3,A
LCALL DISP1
LCALL DELAY
AJMP AGAIN
;-------------------------------------------
N0: SETB TR0 ;启动T0计时器
MOV 76H,R7 ;红灯时间存入76H
N00: MOV A,76H ;东西方向禁止,南北方向通行
MOV R3,A
MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮
MOV A,#0DDH
MOVX @DPTR, A
N01: JB P2.0,B0
N02: SETB P3.0
CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行
;------黄灯闪烁5秒程序------
N1: SETB P3.0
MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮
MOV A,#0D4H
MOVX @DPTR,A
N11: MOV R4,#00H
N12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒
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 DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮
MOV A,#0EBH
MOVX @DPTR,A
N21: JB P2.0,T03

N22: CJNE R3,#00H,N21
;------黄灯闪烁5秒程序------
N3: MOV R3,#05H
MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮
MOV A,#0E2H
MOVX @DPTR,A
N31: MOV R4,#00H
CJNE R4,#7DH,$ ;黄灯持续亮0.5秒
N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭
MOV A,#0EBH
MOVX @DPTR,A
N33: MOV R4,#00H
CJNE R4,#7DH,$ ;黄灯持续灭0.5秒
CJNE R3,#00H,N3 ;闪烁时间达5秒则退出
SJMP N00
;------闯红灯报警程序------
B0: MOV R2,#03H ;报警持续时间3秒
B01: MOV A,R3
JZ N1 ;若倒计时完毕,不再报警
CLR P3.0 ;报警
CJNE R2,#00H,B01 ;判断3秒是否结束
SJMP N02
;------1秒延时子程序-------
N7: RETI
T0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值
MOV TH0,#0F1H
INC R4
INC R5
CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序
MOV R5,#00H ;R5清零
DEC R3 ;倒计时初值减一
DEC R2 ;报警初值减一
T01: ACALL DISP ;调用显示子程序
RETI ;中断返回
;------显示子程序------
DISP: JNB P2.4,T02
DISP1: MOV B,#0AH
MOV A,R3 ;R3中值二转十显示转换
DIV AB
MOV 79H,A
MOV 7AH,B
DIS: MOV A,79H ;显示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS2: MOV A,7AH ;显示个位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
RET
;------东西方向车流量检测程序------
T03: MOV A,R3
SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量
JZ N3
JB P2.0,T03
INC R7
CJNE R7,#64H,E1
MOV R7,#00H ;中断到100次则清零
E1: SJMP N22
;------东西方向车流量显示程序------
T02: MOV B,#0AH
MOV A,R7 ;R7中值二转十显示转换
DIV AB
MOV 79H,A
MOV 7AH,B
DIS3: MOV A,79H ;显示十位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0F7H
MOVX @DPTR,A
LCALL DELAY
DS4: MOV A,7AH ;显示个位
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#0002H
MOVX @DPTR,A
MOV DPTR,#0001H
MOV A,#0FBH
MOVX @DPTR,A
LJMP N7
;------延时4MS子程序----------
DELAY: MOV R1,#0AH
LOOP: MOV R6,#64H
NOP
LOOP1: DJNZ R6,LOOP1
DJNZ R1,LOOP
RET
;------字符表------
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END

单片机 交通灯设计(绝对原创,转载请注明出处)
http://hi.baidu.com/aizhg/blog/item/025bacfbbb662d9e58ee907a.html

给分就发给你,不全你杀我

我有汇编的程序```你要么???


大竹县19760757520: 80c51单片机交通灯程序 -
能药司巴: ORG 1000H L:JNB P3.0,LP3JNB P3.1,LP2 ;判断p3.1,p3.0口;如果P3.0为1的话,正常运行交通灯;如果P3.1为1的话,正常运行交通灯;如果P3.1为0的话,依次点亮灯;如果P3.0为0的话,停止交通灯,只有黄灯闪烁;正常运行交通...

大竹县19760757520: 用51单片机做交通信号灯 -
能药司巴: 有以下可能的原因:1、51单片机高电平驱动能力较小,建议低电平点亮,也就是说二极管接正.2、启动电路(第9脚)有没有接到一个阻容电路上?99脚悬空,程序可能乱跑的.

大竹县19760757520: 求一段51单片机交通灯程序:1.东西红南北绿时间15s 2.东西黄灯闪烁5s 以上2段+上延时与计时器 -
能药司巴: RED_NS EQU P1.0 GREEN_NS EQU P1.1 YELLOW_NS EQU P1.2 RED_EW EQU P1.3 GREEN_EW EQU P1.4 YELLOW_EW EQU P1.5 FLASH_NS BIT 00H FLASH_EW BIT 01H TIME EQU 30H TICK EQU 31H;--------------------------------- ORG ...

大竹县19760757520: 跪求一个51单片机汇编语言的程序,要求就是红灯25秒,绿灯20秒,黄灯闪烁5秒,有个开关和复位按钮 -
能药司巴: 给你一个思路: 假设是单纯的红绿灯,无黄灯的话,设红灯30秒,绿灯30秒.需要两个状态量, 方向Dir(1:东西,0:南北),东西灯颜色LightcolorEW,南北灯颜色LightcolorNS. 此刻,东西方向亮红灯,则Dir=1,LightcolorEW=red,...

大竹县19760757520: 急求:51单片机“交通信号灯控制的设计、编程”
能药司巴: 以一个路口的交通中的一组为例 把交通灯一组的三个LED接在P1.0 1.1 1.2上另一组的接1.3 1.4 1.5上 设定1.0 1.3为红灯 1.1 1.4为黄灯 1.2 1.5为绿灯 程序段就是简单的延时程序 当1.0为 0时亮此时 1.2必为1 延时 MOV R3 **H 16进制数 转换成2进制看高低电平 简单说就这些 做这个是要有通讯器材跟进的,也就是很多路口连在一起,进行统一控制

大竹县19760757520: 如何运用51单片机设计一个交通灯系统 -
能药司巴: 运用定时器,数码管LED和8255A设计一个交通灯控制系统! 1.南北绿灯,东西红灯,20秒 2.南北转黄灯,东西红灯,5秒 3.南北红灯,东西绿灯,20秒 4.南北红灯,东西转黄灯,5秒 5.循环步骤1

大竹县19760757520: 用51单片机制作红绿灯,要求按键能控制整个电路的启动和停止,用汇编语言怎么编写程序?
能药司巴: 交通路口红绿灯自动控制器电路图 如图所示为交通路口红绿灯自动控制电路.该控制器主要由四块555(IC2~IC5)和一些阻容元件组成的四级单稳态延时电路首尾相连而成.输入的8V电压经78M05稳压后为555提供VDD=+5V的电源电压. 当刚接...

大竹县19760757520: 求高手给我编一个51单片机红绿灯程序 -
能药司巴: 你的设计不合常理.1、右转弯无需红绿灯;2、若用595作时间显示驱动,可节省大量端口.3、缺少A、B路通行时间、黄灯闪烁时间规定.

大竹县19760757520: 利用51单片机模拟交通灯控制,怎么用数码管显示出来 -
能药司巴: 这最好用静态显示,只需要扩展74HC595即可,每个74HC595可以显示一位数字,它们级联,所以一般只需要4根IO口线即可.老的方案使用74LS164,不过切换时有闪动.

大竹县19760757520: 运用51单片机设计一个交通灯系统,急求!运用定时器,数码管LED和8255A设计一个交通灯控制系统! -
能药司巴: /************************************* 程序名称:红绿灯学习 功能描述:简易十字路口信号控制 作都名称:CYB 创建时间:2009/07/26*************************************/#include <reg51.h>#define FX_Time 4 //放行时间#define JG_Time 1 //警告时间 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网