《微机原理 8259程序》由会员分享,可在线阅读,更多相关《微机原理 8259程序(5页珍藏版)》请在金锄头文库上搜索。
1、assume cs:codecode segment publicorg 100hstart: mov cx,0start1: climov dx,04a0hmov ax,13hout dx,ax ;ICW1, ICW4 NEEDEDmov dx,04a2hmov ax,80hout dx,ax ;ICW2 中断类型80hv hmov ax,01h;01out dx,ax ;ICW4mov ax,00hout dx,ax ;OCW1, 开放所有中断nop ;以上为8259 初始化mov ax,0mov ds,axmov di,200h ;初始化中断向量表mov ax,offset int0mo
2、v ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int1mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int2mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int3mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int4mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int5mo
3、v ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int6mov ds:di,axadd di,2mov ds:di,100hadd di,2mov ax,offset int7mov ds:di,axadd di,2 ;上述程序为芯片8259 的初始化程序 mov ds:di,100h ;建议不熟练者不要修改。main: mov ax,0sti ;开中断。waiting: cmp ax,0hje waiting ;没发生中断,则等待mov dx,04b0hout dx,ax ;对应LED灯亮mov cx,0delay1:loop de
4、lay1 ;数字滤波,按键去抖jmp start1int0: cli ;关中断。以下类推。nop ;此两行为IR0 的中断服务程序mov ax,0feh ;用户可修改。iret ;中断返回,以下类推。int1: clinop ;此两行为IR1 的中断服务程序,mov ax,0fdh ;用户可修改。iretint2: clinop ;此两行为IR2的中断服务程序,mov ax,0fbh ;用户可修改。iretint3: clinop ;此两行为IR3的中断服务程序,mov ax,0f7h ;用户可修改。iretint4: clinop ;此两行为IR4的中断服务程序,mov ax,0efh ;用户可修改。iretint5: clinop ;此两行为IR5的中断服务程序,mov ax,0dfh ;用户可修改。iretint6: clinop ;此两行为IR6的中断服务程序,mov ax,0bfh ;用户可修改。iretint7: clinop ;此两行为IR7的中断服务程序,mov ax,07fh ;用户可修改。iretcode endsend start