西南交大 微机接口 实验代码.doc
《西南交大 微机接口 实验代码.doc》由会员分享,可在线阅读,更多相关《西南交大 微机接口 实验代码.doc(10页珍藏版)》请在三一办公上搜索。
1、开关实验:io8255aequ 288hio8255cequ 28ahio8255zequ 28bhcode segmentassume cs:codestart:mov dx,io8255zmov al,8bhout dx,alinout:mov dx,io8255cin al,dxmov dx,io8255aout dx,almov dl,0ffhmov ah,06hint 21hjz inoutmov ah,4chint 21hcode endsend start 交通灯控制实验:data segmentio8255c equ 28Ahio8255z equ 28Bhportc1 db
2、21h db 81h,01h,81h,01h,81h,01h,81h,01h,81h,01h,81h,01h db 44h db 42h,40h,42h,40h,42h,40h,42h,40h,42h,40h,42h,40h db 0ffhdata endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255z mov al,90h out dx,al mov dx,io8255cre_on: mov bx,0;on: mov al,portc1bx cmp al,0ffh jz re_on
3、out dx,al inc bxmov cx,200test al,24hjz de1mov cx,10000de1: mov di,9000de0: dec di jnz de0 loop de1 push dx mov ah,06hmov dl,0ffhint 21hpop dxjz onexit:mov ah,4ch int 21hcode endsend start七段数码管静态显示实验:io8255aequ 288hio8255zequ 28bhdata segmentled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1db 0dh,
4、0ah,Input a num(0-9),other key is exit,0dh,0ah,$data endscode segment assume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255zmov ax,80hout dx,alsss:mov dx,offset mesg1mov ah,09hint 21hmov ah,01int 21hcmp al,0jl exitcmp al,9jg exitsub al,30hmov bx,offset ledxlatmov dx,io8255aout dx,aljmp sssex
5、it:mov ah,4chint 21hcode endsend start数码管循环显示0099data segment io8255a equ 288h io8255b equ 289hio8255c equ 28ahio8255z equ 28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh buffer1 db 0,0 bz dw 01,00data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b ;将8255设为A口输出mov
6、 al,80hout dx,almov di,offset buffer1 ;设di为显示缓冲区loop1: mov cx,0300h;循环次数loop2: mov bh,02 lll: mov byte ptr bz,bhpush didec diadd di,bzmov bl,di ;bl为要显示的数pop dimov bh,0mov si,offset led;置led数码管偏移地址为SIadd si,bx;求出对应的led码mov al,byte ptrsimov dx,io8255c;自8255A的口输出out dx,almov al,byte ptr bz ;使相应的数码管亮mov
7、 dx,io8255cout dx,alpush cxmov cx,3000 ;若显示过快,可更改cx值最大为0ffffhdelay: loop delay ;延时pop cxmov bh,byte ptr bzshr bh,1jnz lllloop loop2 ;循环延时mov ax,word ptrdi mov ah,01int 16hjne exit ;有键按下转exitmov ax,word ptrdiinc alaaamov di,al;al中为十位mov di+1,ah;ah中为个位jmp loop1exit: mov dx,io8255amov al,0;关掉数码管显示out d
8、x,almov ah,4ch;返回DOSint 21hcode endsend start键盘接口实验(行扫描法)data segmentio8255a equ 288hio8255c equ 28ahio8255z equ 28bhkey db 37h,38h,39h,41h,54h,52h db 34h,35h,36h,42h,53h,4dh db 31h,32h,33h,43h,48h,4ch db 30h,46h,45h,44h,58h,4ehdata endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax
9、lp0: mov dx,io8255z mov al,90h out dx,al; mov di,0 mov si,0 lp1:mov al,00h mov dx,io8255c out dx,al mov dx,io8255a in al,dx and al,3fh cmp al,3fh jz lp1 call DELAY mov ah,0feh mov cx,4 lp2:mov al,ah mov dx,io8255c out dx,al mov dx,io8255a in al,dx and al,3fh cmp al,3fh jnz aa; rol ah,1 loop lp2 jmp
10、lp1 aa: push ax mov dx,io8255a in al,dx nop nop nop nop nop and al,3fh cmp al,3fh jnz aa pop axl4: mov cx,6lp4:shr al,1 jnc l3 inc si loop lp4l3: mov cx,4 mov al,ah lp3:shr al,1 jnc lp5 inc di loop lp3lp5:mov bx,di mov al,6 mul bl add ax,sidisp: mov bx,offset key xlat mov dh,0 mov dl,al mov ah,2 int
11、 21h jmp lp0exit: mov ah,4ch int 21h DELAY PROC NEAR PUSH CX MOV CX,20h L1:loop L1 pop cx ret DELAY ENDP code ends end startBCA: mov al,ahmov dx,io8255cout dx,al;输出行值mov dx,io8255ain al,dx;读入列值and al,00111111b;保留低4位有效值cmp al,00111111b;判断A0行是否有键按下mov bl,al;有键按下,确定该键的值rol ah;本行无键按下则继续查找下一行,循环左移(使下一行输出
12、0)loop BCAjmp ABCrealy:mov dx,io8255cin al,dxnopnopnopand al,0fhcmp al,0fhjnz realymov cx,4mov al,bllp1: shr al,1jnc lp2inc diloop lp1lp2:mov cx,6mov al,ahlp20:shr al,1jnc lp3inc siloop lp20lp3:mov bx,dimov al,6mul bladd ax,sidisp:mov bx,offset keyxlatmov dh,0mov dl,almov ah,2int 21hjmp lp0exit:mov
13、ah,4chint 21hdelay proc nearpush cxmov cx,20hl1:loop l1 pop cx retdelay endpcode endsend startdata segment io8255a equ 288h io8255b equ 289h io8255c equ 28ah io8255z equ 28bh key db 37h,38h,39h,41h,54h,52h db 34h,35h,36h,42h,53h,4dh db 31h,32h,33h,43h,48h,4ch db 30h,46h,45h,44h,58h,4eh led1 db 3fh,0
14、6h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh led2 db 77h,7ch,39h,5eh,79h,71hdata endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,axlp0: mov dx,io8255z mov al,90h out dx,al;c shu chu ,a shu ru lp1: mov di,0 mov si,0 mov al,00h mov dx,io8255c out dx,al mov dx,io8255a in al,dx and al,3fh cmp al,
15、3fh jz lp1 call DELAY mov ah,0feh mov cx,4lp2:mov al,ah mov dx,io8255c out dx,al mov dx,io8255a in al,dx and al,3fh cmp al,3fh jnz realy;you jian an xia rol ah,1 loop lp2 jmp lp1realy:push axmov dx,io8255ain al,dxnopnopnopnopnopand al,3fhcmp al,3fhjnz realypop axl4: mov cx,6lp4:shr al,1 jnc l3 inc s
16、i loop lp4l3: mov cx,4 mov al,ah lp3:shr al,1 jnc lp5 inc di loop lp3lp5:mov bx,di mov al,6 mul bl add ax,sidisp: mov bx,offset key xlat cmp ax,39hjl llcmp ax,40hjg lll ll: sub ax,30h mov bx,offset led1 xlat mov dx,io8255b out dx,ax jmp lp1lll: sub ax,41h mov bx,offset led2 xlat mov dx,io8255b out d
17、x,ax jmp lp1exit: mov ah,4ch int 21hdelay proc near push cx mov cx,20hl1: loop l1 pop cx retdelay endpcode endsend start 实验三3.1timer_ctl equ 283htimer0 equ 280hio8255z equ 28bhio8255c equ 28ahcode segment assume cs:codestart: mov dx,io8255z mov al,80h out dx,al mov al,00010000b mov dx,timer_ctl out
18、dx,al mov dx,timer0 mov al,9 out dx,aldisplay: mov al,00000000b mov dx,timer_ctl out dx,al mov dx,timer0 in al,dx mov bl,al mov al,9 sub al,bl mov dx,io8255c out dx,al mov ah,06h mov dl,0ffh int 21h jz display mov ah,4ch int 21hcode endsend start3.2timer_ctl equ 283htimer0 equ 280htimer1 equ 281hmod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南交大 微机接口 实验代码 西南 交大 微机 接口 实验 代码

链接地址:https://www.31ppt.com/p-2883708.html