1、单片机实现交通灯控制汇编代码 交通灯控制一、课程设计的内容 在实验平台上选择两组指示灯,每组分为红,黄,绿代表交通灯。要求:1. 模拟十字交通路口的实际情况,设计十字路口交通灯自动 变换系统。2. 设计十字路口交通灯手动变换系统,并这两套系统可切换使用。3. 在实现以上内容的基础上增加允许急救车优先通过的要求。有急救车到达时,两方向交通信号为全红,以便让急救车通过。二设计思路及电路图 在单片机实验箱上P0口和P2口不能做I/O接口。但是为了实现交通灯的状态变化,我要用到I/O接口来对按键进行查询和显示发光二极管的状态,P1口控制四段数码管的显示。所以我扩展I/O接口,用74LS377的输入端接
2、P0口,其输出线1Q8Q接8个发光二极管,WR作为锁存控制接74LS377的时钟端,扩展片选信号CS1接在74LS377的使能端G。我用查询方式来查询按键来转换手动,自动,救护车到来的状态的变化,则把四个按键K4K7与P3.2P3.5相接,当按键置高电平时,程序就会转换到相应状态执行相应的模块状态。 在自动状态时,开始4个路口的红灯全亮(东西方向为之路,南北方向为主路)之后,南北路口的绿灯亮,东西口的红灯亮,延时显示并查询开关状态是否发生变化,当两个数码管(一个代表东西方向,一个代表南北方向)从03显示,当显示3后交通灯显示下一个状态,一直循环重复过程,直到查询到有按键发生变化。 当P3.3高
3、电平时,自动转换为手动,(同理P3.3低电平时手动转换为自动。)此时拨动按键使P3.2或P3.5置于高点位,就会转到主路或支路相应状态的交通灯显示,数码管显示0。 P3.4控制救护车来时的状态,当其高电位两个红灯全亮并蜂鸣器响起。实验电路图:显示电路: 三、程序: 主程序流程图: 显示子程序流程图: DISPLY子程序流程图:ORG 4000H START: MOV DPTR,#0F100H MOV A,#11011110B ;东西南北红灯亮 MOVX DPTR,A LCALL DL1S ; 显示时间,并查询按键状态 LCALL XIANSHILOP1: MOV DPTR,#0F100H MO
4、V A,#11011011B ;南北绿灯亮,东西红灯亮 MOVX DPTR,A LCALL DL1S ;显示时间,并查询按键状态 LCALL XIANSHI MOV R0,#2 LOP2: MOV DPTR,#0F100H MOV A, #11011001B ; 南北黄灯闪烁2次 MOVX DPTR,A LCALL DL1S ;显示时间,并查询按键状态 LCALL XIANSHI LOPD: MOV DPTR,#0F100H MOV A,#11011011B MOVX DPTR,A LCALL DL1S LCALL XIANSHI DJNZ R0,LOP2 LOP3: MOV DPTR,#0F
5、100H MOV A,#01111110B ;东西绿灯亮,南北红灯亮 MOVX DPTR,A LCALL DL1S ;显示时间,并查询按键状态 LCALL XIANSHI MOV R0,#2 LOP4: MOV DPTR,#0F100H MOV A,#00111110B ; 东西黄灯闪烁2次 MOVX DPTR,A LCALL DL1S LCALL XIANSHI LOPE: MOV DPTR,#0F100H MOV A,#01111110B ;显示时间,并查询按键态 MOVX DPTR,A LCALL DL1S LCALL XIANSHI DJNZ R0,LOP4 ;R0不为0,转L0P4
6、AJMP START PK: MOV DPTR,#0F100H ;手动状态两个黄灯亮作为标志 MOV A,#10111101B MOVX DPTR,A JNB P3.3,START ;P3.3低电平转自动 JB P3.2,ZHUL ;P3.2高电平转主路状态 JB P3.5,ZILU ;P3.2高电平转之路状态 JB P3.4,JHC ;P3.4高电平转救护车状态 CLR EA ;关救护车的蜂鸣器 LCALL XIANSHI1 ;不显示时间,显示0 AJMP PKZHUL: MOV DPTR,#0F100H MOV A,#11011011B ;南北绿灯亮,东西红灯亮 MOVX DPTR,A L
7、CALL XIANSHI1 ;显示0 AJMP PKZILU: MOV DPTR,#0F100H MOV A,#01111110B ;东西绿灯亮,南北红灯亮 MOVX DPTR,A LCALL XIANSHI1 ;显示0 AJMP PKJHC: MOV TMOD,#01H MOV TH0,#0FCH ;蜂鸣器响起 MOV TL0,#05BH SETB TR0 SETB EA CPL P1.7 MOV DPTR,#0F100H MOV A, #11011110B ;东西,南北,红灯亮 MOVX DPTR,A LCALL XIANSHI1 ;显示0 ;子程序 DL1S: JB P3.3,PK ;查
8、询按键状态 JB P3.4,JHC RET;显示子程序 XIANSHI:MOV A,#0 ;显示0 MOV DPTR,#TB ;查表 ANL A,0FH MOVC A,A+DPTR MOV R1,A MOV P1,#11111111B CALL DISPLY LCALL DL1S1 ;调用延时 MOV A,#1 ;显示1 MOV DPTR,#TB ANL A,0FH MOVC A,A+DPTR MOV R1,A MOV P1,#11111111B CALL DISPLY LCALL DL1S1 MOV A,#2 ;显示2 MOV DPTR,#TB ANL A,0FH MOVC A,A+DPTR
9、 MOV R1,A MOV P1,#11111111B CALL DISPLY LCALL DL1S1 MOV A,#3 ;显示3 MOV DPTR,#TB ANL A,0FH MOVC A,A+DPTR MOV R1,A MOV P1,#11111111B CALL DISPLY LCALL DL1S1 RETXIANSHI1: MOV A,#0 MOV DPTR,#TB ANL A,0FH ;显示0的子程序 MOVC A,A+DPTR MOV R1,A MOV P1,#11111111B CALL DISPLY LCALL DL1S1 DISPLY:MOV R7,#8 ; MOV A,R1
10、 ;MOV A,#8EH T: RLC A ;串形输入 SETB P1.1 ;时钟置高 MOV P1.0,C ;数据送sda CLR P1.1 ;时钟置低位 DJNZ R7,T MOV P1,#10110111B ;1 RETDL1S1: MOV R6,#4DELAYY: MOV R5,#250DELAYE: MOV R3,#250 ;延时子程序DELAYF: DJNZ R3,DELAYF DJNZ R5,DELAYE DJNZ R6,DELAYY RETTB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1