⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp1_1.txt

📁 微机接口的课程设计
💻 TXT
字号:
code segment
	assume cs:code
start:
	
	cli
	mov cx,1
	mov bx,1
	mov di,1
	mov al,0b0h		;8255A端口A为方式1、输入,端口B为方式0、输出
	out 63h,al
	mov al,09h		;PC4允许中断
	out 63h,al

	mov ax,0
	mov ds,ax
	mov ax,offset irq1	;中断1偏移地址
	add ax,2000h
	mov si,09h*4
	mov [si],ax
	mov ax,0
	mov [si+2],ax


	mov ax,offset irq7	;中断7偏移地址
	add ax,2000h
	mov si,0fh*4
	mov [si],ax
	mov ax,0
	mov [si+2],ax
	in  al,21h
	and al,7dh			;打开中断1和中断7
	out 21h,al

	mov  dx,43h			;设定控制端口
	mov  al,10110100B	;写入控制字,设定8253工作在方式2,先低字节,后高字节,十进制计数
	out  dx,al
	mov  dx,42h   		;设计数器2
	mov  al,10011010b			;写计数初值低字节
	out  dx,al
	mov  al,00101110b			;写计数初值高字节
	out  dx,al

	mov al,11111111b	;控制灯初始化为都不亮
	out 61h,al 
	mov al,20h
	out 20h,al
	
a1: sti
	hlt
	jmp a1
	
irq7:
	cmp bx,100
	jne contiue
	mov bx,1
	cmp cx,45
	jne count
	mov cx,1    ;循环记数
count:	
	cmp cx,15
	jbe  green
	cmp cx,16
	je  nolight
	cmp cx,17
	je  green
	cmp cx,18
	je  nolight
	cmp cx,19
	je  green
	cmp cx,20
	je  nolight
	cmp cx,21
	cmp cx,40
	jbe red
	cmp cx,42
	je  red
	cmp cx,44
	je  red
nolight:
	mov al,11111111B	;控制灯不亮
	jmp control
green:					;控制绿灯亮
	mov al,11110000B
	jmp control
red:					;控制红灯亮
	mov al,00001111B
	jmp control
control:
	inc cx				;计数器加1
	out 61h,al
	mov al,20h
	out 20h,al
	iret
contiue:
	inc bx
	mov al,20h
	out 20h,al
	iret
irq1:
	cmp di,0
	jne open
	mov al,11110111B	;测试用
	out 61h,al
	
	mov al,08h		;PC4禁止中断
	out 63h,al
;	in  al,21h
;	and al,0ffh
;	out 21h,al
;	mov al,20h
;	out 20h,al
	mov di,1
	iret
open:
	mov al,11110100B	;测试用
	out 61h,al
	
	mov al,09h		;PC4允许中断
	out 63h,al
;	in  al,21h
;	and al,7dh
;	out 21h,al	
;	mov al,20h
;	out 20h,al
	mov di,0
	iret
code ends
end start




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -