求单片机,十字路口交通灯的程序,汇编语言的,我有C的,可是老师说得又汇编的,也不知如何转换,求助,,

作者&投稿:阮烟 (若有异议请与网页底部的电邮联系)
跪求!!单片机控制十字路口的交通灯的汇编程序。每一边绿灯2个,红黄各1个。~

要求写三个程序,篇幅,太长了。

分成三个问题来提问,就方便了。

楼主,很容易,就能得到答案。

车流量检测 通过什么来实现

;------------------------------------
;程序实现功能
;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。
;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。
;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。

;工作寄存器及存储单元分配
;1.工作寄存器
;R2设置为定时器定时中断次数,R6、R7用于延时程序中的寄存器

;2.片内存储单元
;30H、31H作为两组数码管显示数据存储单元;32H、33H作为交通灯初始状态存储单元;40H、41H作为交通灯显示数据存储单元

;3.标志位
;00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位
;-----------------------------------
SNF EQU 00H ;;;南北通行标志位
EWF EQU 01H ;;;东西通行标志位
URF EQU 02H ;;;紧急事件标志位
ORG 0000H
LJMP MAIN ;;;上电转主程序
ORG 000BH ;;;定时中断入口
LJMP DSZD
ORG 0003H ;;;紧急中断入口
LJMP URZD
ORG 0030H
MAIN: LCALL INIT ;;;调用初始化子程序
LOOP: LCALL DIS ;;;循环执行显示子程序
AJMP LOOP
;///////////初始化程序
INIT: SETB SNF
SETB EWF
SETB URF
MOV R2,#20 ;;;定时器中断20次为1s
MOV TMOD,#01H ;;;初始化定时器
MOV TL0,#0B0H
MOV TH0,#3CH
SETB EA ;;;开定时中断与紧急中断
SETB ET0
SETB TR0
SETB EX0
SETB IT0 ;;;设置中断程控方式
MOV DPTR,#TAB ;;;数值首地址放入DPTR中
MOV 40H,#40 ;;;东南西北通行时间设置
MOV 41H,#40
MOV 30H,#40 ;;;通行时间初始化
MOV 31H,#60
MOV P0,#4CH ;;;初始化时南北通行并把交通灯状态分别放在32H和33H中
MOV 32H,#4CH
MOV P2,#15H
MOV 33H,#15H
RET
;////////////显示子程序
DIS: MOV P3,#0DFH ;;;选中南北方向的十位数码管
MOV A,30H ;;;把显示数据送人数码管显示
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P1,A ;;;
LCALL D1MS
MOV P3,#0EFH ;;;选中南北方向的个位数码管
MOV A,B ;;;送入数码管显示
MOVC A,@A+DPTR
MOV P1,A
LCALL D1MS

MOV P3,#7FH ;;;选中第东西方向的十位数码管
MOV A,31H ;;;送入数码管显示
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P1,A
LCALL D1MS
MOV P3,#0BFH ;;;选中第东西方向的个位数码管
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
LCALL D1MS
SETB P3.0
SETB P3.1
JNB P3.0,DIS_S ;;;查询是否第一个按键按下
JNB P3.1,DIS_E ;;;查询是否第二个按键按下
AJMP DIS_R ;;;没有键按下则返回
DIS_S:LCALL D5MS ;;;按键去抖
JNB P3.0,DIS_SN
AJMP DIS_R
DIS_SN:MOV 40H,#50 ;;;对通行时间从新分配,南北通行时间加长
MOV 41H,#30
AJMP DIS_R
DIS_E:LCALL D5MS ;;;按键去抖
JNB P3.1,DIS_EW
AJMP DIS_R
DIS_EW:MOV 40H,#30 ;;;东西通行时间加长
MOV 41H,#50
DIS_R:RET
;///////定时中断处理程序
DS_C: LJMP DS_R ;;;接力跳转
DSZD: PUSH ACC ;;;保护现场
PUSH PSW
CLR TR0 ;;;关定时器及中断标志位并重新赋值
CLR TF0
MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R2,DS_C ;;;判断1m时间是否到达
MOV R2,#20 ;;;到达重新赋值
DEC 30H ;;;南北方向通行时间减一
MOV A,30H ;;;把减一后的时间送入显示存储单元
;;;;;;;南北通行到达最后4秒时黄灯闪烁
DS_10:CJNE A,#4,DS_11 ;;;如果通行时间剩余4秒
JNB SNF,DS_11 ;;;判断是否是南北通行
MOV P0,#8AH
MOV 32H, #8AH ;;;把交通灯状态存入存储单元(后面类似)
DS_11:CJNE A,#3,DS_12 ;;;不是剩余3秒,返回
JNB SNF,DS_12 ;;;不是南北通行时间,返回
MOV P0,#88H
MOV 32H, #88H
DS_12:CJNE A,#2,DS_13
JNB SNF,DS_13
MOV P0,#8AH
MOV 32H, #8AH
DS_13:CJNE A,#1,DS_14
JNB SNF,DS_14
MOV P0,#88H
MOV 32H, #88H
;------------------------
DS_14:JNZ DS_NE ;;;通行时间没有结束转向改变东西方向的数码管
CPL SNF ;;;如果通行时间结束则对标志位取反
JNB SNF,DS_1 ;;;判断是否南北通行
MOV 30H,40H ;;;是,点亮相应的交通灯
MOV P0,#4CH
MOV 32H,#4CH ;;;存储交通灯状态
MOV P2,#15H
MOV 33H, #15H ;;;存储交通灯状态
DS_NE:DEC 31H ;;;东西方向通行时间减一
MOV A,31H ;;;把通行剩余时间送入显示存储单元
;;;;;;;;东西方向通行时间剩余4秒钟黄灯闪烁(程序注释与南北方向类似 略)
DS_20:CJNE A,#4,DS_21
JB EWF,DS_21
MOV P0,#51H
MOV 32H, #51H
DS_21:CJNE A,#3,DS_22
JB EWF,DS_22
MOV P0,#41H
MOV 32H, #41H
DS_22:CJNE A,#2,DS_23
JB EWF,DS_23
MOV P0,#51H
MOV 32H, #51H
DS_23:CJNE A,#1,DS_24
JB EWF,DS_24
MOV P0,#41H
MOV 32H, #41H
;-----------------------------
DS_24:JNZ DS_R ;;;东西方向时间没有结束,返回
CPL EWF ;;;对通行状态取反
JNB EWF,DS_2 ;;;东西方向通行时间到来,跳转
MOV 31H,#80 ;;;东西方向通行结束,重新显示时间
MOV P0,#89H ;;;点亮相应的交通灯
MOV 32H, #89H
MOV P2,#29H
MOV 33H, #29H
AJMP DS_R
DS_1: MOV 30H,#80 ;;;南北通行时间结束,重新对显示存储单元赋值
MOV P0,#89H ;;;执行转弯状态1
MOV 32H, #89H
MOV P2,#26H
MOV 33H, #26H
AJMP DS_NE
DS_2: MOV 31H,41H ;;;东西方向开始通行,赋值予显示存储单元
MOV P0,#61H ;;;点亮相应的交通灯
MOV 32H, #61H
MOV P2,#15H
MOV 33H, #15H
DS_R: SETB TR0
POP PSW ;;;恢复现场
POP ACC
RETI
;/////////////紧急中断处理程序
URZD: PUSH ACC ;;;保护现场
PUSH PSW
CLR IE0 ;;;清除中断标志位
CLR TR0 ;;;关定时器
CPL URF ;;;紧急事件标志位
JB URF,UR_CON ;;;紧急结束;跳转
MOV P0,#49H ;;;各路口灯全显示红灯亮
MOV P2,#15H
AJMP UR_R
UR_CON:SETB TR0 ;;;恢复正常交通
MOV A,32H
MOV P0,A
MOV A,33H
MOV P2,A
UR_R: POP PSW ;;;恢复现场
POP ACC
RETI
;////////////查表指令0,1,2,3,4,5,6,7,8,9
TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH
DB 7DH, 07H, 7FH, 6FH

;//////////延时5ms与1ms
D5MS: MOV R7,#5
D1MS: MOV R7,#10
MOV R6,#50
L1: DJNZ R6,$
DJNZ R7,L1
RET
END

参考:

http://hi.baidu.com/do_sermon/item/92e081f975f6120ad99e72ec

仿真实例,有汇编仿真,也有C语言,供参考




基于51单片机的红绿灯设计
\/*** 十字路口交通灯控制 C 程序 \/ define uchar unsigned char#define uint unsigned int#include <reg52.h>\/***定义控制位***\/sbit Time_Show_LED2=P2^5;\/\/Time_Show_LED2控制位sbit Time_Show_LED1=P2^4;\/\/Time_Show_LED1控制位sbit EW_LED2=P2^3; \/\/EW_LED2控制位sb...

模拟十字路口交通信号控制。东西向通行80秒,南北向通行60秒,延迟3秒...
做一个1秒的定时器函数,再来定义一个全局计秒数的变量和一个整个循环的秒数的常量,如果循环时间到了全局计秒数的变量就变回零。再根据对应时间点改变状态,在主函数根据计秒变量改变状态和显示数码管。在外部中断函数中对定时器以及其它外设进行控制。很容易的,根据这个思路自己写吧。其它思路也可以 ...

用单片机设计制作一个模拟的十字路口交通信号灯控制系统。
2012-06-28 以单片机为核心,设计一个简单交通灯控制系统,设A车道与B车道... 2 2010-06-17 单片机编程:设计十字路口交通灯,以最常用的两条线路的交通信号... 3 2015-04-23 基于AT89C51单片机的十字路口交通信号灯设计 2020-10-01 单片机中十字路口交通信号灯的过程,内容,原理? 2014-06-03 请各位发一...

基于单片机十字路口交通灯控制的模拟
include <AT89X52.H> \/\/ define uint unsigned int \/\/宏定义 define uchar unsigned char \/\/宏定义 sbit xg=P3^0; \/\/位定义 sbit xy=P3^1;sbit xr=P3^2;sbit yg=P3^3;sbit yy=P3^4;sbit yr=P3^5;sbit led1=P2^0;sbit led2=P2^1;uint mun,...

求51单片机控制的交通灯电路图
一、设计任务与要求 1.设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间都设为25秒;2.要求黄灯先亮5秒,才能变换运行车道;3.黄灯亮时,要求每秒钟闪亮一次 。二、实验预习要求 1.复习数字系统设计基础。2.复习多路数据选择器、二进制同步计数...

单片机做一个交通灯南北绿灯80秒黄灯3秒,东西绿灯60秒,当救护车来时...
交通灯控制器方案设计东西、南北两干道交于一个十字路口。各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间,根据主干道车流量的多少设置指示灯点亮的时间。下面...

最简单的单片机制作交通灯需要的元器件
89S51 11.0592M 晶振 1K电阻 、10UF电容 12个灯,红、黄、绿各四个,12个1K电阻 ,十字路口嘛。蜂鸣器一个。按键一个,按键复位 采用AT89s51型号的单片机,由于交通十字路口的对称性,所以一个引脚可以同时控制两个灯,将发光二极管分别接到P1各个引脚,在其中加入一个时振荡当电路,来控制时间,在...

求51单片机的C代码
给你参考,可以联系我 \/ 十字路口交通灯控制 C 程序 \/ define uchar unsigned char define uint unsigned int include <reg52.h> \/***定义控制位***\/ sbit Time_Show_LED2=P2^5;\/\/Time_Show_LED2控制位 sbit Time_Show_LED1=P2^4;\/\/Time_Show_LED1控制位 sbit EW_LED2=P2^3;...

请教高手,基于单片机控制十字路口红绿灯,用红外线或者其他的方法怎么...
十字路口红绿灯原理很简单的,十字路口有2边的灯是一样的,红绿灯主要是通过延时就可以实现的。红外检测车流量的话可以这样实现,用红外对接管,一个发射,一个接收,能接收到红外是一个电平(有高有低,看硬件参数的,我用过的是接收到红外是高电平),有车的时候会挡住红外的接收,这样接收不到红外...

急求:51系列单片机控制系统模型设计
在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。三、软件程序(C语言)以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。\/\/***\/\/ \/\/程序名:十字路口交通灯控制 \/\/编写人:黄庭剑 \/\/初写时间:2009年1月2日 \/\/...

枣阳市19333069957: 51单片机 交通灯汇编程序 -
党哪杰列: 汇编语言编程交通指示灯 供参考 http://zhidao.baidu.com/question/511850150.html

枣阳市19333069957: 单片机交通灯程序 -
党哪杰列: #define N1 10000#define N2 1000#define ALL_OFF 0x00#define RED_ON 0x01#define YELLOW_ON 0x02 #define GREEN_ON 0x04#define A_LIGHT PA#define B_LIGHT PB void wait_n100mS(unsigned int n) //延时n秒 { unsigned int i,j,k; for(...

枣阳市19333069957: 求单片机汇编交通灯程序??
党哪杰列: 单片机交通灯控制器的设计程序单片机交通灯控制器的设计一. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制.时间 方向 控制要求白天 东西 绿灯 ...

枣阳市19333069957: 单片机交通灯的汇编程序 -
党哪杰列: NAME T3 ;I/O口扩展实验一 PORT EQU 0CFA0H ;片选地址CS0 CSEG AT 0000HLJMP START CSEG AT 4100H START: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭ACALL DISP ;调用273显示单元(以下雷同)ACALL DE3S ;延时3秒 ...

枣阳市19333069957: 单片机编程:设计十字路口交通灯,以最常用的两条线路的交通信号控制为例. -
党哪杰列: ORG 0000H MAIN:MOV DPTR,#0FF20H MOV A,#03H MOVX @DPTR,A MOV 2AH,#1FH MOV P1,#0CH MOV R7,#19H PRG1: LCALL DELAY1 DJNZ R7,PRG1 MOV P1,#0AH MOV R7,#05H PRG2: LCALL DELAY1 DJNZ R7, PRG2 MOV P1,#...

枣阳市19333069957: 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的话,停止交通灯,只有黄灯闪烁;正常运行交通...

枣阳市19333069957: 单片机控制十字路口交通灯程序设计 -
党哪杰列: 如果一个单位时间为1秒,这里设定的十字路口交通灯按如下方式四个步骤循环工作: 60个单位时间,南北红,东西绿; 10个单位时间,南北红,东西黄; 60个单位时间,南北绿,东西红; 10个单位时间,南北黄,东西红;解:用P...

枣阳市19333069957: 十字路口交通灯的设计方案,是单片机(C语言)的编程!!1 -
党哪杰列: #include<reg51.h> unsigned char t0,t1; void delay0_5s1() { for(t0=0;t0<0x0a;t0++) { TH1=0x3c; TL1=0xb0; TR1=1; while(!TF1); TF1=0; } } void delay_t1(unsigned char t) { for(t1=0;t1<t;t1++) delay0_5s1(); } void int_0() interrupt 0 { unsigned char i,j,k,l,...

枣阳市19333069957: 急急急!求单片机交通灯的控制程序 -
党哪杰列: 你参考一下这段程序 希望对你有所帮助 org 0000h ajmp start org 0003h mov p1,#0f6h reti org 0030h start: setb ea setb ex0 clr it0 mov r0,#10 mov p1, #0f3H loop: acall del3 djnz r0 , loop mov r1, #03 lab: mov p1, #0f5h acall del3 mov P1, #0f7h acall ...

枣阳市19333069957: C51单片机 交通指示灯的程序设计 要用汇编语言编制 -
党哪杰列: 汇编语言编程交通指示灯 http://zhidao.baidu.com/question/511850150.html

你可能想看的相关专题

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