单片机proteus仿真设计交通灯(汇编语言) 联系客服

发布时间 : 星期二 文章单片机proteus仿真设计交通灯(汇编语言)更新完毕开始阅读7727062e915f804d2b16c1e9

综上所述,最终选择方案三来进行实验。

3.系统硬件的设计

3.1主控制器的设计以及接口电路的设计(电路图及设计说明)

该电路图的proteus仿真图即和方案三的一致,正常运行时如下所示:

主要运用到的硬件是:一块AT89C51单片机,两个两段共阴LED显示器,SW1,SW2两个双掷开关以及32个发光二极管。其中,16个红色,16个绿色

发光二极管,每两个为一组。若P0端口得电压输出电流不足以驱动LED,就利用上拉电阻使LED能正常工作,但不需电阻亦可。单片机晶振选用12MHz。 4.系统软件的设计 4.1程序的编写思想:

本次实验设计的程序主要包含:主程序,两个中断程序,显示程序(显示程序里含延时1ms的程序)。具体见以下叙述。 4.2主程序的设计

主程序中,是顺次执行,从SETB P3.7开始运行南北方向为主的两个60秒,接着CLR P3.7再运行东西方向为主的两个60秒,接着P3.7重新置位,再次循环。 流程图如下:

交通灯控制系统定义中断系统开始程序SETB P3.7CLR P3.7判断P3.7的电位低电位高电位南北直行和行人均绿灯,其余均红灯,并延时10秒东西直行和行人均绿灯,其余均红灯,并延时10秒南北直行、行人和右拐均绿灯,其余红灯,并延时40秒东西直行、行人和右拐均绿灯,其余红灯,并延时40秒南北直行、行人和右拐均绿灯,且闪烁。其余红灯,并延时10秒东西直行、行人和右拐均绿灯,且闪烁。其余红灯,并延时10秒南北左拐,右拐绿灯,东西右拐绿灯,其余红灯,并延时50秒东西左拐,右拐绿灯,南北右拐绿灯,其余红灯,并延时50秒南北左拐,右拐绿灯,东西右拐绿灯,且闪烁。其余红灯,并延时10秒东西左拐,右拐绿灯,南北右拐绿灯,且闪烁。其余红灯,并延时10秒4.3两个中断程序的设计

两个中断程序分别靠双掷开关SW1和SW2控制高低电位而实现,中断程序

START0和中断程序START1为了实现功能三和四。流程图如下:

中断响应START0中断响应START1堆栈压入保护堆栈压入保护东西,南北方向的人行均红灯,其余绿灯,且倒计时停止东西,南北方向的人行均绿灯,其余红灯,且倒计时停止设定延时程序(15秒的延时)堆栈取出返回堆栈取出返回恢复原状并返回恢复原状并返回

4.4显示程序的设计 流程图如下所示:

显示程序开始将时间转化为十进制,高低位分别存在50H,51H处选通高位,显示50H内值调用延时程序(1毫秒的延时)循环5次选通低位,显示51H内值调用延时程序(1毫秒的延时)

该显示程序主要是为了实现倒计时的显示,先将存在SECOND内的数值从十六进制数转化为十进制,并存在DBUF,DBUF+1(即50H,51H)单元中,然后通过LEDMAP

返回取出字形,并选通每个两段共阴LED的显示管的高,低位显示出来。 5.系统调试 5.1硬件调试

设计小程序让发光二极管导通,点亮二极管,并向两段共阴LED显示管赋值,观察是否显示,调试到所有硬件设备均可正常即可。 5.2软件调试

主要是编程,以下是实现本次实验功能的程序:

SECOND EQU 30H

DBUF EQU 50H ORG 0000H LJMP START ORG 0003H LJMP START0 ORG 0013H LJMP START1 START: MOV R7,#5 MOV SP,#60H SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 MOV TCON,#00H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H CLR TF0 SETB TR0 MOV A,#0FFH MOV P2,A

MOV P0,A

(以上程序主要是一些赋值程序,和定时器,中断等的开启,以及初始化红绿灯等);************************************ LOOPM: SETB P3.7 LJMP LOOP

LOOPK: CLR P3.7 LOOP: MOV R2,#20 MOV R3,#10 MOV SECOND,#60 JNB P3.7,LP1 LCALL STATE1

LJMP Z1

LP1: LCALL STATE4 Z1: LCALL DISPLAY JNB TF0,Z1 CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R2,Z1 MOV R2,#20 DEC SECOND

LCALL DISPLAY

DJNZ R3,Z1

(以上程序主要是通过对P3.7电位的高低来选择红绿灯的状态,状态一和四的选择) ;************************************ MOV R2,#20 MOV R3,#40 MOV SECOND,#50 JNB P3.7,LP2 LCALL STATE2

LJMP Z2

LP2: LCALL STATE5 Z2: LCALL DISPLAY