1.实验要求: (1)正常情况下,红灯、绿灯5~10 秒定时变化 (2)分别设置南北行人中断按钮和东西行人中断按钮,当 行人过马路是绿灯亮并延时5 (3)设置紧急开关,当按下开关时所以路口的信号灯全为红色 2.发挥部分: (1)红灯和绿灯转换之间设置黄灯,并且黄灯闪烁3 (2)紧急红灯按下时发出警报声3.实验电路图 4.实验框图 5.实验程序 P8255A EQU 218H ;8255 连接端口定义 P8255B EQU 219H P8255C EQU 21AH P8255K EQU 21BH TIM_CTL EQU 203H ;8253 连接端口定义 TIMER0 EQU 200H TIMER1 EQU 201H INT0 EQU 220H ;8259 连接端口定义 INT1 EQU 221H MDAC EQU 228H ;0832 连接端口定义 STACKSEGMENT STACK STA DB 50 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START: CLI MOV AX,TOP MOV SP,AX PUSH DS MOV AX,0000H ;定义中断向量IRQ0 MOV DS,AX MOV AX,OFFSET IRQ0 ADD AX,0000H MOV SI,20H MOV [SI],AX MOV AX,CS MOV SI,22H MOV [SI],AX MOVAX,0000H ;定义中断向量IRQ1 MOV DS,AX MOV AX,OFFSET IRQ1 ADD AX,0000H MOV SI,24H MOV [SI],AX MOV AX,CS MOV SI,26H MOV [SI],AX MOVAX,0000H ;定义中断向量IRQ2 MOV DS,AX MOV AX,OFFSET IRQ2 ADD AX,0000H MOV SI,28H MOV [SI],AX MOV AX,CS MOV SI,2AH MOV [SI],AX POP DS MOVDX,TIM_CTL ;计数器0 工作在方式1 构成单稳态触发器 MOV AL,00100010B OUT DX,AL MOV DX,TIMER0 MOV AL,0F0H OUTDX,AL MOV DX,TIM_CTL MOV AL,01110110B ;计数器1 工作在方式3 构成方波发生器 OUT DX,AL MOV DX,TIMER1 MOV AL,0FFH OUTDX,AL MOV AL,0FFH OUTDX,AL MOVAL,13H ;初始化ICW1,沿触发且需要ICW4 MOV DX,INT0 OUT DX,AL MOV CX,0FFFH LOOP MOVAL,8 ;初始化ICW2,自定义8 号中断 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH LOOP MOVAL,9 ;初始化ICW3,自定义9 号中断 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH LOOP MOVAL,10 ;初始化ICW2,自定义10 号中断 MOV DX,INT1 OUT DX,AL MOV CX,0FFFH LOOP MOVDX,INT1 ;设置命令字 OCW1,只响应 IR0、IR1、 IR2 引脚中断请求 MOV AL,0F8H OUT DX,AL MOV CX,0FFFH LOOP MOVDX,INT0 ;设置命令字OCW2,普通EOI 命令 MOV AL,20H OUT DX,AL MOV CX,0FFFH LOOP MOVDX,P8255K ;8255 初始化, 口输出接LS240MOV AL,10000001B OUT DX,AL STATE1:MOV DX,P8255B ;东西红,南北绿 MOV AL,01011010B OUT DX,AL MOV CX,10 ;计时10 S1:CALL DELAY LOOP S1 STATE2: MOV DX,P8255B ;东西绿,南北黄 MOV AL,00000101B OUT DX,AL CALL SHANSHUO STATE3: MOV DX,P8255B ;东西绿,南北红 MOV AL,10100101B OUT DX,AL MOV CX,10 ;计时10 S3:CALL DELAY LOOP S3 STATE4: MOV DX,P8255B ;东西黄,南北绿 MOV AL,00001010B OUT DX,AL MOV CX,3 CALL SHANSHUO JMP STATE1 ;循环到状态STATE1,即东西红,南北绿 DELAYPROC ;延时子程序1,交通灯持续时间 PUSH CX PUSH DX MOV DX,20 DL500: MOV CX,2801 DL10ms: