当前位置:文档之家› 实验三-交通灯控制实验

实验三-交通灯控制实验

实验三-交通灯控制实验
实验三-交通灯控制实验

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证□综合□√设计□创新实验日期:实验成绩:

实验三交通灯控制实验

一.实验目的

掌握十字路口交通灯控制方法。

二.实验内容

利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4 位LED 数码管显示时间,LED 显示红绿灯状态。

三.实验要求

根据实验内容编写一个程序,并在实验仪上调试和验证。

四.实验说明和电路原理图

交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。

双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区)

实验框图如图:

五.实验预习要求

学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

六.实验步骤

1)系统各跳线器处在初始设置状态。

P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。

3)观察十字路口交通灯效果。

七.实验程序

//*******************************************************************

SECOND1 EQU 30H ;东西秒寄存器

SECOND2 EQU 31H ;南北秒寄存器

DBUF EQU 40H ;显示缓冲1

TEMP EQU 44H ;显示缓冲2

LED_G1 BIT P1.0 ;东西绿灯

LED_R1 BIT P1.1 ;东西红灯

LED_G2 BIT P1.2 ;南北绿灯

LED_R2 BIT P1.3 ;南北红灯

Din BIT P1.6 ;串行显示数据

CLK BIT P1.7 ;串行显示时钟

ORG 0000H

LJMP START

ORG 0100H

START:

LCALL STATE0 ;调用状态0

LCALL DELAY ;调用延时

MOV TMOD,#01H ;置T0工作方式1

MOV TH0, #3CH ;置T0定时初值50mS

MOV TL0, #0B0H

SETB TR0 ;启动T0

CLR EA

LOOP: MOV R2,#20 ;置1S计数初值50mS*20=1S

MOV R3,#20 ;红灯20S

MOV SECOND1,#25 ;东西秒显示初值25S

MOV SECOND2,#25 ;南北秒显示初值25S

LCALL DISPLAY

LCALL STATE1 ;调用状态1

WAIT1: JNB TF0,WAIT1 ;查询50mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS

MOV TL0, #0B0H

SETB TR0 ;启动T0

MOV R2,#20 ;置50mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT1 ;状态1维持20S

;***************************************************

MOV R2,#5 ;置50mS计数初值5*4=20

MOV R3,#3 ;绿灯闪3S

MOV R4,#4 ;闪烁间隔200mS

MOV SECOND1,#5 ;东西秒显示初值5S

MOV SECOND2,#5 ;南北秒显示初值5S

LCALL DISPLAY

WAIT2: LCALL STATE2 ;调用状态2

JNB TF0,WAIT2 ;查询50mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS

MOV TL0, #0B0H

DJNZ R4,WAIT2 ;判200mS到否?未到继续状态2

CPL LED_G1 ;东西绿灯闪

MOV R4,#4 ;闪烁间隔200mS

DJNZ R2,WAIT2 ;判1S到否?未到继续状态2

MOV R2,#5 ;置50mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT2 ;状态2维持3S

;***************************************************

MOV R2,#20 ;置50mS计数初值

MOV R3,#2 ;黄灯2S

MOV SECOND1,#2 ;东西秒显示初值2S

MOV SECOND2,#2 ;南北秒显示初值2S

LCALL DISPLAY

WAIT3: LCALL STATE3 ;调用状态3

JNB TF0,WAIT3 ;查询30mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS

MOV TL0, #0B0H

MOV R2,#20 ;置50mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT3 ;状态3维持2S

;***************************************************

MOV R2,#20 ;置50mS计数初值

MOV R3,#20 ;红灯20S

MOV SECOND1,#25 ;东西秒显示初值25S

MOV SECOND2,#25 ;南北秒显示初值25S

LCALL DISPLAY

WAIT4: LCALL STATE4 ;调用状态4

JNB TF0,WAIT4 ;查询50mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值50mS

MOV TL0, #0B0H

DJNZ R2,WAIT4 ;判1S到否?未到继续状态4

MOV R2,#20 ;置50mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT4 ;状态4维持20S

;***************************************************

MOV R2,#5 ;置50mS计数初值5*4=20

MOV R4,#4 ;闪烁间隔200mS

MOV R3,#3 ;绿灯闪3S

MOV SECOND1,#5 ;东西秒显示初值5S

MOV SECOND2,#5 ;南北秒显示初值5S

LCALL DISPLAY

WAIT5: LCALL STATE5 ;调用状态5

JNB TF0,WAIT5 ;查询50mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值100mS

MOV TL0, #0B0H

DJNZ R4,WAIT5 ;判200mS到否?未到继续状态5

CPL LED_G2 ;南北绿灯闪

MOV R4,#4 ;闪烁200mS

MOV R2,#5 ;置100mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT5 ;状态5维持3S

;***************************************************

MOV R2,#20 ;置50mS计数初值

MOV R3,#2 ;黄灯2S

MOV SECOND1,#2 ;东西秒显示初值2S

MOV SECOND2,#2 ;南北秒显示初值2S

LCALL DISPLAY

WAIT6: LCALL STATE6 ;调用状态6

JNB TF0,WAIT6 ;查询100mS到否

CLR TF0

MOV TH0, #3CH ;恢复T0定时初值100mS

MOV TL0, #0B0H

DJNZ R2,WAIT6 ;判1S到否?未到继续状态6

MOV R2,#20 ;置100mS计数初值

DEC SECOND1 ;东西秒显示减一

DEC SECOND2 ;南北秒显示减一

LCALL DISPLAY

DJNZ R3,WAIT6 ;状态6维持2S

LJMP LOOP ;大循环

STA TE0: ;状态0

MOV P1,#0

CLR LED_G1

SETB LED_R1 ;东西红灯亮

CLR LED_G2

SETB LED_R2 ;南北红灯亮

RET

STA TE1: ;状态1

SETB LED_G1 ;东西绿灯亮

CLR LED_R1

CLR LED_G2

SETB LED_R2 ;南北红灯亮

RET

STA TE2: ;状态2

CLR LED_R1

CLR LED_G2

SETB LED_R2 ;南北红灯亮

RET

STA TE3: ;状态3

SETB LED_G1

SETB LED_R1 ;东西黄灯亮

CLR LED_G2

SETB LED_R2 ;南北红灯亮

RET

STA TE4: ;状态4

CLR LED_G1

SETB LED_R1 ;东西红灯亮

SETB LED_G2 ;南北绿灯亮

CLR LED_R2

RET

STA TE5: ;状态5

CLR LED_G1

SETB LED_R1 ;东西红灯亮

CLR LED_R2

RET

STA TE6: ;状态6

CLR LED_G1

SETB LED_R1 ;东西红灯亮

SETB LED_G2

SETB LED_R2 ;南北黄灯亮

RET

DISPLAY: ;数码显示

MOV A, SECOND1 ;东西秒寄存器

MOV B, #10 ;16进制数拆成两个10进制数

DIV AB

MOV DBUF+1,A

MOV A,B

MOV DBUF, A

MOV A, SECOND2 ;南北秒寄存器

MOV B, #10 ;16进制数拆成两个10进制数

DIV AB

MOV DBUF+3, A

MOV A,B

MOV DBUF+2, A

MOV R0,#DBUF

MOV R1,#TEMP

MOV R7,#4

DP10: MOV DPTR,#LEDMAP

MOV A,@R0

MOVC A,@A+DPTR

MOV @R1,A

INC R0

INC R1

DJNZ R7,DP10

MOV R0,#TEMP

MOV R1,#4

DP12: MOV R7,#8

MOV A,@R0

DP13: RLC A

MOV DIN,C

CLR CLK

SETB CLK

DJNZ R7,DP13

INC R0

DJNZ R1,DP12

RET

LEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B

DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F,, -

Delay: mov r5, #5

DLoop0:mov r6, #0

DLoop1:mov r7, #0

DLoop2:

NOP

NOP

djnz r7, DLoop2

djnz r6, DLoop1

djnz r5, DLoop0

ret

END

八.实验现象及小结

当程序开始运行时,东西绿灯亮,南北红灯亮,且持续的时间为25秒,数码管显示计数器的当前值,当还剩三秒的时候,绿灯开始闪烁。计时到0时,东西转黄灯,时间为5秒,计满之后东西红灯,南北绿灯。南北方向上的情况与之前东西的情况一致。当南北黄灯状态的计数值计满时,转回初始状态,完成一个循环。

通过这次实验,我了解到了用单片机实现综合功能的例子了。很强大,交通灯利用计数器和控制LED灯,以及数码管的显示来实现交通灯的功能。程序中包含咧很多子程序,逐一调用,并且按照一定的顺序调用,使得整个程序变得有条有理。在单片机的学习中,程序的编辑也是很有必要掌握的。要做到利用最简洁的语言来实现最复杂的功能,这是我们的目标。而我们还需要更多的去练习。

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

PLC实验报告(交通灯控制系统)

交通灯控制系统 一、实验目的 (1)用PLC构成十字路口交通灯控制系统。 (2)掌握程序调试的步骤和方法。 (3)掌握构建实际PLC控制系统的能力。 二、实验要求 (1)复习PLC常用指令的功能及用法。 (2)复习PLC程序设计的一般方法。 (3)根据实验要求提前编写程序,待上机验证调试修改。 三、实验环境 软件:STEP 7-Micro_WIN V40+ SP9:S7-200的编程软件 STEP 7-Micro_WIN V32指令库 硬件:THSMS-2A型PLC实验箱(西门子)、电脑、连接导线、USB-PPI 通信电缆 四、实验内容及步骤 交通灯控制系统面板图如上图所示,控制要求如下: 交通信号灯受一个总控制开关控制,当总控制开关接通时,信号灯系统开始工作。 开始工作后,南北红灯和东西绿灯同时点亮,4秒后东西绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成东西黄灯亮,2秒后东西黄灯和南北红灯同时熄灭,东西红灯和南北绿灯同时点亮。4秒后南北绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成南北黄灯亮,2秒后南北黄灯和东西红灯同时熄灭,再次切换成南北红灯和东西绿灯同时点亮。如此循环,周而复始。 当总控制开关断开时,所有信号灯都熄灭。

(1)确定I/O点数。列出详细的I/O地址分配表。如(该表仅为举例, (3)输入编好的PLC控制程序。 (4)运行程序,按控制要求设置各输入量,观察PLC运行情况,记录南北、东西各灯顺序亮、灭的运行情况。调试程序直至正确为止。 解:由题目要求得,

②梯形图如下图①,语句表如下图②,时序图如下图③: 图①图① 图②图② 图③ 五、注意事项

发光二极管流水灯实验

实验一发光二极管流水灯实验 一、实验目的: 1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮。开始时P0.0→P0.1….→P0.7,实现亮点以1HZ频率循环移动。 2.用PROTEUS 设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。 3.掌握发光二极管的控制方法。 二、PROTEUS电路设计: 三、程序部分 #include sbit control = P3^7; void delay(int z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { int i,tmp; control = 0; P0 = 0xef; delay(1000); for(i=1;i<=7;i++) { tmp = P0; P0 = (tmp>>1)+ 0x80; delay(1000); } }

实验二开关控制LED数码管实验 一、实验目的: 1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。(如K4K3K2K1全部按下,则显示F;若只有K2按下,则显示2。) 2.掌握LED数码管的静态显示。 3.掌握I/O口的控制方法。 二、PROTEUS电路设计:

三、程序部分 #include unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82, 0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,}; unsigned char KEY; void main() { while(1) { KEY = P2; switch(KEY) { case 0xff:P0 = table[0];break; case 0xfe:P0 = table[1];break; case 0xfd:P0 = table[2];break; case 0xfc:P0 = table[3];break; case 0xfb:P0 = table[4];break; case 0xfa:P0 = table[5];break; case 0xf9:P0 = table[6];break; case 0xf8:P0 = table[7];break; case 0xf7:P0 = table[8];break; case 0xf6:P0 = table[9];break; case 0xf5:P0 = table[10];break; case 0xf4:P0 = table[11];break; case 0xf3:P0 = table[12];break; case 0xf2:P0 = table[13];break; case 0xf1:P0 = table[14];break; case 0xf0:P0 = table[15];break; default :break; } } }

实验一 8255控制交通灯实验

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 8255 U36 D0D1D2D3D4D5D6D7WR RD RST A0 A1 PC5PC6PC7 PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678 VCC DS42 A0A1 CS CS1(0F000H) 510 R111510 R112 510R113510R114510R115510R116510R117510R118

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data

流水灯控制实验报告及程序

实验三流水灯控制实验 姓名专业通信工程学号成绩 一、实验目的 1.掌握Keil C51 软件与protues软件联合仿真调试的方法; 2.掌握如何使用程序与查表等方法实现流水效果; 3.掌握按键去抖原理及处理方法。 二、实验仪器与设备 1. 微机1台 2. Keil C51集成开发环境 3. Proteus仿真软件 三、实验内容 1.用Proteus设计一流水灯控制电路。利用P1口控制8个发光二级管L1—L8。P3.3口接一按 键K1。参考电路如下图所示。其中74LS240为八反响三态缓冲器/线驱动器。 2.用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的 次数,则其对应的流水效果如下: ① KEY=0: L1-L8全亮; ② KEY=1: L1-L8先全灭,然后自右向左单管点亮,如此循环; ③ KEY=2: L1-L8先全灭,然后自右向左依次点亮,如此循环; ④ KEY=3: L1-L8先全亮,然后自左向右依次熄灭,如此循环; ⑤ KEY=4: L1-L8先全灭,然后整体闪烁,如此循环; ⑥ KEY=5:自行设计效果。 以上移位及闪烁时间间隔均设置为0.3秒,按动5次按键后,再按键时,流水效果从头开始循环。 四、实验原理 1.按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号 波形如下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5~10ms。按键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。常用软件方法去抖动,即检测到按键闭合后执行一个5~10ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后,才能转入该键的处理程序。 2.74LS240:八反相三态缓冲器/线驱动器 引脚排列图:

实验6.1_8255并行接口与交通灯控制

8255端口地址: 控制寄存器地址28BH A口的地址288H B口的地址289H C口的地址28AH 实验程序: DATA SEGMENT BUF1 EQU 00100100B ;南北绿灯亮东西红灯亮BUF2 EQU 01000100B ;南北黄灯亮东西红灯亮BUF3 EQU 00000100B ;南北灯灭东西红灯亮BUF4 EQU 10000001B ;南北红灯亮东西绿灯亮BUF5 EQU 10000010B ;南北红灯亮东西黄灯亮BUF6 EQU 10000000B ;南北红灯亮东西灯灭DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,80H MOV DX,28BH OUT AX,AL ALL: MOV AL,BUF1 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,5 YEL1: MOV AL,BUF2 MOV DX,28AH OUT DX,AL CALL DELAYS MOV AL,BUF3 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL1 MOV AL,BUF4 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,4 YEL21: MOV AL,BUF5 MOV DX,28AH

OUT DX,AL CALL DELAYS MOV AL,BUF6 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL2 JMP ALL MOV AH,4CH INT 21H DELAYL PROC NEAR ;长延时 PUSH CX PUSH DI Y1:MOV CX,2000H X1:MOV DI,2000H DEC DI JNE X1 LOOP Y1 POP DI POP CX RET DELAYL ENDP DELAYS PROC NEAR ;短延时 PUSH CX PUSH DI Y2:MOV CX,500H X2:MOV DI,1000H DEC DI JNE X2 LOOP Y2 POP DI POP CX RET DELAYS ENDP CODE ENDS END START 桂林电子科技大学信息与通信学院

实验3 模拟交通灯控制实验

综合实验一:模拟交通灯控制实验 一、实验目的 1、了解时间常数的计算方法。 2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。 3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。 二、实验内容 编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。 三、实验要求 掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。 时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。编程时请充分考虑定期器的时间扩展问题。 利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出。 显示方式及相应的程序编写请参考实验一。显示部分的详细接线原理及对应的显示码参考图15。 掌握中断系统的基本概念及使用方法。如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念 信号灯的控制由并行口P0口输出进行快关控制。 四、实验线路图 图为交通灯控制接线示意图,除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出。 图为八段显示器接线原理图,具体说明了串行口工作模式0的硬件线路。由于开发板一有6个八段显示器,在实验过程中除正常计时的两个八段LED外,将其余四个灭掉。

图交通灯控制接线示意图 图八段显示器接线原理图五、程序及注释 ORG 0000H

ORG 000BH ;定时器计数器T0中断矢量 AJMP T0INT ORG 0030H MAIN: MOV TMOD,#01H ;设定时器/计数器T0为方式1,T1为方式0 MOV SCON,#00H MOV SP,#60H ;设堆栈指针SP为60H SETB TR0 ;启动定时器/计数器T0 SETB PT0 ;T0中断为高优先级 SETB ET0 ;允许定时器/计数器T0中断 SETB EA ;开中断 MOV TL0,#0B0H ;设T0时间常数为100ms MOV TH0,#3CH ;ORG 0100H RED: SETB ;设置灯的初始状态 CLR CLR CLR CLR SETB MOV R0,#30 ;红绿灯亮30秒 MOV R1,#10 ;黄灯亮10秒 LOOP1:MOV A,R0

EDA实验流水灯控制

彩灯控制器 一、设计内容及要求: 设计一个彩灯控制器,要求: 1.四路彩灯从左向右逐次渐亮,间隔为1秒。 2.四路彩灯从右向左逐次渐灭,间隔为1秒。 3.四路彩灯同时点亮,时间间隔为1秒,然后同时变暗,时间为1秒,反复4次。 二、总体框图 图(1)总体框图 根据设计要求,电路设计大体思路如下: 由脉冲发生器发出频率脉冲信号,利用计数器加法计数功能输出0000~1111的脉冲信号,经过数据选择器分别在0000~0011,0100~0111,1000~1111三个时段输出不同的高低电平,控制移位寄存器实现右移→左移→置数功能,从而控制彩灯按照设计要求实现亮灭。 三、选择器件 本次课程设计所用器件如表一: 表一本次课程设计所用器件

1.同步二进制计数器74LS163 表二7-3 74LS163功能表 根据逻辑图、波形图、功能表分析,74LS163具有如下功能:

管脚图逻辑符号 1)1是同步4位二进制加法计数器,M=16,CP上升沿触发 2)2既可同步清除,也可异步清除。同步清除时,清除信号的低电平将在下一个CP上升沿配合下把四个触发器的输出置为低 电平。异步清除时,直接用清除信号的低电平把四个触发器的输出置为低电平。 3)3同步预置方式:当LD = 0时,在CP作用下,计数器可并行打入预置数据.当LD = 1时,使能输入PT同时为高电平,在 CP作用下,进行正常计数。 4)PT任一为低时,计数器处于保持状态。 5) 5 CO为进位输出,可用来级联成n位同步计数器。 2.四位双向移位寄存器74LS194 74LS194内部原理图 74LS194四位双向移位寄存器具有左移、右移、并行数据输入、保持、清除功能。 1)从图1中74LS194的图形符号和引脚图分析。SRG4是4位移位寄存器符号,D0~D3并行数据输入端、D SL左移串行数据输入端、D SR右移串行数据输入端、S A(M0)和S B (M1)(即9脚和10脚)工作方式控制端分别接电平开关,置1或置0,CP 时钟输入端接正向单次脉冲,清零端接负向单次脉冲,Q0~Q3输出端。 表三逻辑符号逻辑框图

8255交通灯控制系统(倒计时显示,紧急中断)

《单片机原理与应用》 课程设计报告 题目:简单交通灯控制系统 专业:计算机科学与技术 班级:09计算机1班 学号:09070009 姓名:陈民厅 天津理工大学中环信息学院 计算机工程系 2011年12月29 日

交通灯控制系统设计 摘要 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 关键词:单片机,交通灯,应急开关,LED

1绪论 1.1设计背景 红绿交通灯自动控制系统在城市十字(或丁字)路口有着广泛的应用。随着社会的进步,人们生活水平的提高,私家车数量会不断增加,对城市交通带来前所为有的压力。道路建设也将随之发展,错综复杂的道路将不段增多。为维持稳定的交通秩序,红绿灯自动控制系统将得到更为广泛的应用。现在实际应用的红绿灯系统中一般没有倒计时功能,使司机和行人不知道指示灯还有多久将会改变现有状态。本设计应用基本数字电路知识,采用LED灯作红、绿、黄三交通灯,用七段数码管作同步倒计时显示。实现两方向通行时间不相等的控制并配有倒计时。 1.2设计目的 熟悉单片机控制系统,并了解系统设计的一般规律。 掌握8255芯片的结构及编程方法。 熟悉模拟交通灯控制的实现方法。 1.3设计任务及要求 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 2 设计使用的仪器和设备 2.1 达爱思教仪 本实验采用达爱思教仪型号是Dais-PG206FD 2.2八段数码管 码管, 2.3 8255芯片 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(8255引脚如图1,8255编程模式如图2)。 的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接

8255,8253交通灯模拟实验

微机原理课程设计——8255,8253交通灯模拟实验 文档介绍:交通信号灯的控制: 1.通过8255A并口来控制LED发光二极管的亮灭。 2.A口控制红灯,B口控制黄灯,C口控制绿灯。 3.输出为0则亮,输出为1则灭。 4.用8253定时来控制变换时间。 要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到1、3路口方向。之后,重复上述过程。 系统原理 工作原理说明: 此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30S定时到。OUT2产生1MHZ 方波通过或门和8255的B口共同控制黄

实验三-交通灯控制实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合□√设计□创新实验日期:实验成绩: 实验三交通灯控制实验 一.实验目的 掌握十字路口交通灯控制方法。 二.实验内容 利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4 位LED 数码管显示时间,LED 显示红绿灯状态。 三.实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四.实验说明和电路原理图 交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。 双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。 本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区) 实验框图如图:

五.实验预习要求 学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。 六.实验步骤 1)系统各跳线器处在初始设置状态。 P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)观察十字路口交通灯效果。 七.实验程序

综合实验一——按键控制流水灯实验(查询方式)

北京科技大学微型计算机原理实验报告 学院:____自动化学院________________ 专业、年级:_自动化1101_ ______________ 姓名:__廖文骏_ ________________ 学号:_ 20111002124 ____________ 指导教师:___ _____王粉花____________ 2013年12 月

综合实验一 按键控制流水灯实验(查询方式)实验学时:2学时 一、实验目的 1.掌握ATmega16 I/O口操作相关寄存器 2.掌握CodeVision AVR软件的使用 3. 复习C语言,总结单片机C语言的特点 二、实验内容 1. 设计一个简单控制程序,功能是8个LED逐一循环发光0.5s,构成“流水灯”。 2. 用两个按键K1和K2控制流水灯(中断方式): (1)当按下K1时,流水灯从左向右流动; (2)当按下K2时,流水灯从右向左流动。 三、实验所用仪表及设备 硬件:PC机一台、AVR_StudyV1.1实验板 软件:CodeVision AVR集成开发软件、SLISP下载软件 四、实验原理 ATmega16芯片有PORTA、PORTB、PORTC、PORTD(简称PA、PB、PC、PD)4组8位,共32路通用I/O接口,分别对应于芯片上32根I/O引脚。所有这些I/O口都是双(有的为3)功能复用的。其中第一功能均作为数字通用I/O接口使用,而复用功能则分别用于中断、时钟/计数器、USRAT、I2C和SPI串行通信、模拟比较、捕捉等应用。这些I/O口同外围电路的有机组合,构成各式各样的单片机嵌入式系统的前向、后向通道接口,人机交互接口和数据通信接口,形成和实现了千变万化的应用。 每组I/O口配备三个8位寄存器,它们分别是方向控制寄存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx(x=A\B\C\D)。I/O口的工作方式和表现特征由这3个I/O口寄存器控制。 AVR通用I/O端口的引脚配置情况:

微机原理实验交通灯控制实验

微机原理实验交通灯控制实验

课程设计时间:2014.12.22---2015.1.2微机原理专业课程设计任务书 学生姓名专业 班级 学号 题 目 交通灯控制实验 课题 性质 工程设计课题来源自拟课题指导 教师 同组姓名 主要内容L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

任务要求1:掌握并理解芯片8255和8253计时器工作原理 2:掌握并理解源程序和程序中的函数 3:熟悉8255内部结构和与单片机的接口逻辑,掌握8255芯片的3种工作方式。 4:了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法 参考文献《微型计算机原理及运用》谭浩强清华大学出版社 《16/32位微机原理、汇编语言及接口技术》陈涛机械工业出版社《微机接口技术应用》 审查意见指导教师签字: 教研室主任签字:年月日 一:设计的目的和内容 1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 2 内容:如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东 西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

图1 二:设计思想: 在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H (这是我通过实验的结果)。人眼感觉闪烁的效果只是短延时的结果此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如上图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接南,东,北,西路口 的红灯,B,C口类推。8086工作在最小模式,低八位端口AD 0~AD 7 接到8255和 8253的D 0~D 7 ,AD 8 ~AD 15 通过地址锁存器8282,接到三八译码器,译码后分别连 到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD 18, 8086通过检测此端口是否有高电平来判断是否30S定时到。OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。 三:设计方案与硬件连接 设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪

交通灯控制电路设计与仿真

交通灯控制电路设计与仿真 一、实验目的 1、了解交通灯的燃灭规律。 2、了解交通灯控制器的工作原理。 3、熟悉 VHDL 语言编程,了解实际设计中的优化方案。 二、实验原理 交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 在实验中使用 8 个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为 20s。数码管的时间总是显示为 19、18、17……2、1、0、19、18……。在显示时间小于 3 秒的时候,通车方向的黄灯闪烁。 三、实验内容 本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱 的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的 1KHz 时钟,黄灯闪烁时钟要求为 2Hz,七段码管的时间显示为 1Hz脉冲,即每 1s 中递 减一次,在显示时间小于 3 秒的时候,通车方向的黄灯以 2Hz 的频率闪烁。系统 中用 S1 按键进行复位。 实验箱中用到的数字时钟模块、按键开关、数码管与 FPGA 的接口电路,以及 数字时钟源、按键开关、数码管与 FPGA 的管脚连接在以前的实验中都做了详细说 明,这里不在赘述。交通灯模块原理与 LED 灯模块的电路原理一致,当有高电平输 入时 LED 灯就会被点亮,反之不亮。只是 LED 发出的光有颜色之分。其与 FPGA 的 管脚连接如下表 19-1 所示: 四、实验步骤 1、打开 QUARTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个 VHDL File,打开 VHDL 编辑器对话框。

微机原理实验四实验报告 8255控制交通灯实验

实验四 8255控制交通灯实验 一、实验目的与要求 1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、编写程序:使用8255的PA0.. 2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。 四、实验原理图 五、实验步骤 六、演示程序

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯 CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯 CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯 XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯

基于8253和8255的模拟交通灯控制系统

广东外语外贸大学信息科学技术学院 《微型计算机接口技术》大作业设计报告 基于8255,8253的 发声人性化交通灯控制设计 日期:2011-1-7

摘要 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。井然秩序的实现,靠的是交通信号灯的自动指挥系统。交通信号灯控制方式有很多。本系统采用8255A芯片实现了A口设置红、绿、黄灯点亮时间的功能,从而控制LED发光二极管实现红、黄、绿灯循环点亮。另外结合日常生活经验,并且从亚残会中对残疾人的生活不便中得出感悟,采用8253进行控制扬声器,在红、绿灯变换之间黄灯闪烁时,同时添加了“声音提示"功能。整个系统具有固定的“红灯—黄灯—绿灯”转换间隔,并自动切换,对东西南北方向的道路进行“自动”的控制。但是,经过小组成员提出的各种假设,发现此系统需要加入更多人性化的元素:交警可以根据实际的路面情况,针对不同的突发事件,进行手工控制红绿灯的转换。例如救护车警车执行紧急任务;例如东西道路塞车,南北道路空闲无车辆行驶时,需要灵活调节红绿灯的转化。通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。 关键字:8255 交通灯控制8253 发声人性化 第一部分概论 1.1设计任务:交通信号灯的控制 (1)通过8255并行接口来控制LED发光二极管的亮灭,并适当延时。(2)黄灯闪烁时,通过8253控制扬声器发出声音,以提醒灯的转换。(3)通过8255并口控制,人工进行交通灯的转换。 1.2 任务要求 (1)南北路口的绿灯、东西路口的红灯同时亮5秒左右。 (2)南北路口的黄灯闪烁若干次,扬声器鸣叫,同时东西路口的红灯闪烁。(3)南北路口的红灯、东西路口的绿灯同时亮5秒左右。

模拟交通灯控制实验

实验报告 课程名称:微机原理与接口技术 指导老师:彭勇刚 成绩:__________________ 实验名称:_______________________________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 模拟交通灯控制实验 一、实验目的 1、了解时间常数的计算方法。 2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。 3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。 二.实验内容和实验原理 编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED 显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。 实验线路图如下图:装 订 线

除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出 三.实验器材: 1. Micetek仿真器一台 2. 实验板一块 四.程序及实验结果: 调试通过的.LST文件如下: ORG 0000H 0000 0130 AJMP MAIN ORG 000BH ;定时器T0的中断矢量 000B 21A3 AJMP T0INT ;跳转到中断服务程序 ORG 0030H MAIN: 0030 758901 MOV TMOD,#01H ;写控制字,T0为方式1; 0033 759800 MOV SCON,#00H 0036 758160 MOV SP,#60H ;设堆栈指针SP为60H 0039 D28C SETB TR0 ;启动T0; 003B D2B9 SETB PT0 ;T0中断为高优先级 003D D2A9 SETB ET0 ;允许T0中断 003F D2AF SETB EA ;开放CPU中断 0041 758AB0 MOV TL0,#0B0H ;定时常数为100ms 0044 758C3C MOV TH0,#3CH ORG 0100H RED: ;红灯 0100 D280 SETB P0.0 ;设置输出的初始状态 0102 C281 CLR P0.1 0104 C282 CLR P0.2 0106 C283 CLR P0.3 0108 C284 CLR P0.4 010A D285 SETB P0.5 010C 781E MOV R0,#30 ;红灯亮30s 010E 790A MOV R1,#10 ;黄灯亮10s 0110 E8 LOOP1:MOV A,R0 0111 120166 LCALL SHOW ;转移到数码显示子程序 0114 3000FD WAIT1:JNB 20H.0,WAIT1 ;数码管计数间隔为1s 0117 C200 CLR 20H.0 0119 D9F9 DJNZ R1,WAIT1 011B 790A MOV R1,#10 011D 18 DEC R0 ;红灯从30s开始倒计时 011E B800EF CJNE R0,#00H,LOOP1

交通灯控制实验

交通灯控制实验 学院:信息技术学院班级:计07_2 第一完成人:王双卿学号:200707111093 第二完成人:王万昭学号:200707111078 第三完成人:张博学号:208070711104 第四完成人:曹然学号:208070711166 第四完成人:张伟学号:208070711173 实验目的:综合运用8259A,8253,8255A三个接口芯片,学会它们之间的配合使用实验内容:如下图所示,L7,L6,L5作为南北路口的交通灯,与PC7,PC6,PC5相 连;L2,L1,L0作为东西路口的交通灯,与PC2,PC1,PC0相连,编程使六个交通灯,按交通灯变化规律,循环点亮或熄灭。 实验中各个芯片间的连线:

程序流程图:

实验程序: data segment count dw 0 data ends stack segment stack ‘stack’ db 100 dup(?) stack ends code segment main proc far assume cs:code,ds:data,es:data,ss:stack start: mov ax,stack mov ss,ax mov ax,data mov ds,ax mov al,00110101B ;8253控制字:通道0,先写低字节,后写高字节,方式2,二进制计数mov dx,283h out dx,al ;写入控制字 mov al,00h

mov dx,280h ;先送出低字节 out dx,al mov al,50h ;后送出高字节 out dx,al mov al,01110111b ;8253控制字:通道1,先写低字节,后写高字节,方式3,二进制计数mov dx,283h out dx,al ;写入控制字 mov al,00h mov dx,281h ;先送出低字节 out dx,al mov al,20h ;后送出高字节 out dx,al mov al,10000000b ;8255A控制字: mov dx,28bh ;写入控制字 out dx,al mov al,ofh ;得到原中断向量 mov ah,35h int 21h push es ;存储原中断向量 push bx push ds mov dx,offset qq ;设置中断向量 mov ax,seg qq mov ds,ax mov al,0fh mov ah,25h int 21h pop ds in al,21h ;设置中断屏蔽位 and al,7fh out 21h,al sti wai: mov ah,1 int 16h jz wai pop dx pop ds mov al,0fh mov ah,25h

相关主题
文本预览
相关文档 最新文档