交通灯控制实验

  • 格式:doc
  • 大小:87.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通灯控制实验

学院:信息技术学院班级:计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

mov ah 4ch

int 21h

ret

main endp

delay proc near ;延时子程序

push di

push si

mov di,2000

delay1:mov si,3000

delay2: dec si

jnz delay2

dec di

jnz delay1

pop si

pop di

ret

delay endp

qq proc near ;中断服务子程序

push ds

push ax

push cx

push dx

mov ax,data

mov ds,ax

sti

cmp count ,0

jnz pp

mov cx,3

mov al,0 ;东西路口的绿灯灭mov dx,28bh

out dx,al

mov al,00001111b ;南北路口的红灯亮out dx,al

loop1: ;东西路口的黄灯闪mov al,00000011b

out dx,al

call delay

mov al,00000010b

out dx,al

call delay

jnz loop1

mov al,00001110b ;南北路口的红灯灭

out dx,al

mov al,00001011b ;南北路口的绿灯

out dx,al

mov al,00000101b ;东西路口的红灯同时亮out dx,al

inc count

jmp exit

pp:

mov cx,3

mov al,00001010b ;南北路口的绿灯灭

mov dx,28bh

out dx,al

loop2: ; 南北路口的黄灯闪mvo al,00001101b

out dx,al

call delay

mov al,00001100b

out dx,al

call delay

dec cx

jnz loop2

mov al,00001111b ;南北路口的红灯亮out 28bh,al

mov al,00000100b ;东西路口的红灯灭out dx,al

mov al,1 ;东西路口的绿灯亮

out dx,al

dec count

exit:cli

mov al,20h

out 20h,al

pop dx

pop cx

pop ax

pop ds

iret

qq endp

code ends

end start