单片机编程 交通灯的控制(求wave软件的程序源程序*.asm)

2. 基本要求:
在MCS-51单片机实验开发系统DP-51PROC上,在规定的时间内编程实现题目功能。
3. 创新要求
在完成基本要求后,进行创新设计,优化程序功能,如根据用户,由数码显示器显示设定的红绿灯时间和剩余时间等。
三、设计方法和基本原理
1. 问题描述:
在MCS-51单片机实验开发系统DP-51PROC上,设计完成交通灯的控制。用实验系统上的发光二极管表示红绿灯。要求由用户设定红绿灯的时间,以秒为单位,存放在程序存储器的某个单元中。
2. 问题的解决方案:
根据问题描述,可以将问题解决分为三步:
(1) 由定时器实现最小定时。
(2) 根据用户设定的红绿灯时间,进行红绿灯切换,及黄灯的显示。

五、设计说明
1. 因为本设计是交通灯控制设计,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯,然后转状态l南北绿灯通车,东西红灯;过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时3秒,东西仍然红灯;再转状态3,东西绿灯通车,南北红灯;过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时3秒,南北仍然红灯;然后在循环至状态1,依次类推。
2. 中断服务程序的关键是:(1)保护进入中断时的状态,并在退出中断之前恢复进入时的状态。(2)必须在中断程序中设定是否允许中断重入。

ORG 0000H
AJMP MAIN
ORG 0003H
LJMP INT
ORG 0040H
MAIN:MOV SP,#60H
SETB EA
SETB EX0
SETB PX0
SETB IT0
MOV P1,#09H
ACALL DELAY1S
ABC:MOV R0,#3
MOV R1,#3
MOV P1,#0CH
ACALL DELAY1S
DEF:

CLR P1.2
ACALL DELAY2S

SETB P1.2
ACALL DELAY2S
DJNZ R0,DEF
MOV P1,#0AH
ACALL DELAY1S
MOV P1,#11H
ACALL DELAY1S
MOV P1,#21H
ACALL DELAY1S
GHI:CLR P1.5
ACALL DELAY2S
SETB P1.5
ACALL DELAY2S
DJNZ R1,GHI
MOV P1,#11H
AJMP ABC

INT: CLR EA
PUSH PSW
PUSH ACC
PUSH 05H
PUSH 06H
PUSH 07H
PUSH P1
SETB EA
MOV P1,#09H
ACALL DELAY1S
CLR EA
POP P1
POP 07H
POP 06H
POP 05H
POP ACC
POP PSW
SETB EA
RETI
DELAY1S:MOV R7,#5
DEL:MOV R6,#255
DE:MOV R5,#255
DJNZ R5,$;FOSC=6MHZ
DJNZ R6,DE
DJNZ R7,DEL
RET
DELAY2S:MOV R4,#250
DELL:MOV R3,#250
DJNZ R3,$;FOSC=6MHZ
DJNZ R4,DELL
RET
END
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机编程 交通灯的控制(求wave软件的程序源程序*.asm)
1. 因为本设计是交通灯控制设计,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯,然后转状态l南北绿灯通车,东西红灯;过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时3秒,东西仍然红灯;再转状态3,东西绿灯通车,南北红灯;过一段时间转状态4...

...中出现的错误基于单片机的交通灯控制系统 asm(64): error A45: UND...
SJMP MAIN --转移的目的地,太远。改成:JMP MAIN --即可。其它,还有错误。

单片机原理问题,LED模拟交通灯,为啥我编的程序黄灯只闪3次,程序中明明 ...
这个编程特别注意while的循环语句,注意是否有定义字符循环缺少。看看延迟语句的延时是否冲突,比如红灯没亮完,黄灯已经开始了,导致只看到三下。看看线路衔接,是否有接点不对(st89c51单片机每个接点都有它的意义)。还没解决,明天再帮你看吧,已经躺床上了。以后有单片机编程也可以直接问我 ...

关于单片机延时子程序流程图的问题
在交通灯的控制程序中,需要控制红灯亮的时间持续30秒,就可以通过延时程序来完成。延时程序是如何 实现的呢?下面让我们先来了解一些相关的概念。 一、机器周期和指令周期 1.机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度, 51 单片机的一个机器周期包括12 个时钟振荡周期,也就是...

单片机用什么软件编程
目前应用最广泛的单片机编程软件是keil和IAR。keil这个是单片机编程的核心工具,用来编写和编译程序,还有一个最重要的功能就是仿真,快速地帮你定位程序BUG,不过要配合ST-Link或者其他仿真器用。keil使用方法 1、打开KeilC51软件,建立一个新工程单击Project菜单,在弹出的下拉菜单中选中NewProject选项。2、...

uvision2单片机编程
可以采用8550 9013等PNP管子控制通断的,程序很简单。我把我曾经做的电路和程序发给你,你看看对你有没有帮助。程序:include <STC11.H> sbit p1_2=P1^2;void delay(xs);void main(void){ while(1){ delay(30);p1_2=0;delay(30);p1_2=1;} } void delay(xs){ unsigned char h,i,j...

用单片机进行编程,用什么软硬件,在哪里编,电脑上吗
编程过程中,通过计算机的通讯端口(如串口、USB或网络)连接仿真器,仿真器再接入带有单片机的目标板。可以在编程软件中设置断点,跟踪变量等。将源程序编译,生成最终代码。使用写入设备将最终代码固化到单片机。常用的写入设备包括两种,一种是离线的,它可以直接对未焊接的处理器或ROM芯片进行擦写,写完后...

keil5建立项目与debug踩坑记录
一. Keil创建项目示例 创建项目涉及几个关键步骤: 新建文本编辑窗口 编写并输入源程序代码 保存源程序时记得加上文件扩展名,如汇编语言使用".asm",C语言使用".C" 新建Keil工程 选择CPU型号 将源程序整合到工程中 调整工程目标的属性设置 测试代码以确保正确性 开始软件调试二. Debug...

跪求凌阳61单片机设计的语音识别系统的主程序
汇编语言,用C51单片机实现交通灯控制!二极管模拟发光!-,Asm,单片机开发\/SCM 通过串口控制步进电机控制器,实现联络,速度控制,步长-,Visual C++,串口编程\/Com Port 绝佳的Tab View控件的方式之一,VC++6.0经过运行调试的,可直接使用-,Visual C++,TreeView控件\/TreeView 以某中小规模汽车维修厂为案例,...

电子系统设计的作品目录
1.1 明确系统的设计任务和要求1.1.2 方案的比较与选择1.1.3 单元电路的设计、参数计算和元器件选择1.1.4 电路的仿真1.1.5 电路图的绘制及印制电路板的设计1.2 电子系统的组装与调试1.2.1 电子系统的组装1.2.2 电子系统的调试1.3 电子系统的抗干扰技术1.3.1 在干扰源处采取措施1.3...

相似回答