实验五:交通灯一、实验目的- 熟悉51单片机的汇编指令。
- 进一步了解8255芯片的结构及编程方法。
- 学习模拟交通控制的实现方法。
二、实验设备STC89C52单片机实验板、串口下载线、USB连接线、电脑 3、程序框图4、实验电路五、实验原理及内容- 8255的PA0~PA7、 PB0~PB3 接发光二极管 L15~L13、L11~L9、L7~L5、L3~L1。
- 执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
- 实验接线图:
ORG 0BB0H 0BB0 758160 JOD0: MOV SP,#60H 0BB3 90FFDB MOV DPTR,#0FFDBH 0BB6 7488 MOV A,#88H 0BB8 F0 MOVX @DPTR,A ;8255初始化 0BB9 90FFD8 MOV DPTR,#0FFD8H OBBC 74B6 MOV A,#0B6H 0BBE F0 MOVX @DPTR,A 0BBF A3 INC DPTR 0BC0 740D MOV A,#0DH 0BC2 F0 MOVX @DPTR,A ;点亮4个红灯 0BC3 7A25 MOV R2,#25H ;延时 0BC5 120213 LCALL DELY 0BC8 90FFD8 JOD3: MOV DPTR,#0FFD8H 0BCB 7475 MOV A,#75H 0BCD F0 MOVX @DPTR,A 0BCE A3 INC DPTR 0BCF 740D MOV A,#0DH 0BD1 F0 MOVX @DPTR,A ;东西绿灯亮,;南北红灯亮 0BD2 7A55 MOV R2,#55H 0BD4 120213 LCALL DELY ;延时 0BD7 7F05 MOV R7,#05H ;闪烁次数 0BD9 90FFD8 JOD1: MOV DPTR,#0FFD8H 0BDC 74F3 MOV A,#0F3H 0BDE F0 MOVX @DPTR,A 0BDF A3 INC DPTR 0BE0 740C MOV A,#0CH 0BE2 F0 MOVX @DPTR,A ;东西黄灯亮,南北红灯亮 0BE3 7A20 MOV R2,#20H 0BE5 120213 LCALL DELY ;延时 0BE8 90FFD8 MOV DPTR,#0FFD8H 0BEB 74F7 MOV A, #0F7H 0BED F0 MOVX @DPTR, A 0BEE A3 INC DPTR 0BEF 740D MOV A, #0DH 0BF1 F0 MOVX @DPTR, A ;南北红灯亮 0BF2 7A20 MOV R2, #20H 0BF4 120213 LCALL DELY ;延时 0BF7 DFE0 DJNZ R7, JOD1 ;闪烁次数未到,继续 0BF9 90FFD8 MOV DPTR,#0FFD8H 0BFC 74AE MOV A, #0AEH 0BFE F0 MOVX @DPTR,A 0BFF A3 INC DPTR 0C00 740B MOV A, #0BH 0C02 F0 MOVX @DPTR,A ;东西红灯亮,南北绿灯亮 0C03 7A55 MOV R2,#55H 0C05 120213 LCALL DELY ;延时 0C08 7F05 MOV R7,#05H ;闪烁次数 0C0A 90FFD8 JOD2: MOV DPTR,#0FFD8H 0C0D 749E MOV A,#9EH 0C0F F0 MOVX @DPTR,A 0C10 A3 INC DPTR 0C11 7407 MOV A,#07H 0C13 F0 MOVX @DPTR,A ;东西红灯亮,南北黄灯亮 0C14 7A20 MOV R2,#20H 0C16 120213 LCALL DELY ;延时 0C19 90FFD8 MOV DPTR,#0FFD8H 0C1C 74BE MOV A,#0BEH 0C1E F0 MOVX @DPTR,A 0C1F A3 INC DPTR 0C20 740F MOV A,#0FH 0C22 F0 MOVX @DPTR,A ;东西红灯亮 0C23 7A20 MOV R2,#20H 0C25 120213 LACLL DELY ;延时 0C28 DFE0 DJN R7,JOD2 ;闪烁次数未到继续 0C2A 020BC8 LJMP JOD3 ;循环 ORG 0213H 0213 C002 DELY: PUSH 02H 0215 C002 DEL2: PUSH 02H 0217 C002 DEL3: PUSH 02H ;延时 0219 DAFE DEL4: DJNZ R2,DEL4 021B D002 POP 02H 021D DAF8 DJNZ R2,DEL3 021F D002 POP 02H 0221 DAF2 DJNZ R2,DEL2 0223 D002 POP 02H 0225 DAEC DJNZ R2,DELY 0227 22 RET END 六、实验结果七、实验收获及体会本次试验我们做的是交通灯的实验,并且成功完成了此次实验。 在本次试验中,我们学习到了如何对8255的PC口进行位操作:8255的控制字中,D7位为1时表示方式选择,D7位为0时,表示对C口进行置为/复位。C口共有8个二进制位,控制字中的D3、D2、D1三位的编码与C口的某一位对应,而对指定位进行的操作则由D0确定。如:D0=0时,D3、D2、D1分别为1、0、1,则C口的第五位PC5置0;若D0=1时,D3、D2、D1分别为0、0、1,则C口的第一位PC1置1。在控制字中D6、D5、D4是无效位。在实验中,由于对于片选端口所对应的地址不是很熟悉,使得程序运行结果出错;经过翻阅实验书,找到了片选区中各个片选口所对应的端口地址,并将其改正。
完整单片机实验报告下载(word格式 可编辑):
http://www.51hei.com/bbs/dpj-88784-1.html
|