预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验2 开关实验: io8255a equ288h io8255c equ28ah io8255z equ28bh codesegment assumecs:code start: movdx,io8255z moval,8bh outdx,al inout: movdx,io8255c inal,dx movdx,io8255a outdx,al movdl,0ffh movah,06h int21h jzinout movah,4ch int21h codeends endstart 交通灯控制实验: datasegment io8255cequ28Ah io8255zequ28Bh portc1db21h db81h,01h,81h,01h,81h,01h,81h,01h,81h,01h,81h,01h db44h db42h,40h,42h,40h,42h,40h,42h,40h,42h,40h,42h,40h db0ffh dataends codesegment assumecs:code,ds:data start: movax,data movds,ax movdx,io8255z moval,90h outdx,al movdx,io8255c re_on: movbx,0; on: moval,portc1[bx] cmpal,0ffh jzre_on outdx,al incbx movcx,200 testal,24h jzde1 movcx,10000 de1:movdi,9000 de0: decdi jnzde0 loopde1 pushdx movah,06h movdl,0ffh int21h popdx jzon exit:movah,4ch int21h codeends endstart 七段数码管静态显示实验: io8255a equ288h io8255z equ28bh datasegment led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db0dh,0ah,’Inputanum(0-9),otherkeyisexit’,0dh,0ah,’$’ dataends codesegment assumecs:code,ds:data start: movax,data movds,ax movdx,io8255z movax,80h outdx,al sss: movdx,offsetmesg1 movah,09h int21h movah,01 int21h cmpal,’0’ jlexit cmpal,’9’ jgexit subal,30h movbx,offsetled xlat movdx,io8255a outdx,al jmpsss exit: movah,4ch int21h codeends endstart 数码管循环显示00—99 datasegment io8255aequ288h io8255bequ289h io8255cequ28ah io8255zequ28bh leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh buffer1db0,0 bzdw01,00 dataends codesegment assumecs:code,ds:data start: movax,data movds,ax movdx,io8255b;将8255设为A口输出 moval,80h outdx,al movdi,offsetbuffer1;设di为显示缓冲区 loop1:movcx,0300h;循环次数 loop2:movbh,02 lll:movbyteptrbz,bh pushdi decdi adddi,bz movbl,[di];bl为要显示的数 popdi movbh,0 movsi,offsetled;置led数码管偏移地址为SI addsi,bx;求出对应的led码 moval,byteptr[si] movdx,io8255c;自8255A的口输出 outdx,al moval,byteptrbz;使相应的数码管亮 movdx,io8255a outdx,al pushcx movcx,3000;若显示过快,可更改cx值最大为0ffffh delay:loopdelay;延时 popcx movbh,byteptrbz shrbh,1 jnzlll looploop2;循环延时 movax,wordptr[di] movah,01 int16h