微机原理硬件实验程序4.doc_第1页
微机原理硬件实验程序4.doc_第2页
微机原理硬件实验程序4.doc_第3页
微机原理硬件实验程序4.doc_第4页
微机原理硬件实验程序4.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 简单I/O 控制PAGE60,132 .MODEL small .STACK 20H .DATA20H LS244EQU7000HLS273EQU0B000H .CODE ORG0100HMAIN:MOVSP,9000HMOVDX,LS244;读取开关状态INAL,DXMOVDX,LS273OUTDX,AL;送LED显示JMPMAINEND2.存储器扩展实验PAGE60,132 .MODEL small .STACK 20h .DATA20HRAMADDRESSEQU0B000HA8255EQU7000HB8255EQU7001HC8255EQU7002HD8255EQU7003HDCLK0EQU00000000BDCLK1EQU00000001BDIN0EQU00000010BDIN1EQU00000011B .CODEDIDATADB?ORG0100H;MAIN:MOVSP,9000HMOVDX,D8255MOVAL,80HOUTDX,ALNEXT:CALLW_RAM;把数据存入指定的地址中CALLR_RAM;从指定的地址中读出数据MOVDIDATA,ALCALLDISPJMP$;*;/*写 RAM 子程序*/*;*;W_RAM:MOVDX,0B000H;把数据存入指定的地址中MOVBX,OFFSET RAMDATAMOVAL,BXMOVAL,99HW_RAM1:OUTDX,ALRET;*;/*读 RAM 子程序*/*;*R_RAM:MOVDX,0B000HR_RAM1:INAL,DX;从指定的地址中读出数据RET;*;/*显示子程序*/ *;*;DISP:MOVAL,DIDATA;取低位ANDAL,0FHCALLSEND;显示MOVAL,DIDATAMOVCL,04HSHRAL,CL;取高位CALLSEND;显示RETSEND:PUSHCXMOVAH,00HMOVDI,AXMOVBX,OFFSET SGTB1MOVAL,BX+DI;取字符MOVAH,ALMOVCX,01HSEND1:MOVDX,D8255MOVAL,DCLK0;DCLK-0OUTDX,ALMOVAL,AHRCLAL,CLJCSEND2MOVAL,DIN0;DIN-0OUTDX,ALJMPSEND3SEND2:MOVAL,DIN1;DIN-1OUTDX,ALSEND3:MOVAL,DCLK1OUTDX,AL;DCLK-1INCCXCMPCX,09HJNZSEND1MOVAL,DIN1OUTDX,ALPOPCXRET;*;/*延时子程序*/*;*;DELAY:MOVCX,0FFFFH;延时LOOP$RETSGTB1DB0C0H ;0 DB 0F9H ;1 DB 0A4H ;2DB 0B0H ;3 DB 99H ;4 DB 92H ;5 DB82H ;6DB 0F8H ;7DB 80H ;8DB 90H ;9DB88H ;A DB 83H ;B DB 0C6H ;C DB 0A1H ;D DB 86H ;E DB 8EH ;F DB 00HRAMDATADB099h END3. 串并转换实验;164串并转换程序,0099循环显示;DCLK-PC0,DIN-PC1PAGE60,132 .MODEL small .STACK 20H .DATA20H A8255EQU7000HB8255EQU7001HC8255EQU7002HD8255EQU7003HDCLK0EQU00000000BDCLK1EQU00000001BDIN0EQU00000010BDIN1EQU00000011B .CODEORG0100HMAIN:MOVSP,9000HMOVDX,D8255MOVAL,80HOUTDX,ALMOVSI,00H;十位MOVDI,00H;个位MAIN1:MOVBX,OFFSET SGTB1MOVAH,BX+DI;取字符CALLSENDMOVAH,BX+SICALLSENDCALLDELAYCMPDI,9HJNZMAIN2MOVDI,00HINCSICMPSI,10JNZMAIN3JMPMAINMAIN2:NOPINCDIMAIN3:JMPMAIN1;继续发送SEND:PUSHCXMOVCX,01HSEND1:MOVDX,D8255MOVAL,DCLK0;DCLK-0OUTDX,ALMOVAL,AHRCLAL,CLJCSEND2MOVAL,DIN0;DIN-0OUTDX,ALJMPSEND3SEND2:MOVAL,DIN1;DIN-1OUTDX,ALSEND3:MOVAL,DCLK1OUTDX,AL;DCLK-1INCCXCMPCX,09HJNZSEND1MOVAL,DIN1OUTDX,ALPOPCXRET;*;/*延时子程序*/*;*;DELAY:PUSHCXMOVCX,0FFFFHLOOP$;延时POPCXRET SGTB1DB0C0H ;0 DB 0F9H ;1 DB 0A4H ;2DB 0B0H ;3 DB 99H ;4 DB 92H ;5 DB82H ;6DB 0F8H ;7DB 80H ;8DB 90H ;9DB88H ;A DB 83H ;B DB 0C6H ;C DB 0A1H ;D DB 86H ;E DB 8EH ;F DB 00HEND4. 点阵式LCD 显示实验PAGE60,132 .MODEL small .STACK 20h .DATA .CODEXPOS DB ?;列方向地址指针YPOS DB ? ;行方向地址指针DIDATADB?;要显示的数据ORG0100HMAIN:MOVSP,9000H CALL LCDRESET;复位 MOVDIDATA,00H CALLLCDFILL;空格填充整屏 MOVXPOS,00H;设置页 MOVYPOS,00H;设置列 MOVBX,OFFSET STRING1;字符串首地址MAIN1: CALLPUTSTR JMPMAIN1; ;*;/* 显示字符子程序 */;*;PUTSTR:CALL LCDRESET;复位CALLDELAY;延时CALLGETADDR;取要显示字符的地址PUSHBXTESTAX,8000HJZPSRE;判断是中文还是英文CALLHZKPOSCALLPUTCHARDOT;显示中文CALLPUTCHARDOTJMPPSR1PSRE:CALLHZKPOS;显示英文CALLPUTCHARDOTPSR1:POPBXRET;*;/* 计算字符在库中的地址 */;*;HZKPOS:MOVCX,5;32字节HZKPOSC:SHLAX,CLMOVDI,OFFSET HZKDOTADDAX,DIMOVDI,AXRET;*;/* 显示半个中文或一个英文子程序 */;*; PUTCHARDOT:MOVCX,8PAC_PA:MOVAL,DI;取出字符MOVDIDATA,ALCALLLCDWRITE;显示字符(上半段)INCYPOSINCDIMOVAL,DI;取出字符MOVDIDATA,ALCALLLCDWRITE;显示字符(下半段)DECYPOSINCDICALLCUSORNEXTMOVAL,XPOSCMPAL,00HJNZPAC_LAXINCYPOSPAC_LAX:LOOPPAC_PARET;*;/* 调整行列指针 */;*;CUSORNEXT:ANDYPOS,7INCXPOSMOVAL,XPOSTESTAL,80HJZCNT_LAXMOVXPOS,0;满128列列指针赋初值INCYPOS;行指针加1MOVAL,YPOSANDAL,0F8HJZCNT_LAXMOVYPOS,0;满8行行指针赋初值CNT_LAX:RET;*;/* 取字符的地址 */;*; GETADDR:MOVAL,BXINCBXMOVAH,ALINCALCMPAL,00HJZGETADDR1;取出的数据为00转并清零标志位MOVAL,BXCMPAL,0FFHJNZGETADDR2;检查是否是最后一个字符CALLDELAY1CALLDELAY1CALLDELAY1GETADDR1:JMPMAIN;若是最后一个字符转到开始GETADDR2:INCBXRET;*;/* 定位并写数据子程序 */;*;LCDWRITE: CALL LCDPOS;内部写数指针定位 CALL LCDWD;写数据 RET; ;*;/* 内部写数指针定位子程序*/;*;LCDPOS: MOV AL,XPOSTESTAL,40HJNZLPOS1 MOV AL,YPOS;XPOS列方向小于64则对CS1操作 AND AL,07H;以英文字符为单位,一行可写F个字符, ADD AL,0B8H;07(4078)在CS1, 8F(80B8)在CS2 CALL LCDWC1;设页码 MOV AL,XPOS AND AL,3FH ADD AL,40H CALL LCDWC1;设列码 JMPLPOS2LPOS1:MOV AL,YPOS;XPOS列方向大于等于64则对CS2操作 AND AL,07H ADD AL,0B8H CALL LCDWC2;设页码 MOV AL,XPOS AND AL,3FH OR AL,40H CALL LCDWC2;设列码LPOS2:RET; ;*;/* 送数据子程序 */;*; LCDWD: MOV AL,XPOSTESTAL,40HJNZLWD1MOVAL,DIDATA;XPOS列方向小于64则对CS1操作 CALL LCDWD1 JMP LWD2LWD1:MOV AL,DIDATA;XPOS列方向大于等于64则对CS2操作 CALL LCDWD2LWD2:RET ;*;/* LCD整屏显示A的内容 */;*;LCDFILL: MOV YPOS,00HLCDFILL1: MOV XPOS,00HLCDFILL2: MOVAH,ALCALL LCDWRITE;定位并写数据 INC XPOS MOV AL,XPOS CMP AL,128 JNZLCDFILL2;XPOS128则循环(128列) INC YPOS MOV AL,YPOS CMP AL,8 JNZLCDFILL1;YPOS8则循环(8页) MOV XPOS,0 MOV YPOS,0 RET;*;/* LCD控制器复位 */;*; LCDRESET: MOV AL,3EH;关闭LCD显示 CALL LCDWC1 CALL LCDWC2 MOV AL,3FH;打开LCD显示 CALL LCDWC1 CALL LCDWC2 MOV AL,0C0H;设显示起始行 CALL LCDWC1 CALL LCDWC2 RET; ;*;/* 送控制字子程序 */;* ;LCDWC1: PUSHDXMOVAH,ALCALL WAITIDLE1MOVAL,AH MOVDX,0084H;E=1 CS1=1 RS=0OUTDX,AL POPDX RET LCDWC2: PUSHDXMOVAH,ALCALL WAITIDLE2MOVAL,AHMOVDX,0082H;E=1 CS2=1 RS=0OUTDX,AL POPDX RET;*;/* 写数据子程序 */;* ;LCDWD1: PUSHDXMOVAH,ALCALL WAITIDLE1MOVAL,AHMOVDX,0085H;E=1 CS1=1 RS=1OUTDX,AL POPDX RET LCDWD2: PUSHDXMOVAH,ALCALL WAITIDLE2MOVAL,AHMOVDX,0083H;E=1 CS2=1 RS=1OUTDX,AL POPDX RET ;*;/* 读数据子程序 */;*;LCDRD1: PUSHDXCALL WAITIDLE1MOVDX,008DH;E=1 CS1=1 RS=1INAL,DXMOVAH,AL POPDX RET LCDRD2: PUSHDXCALL WAITIDLE2MOVDX,008BH;E=1 CS2=1 RS=1INAL,DXMOVAH,AL POPDX RET ;*;/* 检忙子程序 */;*;WAITIDLE1:PUSHDXMOVDX,008CH;E=1 CS1=1 RW=1WT1_PA:INAL,DXTESTAL,80HJNZWT1_PA POPDXRET WAITIDLE2:PUSHDXMOVDX,008AH;E=1 CS2=1 RW=1WT2_PA:INAL,DXTESTAL,80HJNZWT2_PA POPDXRET ;*;/* 延时子程序 */;*;DELAY1:PUSHCXMOVCX,0FFFFHLOOP$POPCX RETDELAY:PUSHCXMOVCX,0FFFFHLOOP$POPCXRET STRING1DB80H,00H,80H,01H,80H,02H,80H,03H,80H,04H,80H,05HDB80H,06H,80H,07H,80H,08H,80H,09H,00H,1CH,00H,0AHDB00H,0BH,00H,0CH,00H,0DH,00H,0EH,00H,0FH,00H,1CHDB00H,1DH,00H,10H,00H,0DH,00H,11H,00H,12H,00H,13HDB00H,14H,00H,15H,00H,16H,00H,1CH,00H,17H,00H,0EHDB00H,18H,00H,14H,00H,0BH,00H,14H,00H,13H,00H,14HDB00H,15H,00H,1CH,00H,1CH,00H,19H,00H,19H,00H,19HDB00H,1EH,00H,1AH,00H,14H,00H,1BH,00H,1EH,00H,10HDB00H,0DH,00H,11H,00H,1EH,00H,10H,00H,0EH,00H,0FFH;启CC6F4(00)HZKDOTDB00H,40H,00H,20H,00H,18H,0F8H,07H,48H,00H,48H,7EH,48H,22H,49H,22HDB4EH,22H,4AH,22H,48H,22H,48H,22H,48H,22H,78H,7EH,00H,00H,00H,00H;东CB6AB(01)DB00H,00H,04H,00H,04H,20H,0C4H,18H,0B4H,0EH,8CH,04H,87H,20H,84H,40HDB0F4H,0FFH,84H,00H,84H,02H,84H,04H,84H,18H,04H,30H,00H,00H,00H,00H;市CCAD0(02)DB04H,00H,04H,00H,04H,00H,0E4H,3FH,24H,00H,25H,00H,25H,00H,0FEH,0FFHDB24H,00H,24H,00H,24H,10H,24H,20H,0E4H,1FH,04H,00H,04H,00H,00H,00H;微CCEA2(03)DB10H,01H,88H,00H,0F7H,0FFH,22H,40H,5CH,20H,50H,1FH,5FH,01H,50H,01HDB5CH,0BFH,20H,50H,0F8H,21H,17H,16H,12H,08H,0F0H,0F7H,10H,40H,00H,00H;机CBBFA(04)DB08H,04H,08H,03H,0C8H,00H,0FFH,0FFH,48H,00H,88H,41H,08H,30H,00H,0CHDB0FEH,03H,02H,00H,02H,00H,02H,00H,0FEH,3FH,00H,40H,00H,78H,00H,00H;应CD3A6(05)DB00H,40H,00H,38H,0FCH,07H,44H,20H,84H,20H,04H,2FH,14H,24H,25H,20HDB0C6H,23H,84H,30H,04H,2CH,04H,23H,0E4H,20H,44H,22H,00H,20H,00H,00H;用CD3C3(06)DB00H,80H,00H,40H,00H,30H,0FEH,0FH,22H,02H,22H,02H,22H,02H,22H,02HDB0FEH,0FFH,22H,02H,22H,02H,22H,42H,22H,82H,0FEH,7FH,00H,00H,00H,00H;研CD1D0(07)DB02H,01H,0C2H,00H,0F2H,3FH,4EH,10H,0C2H,9FH,02H,40H,40H,20H,42H,18HDB0FEH,07H,42H,00H,42H,00H,42H,00H,0FEH,0FFH,42H,00H,42H,00H,00H,00H;究CBEBF(08)DB00H,00H,4CH,00H,24H,40H,94H,20H,84H,10H,84H,0CH,0F5H,03H,86H,00HDB84H,00H,84H,3FH,14H,40H,24H,40H,44H,40H,0CH,40H,04H,78H,00H,00H;所CCBF9(09)DB00H,40H,0FEH,3FH,12H,01H,12H,01H,11H,81H,0F1H,41H,01H,30H,00H,0CHDB0FEH,03H,22H,00H,22H,00H,21H,00H,0E1H,0FFH,21H,00H,21H,00H,00H,00H;Q(0A)DB0E0H,0FH,10H,18H,08H,24H,08H,24H,08H,38H,10H,50H,0E0H,4FH,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;I(0B)DB00H,00H,80H,20H,98H,20H,98H,3FH,00H,20H,00H,20H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;D(0C)DB00H,00H,00H,0EH,00H,11H,80H,20H,80H,20H,88H,10H,0F8H,3FH,00H,20HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;O(0D)DB00H,00H,00H,1FH,80H,20H,80H,20H,80H,20H,80H,20H,00H,1FH,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;N(0E)DB80H,20H,80H,3FH,00H,21H,80H,00H,80H,00H,80H,20H,00H,3FH,00H,20HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;G(0F)DB00H,00H,00H,6BH,80H,94H,80H,94H,80H,94H,80H,93H,80H,60H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;C(10)DB00H,00H,00H,0EH,00H,11H,80H,20H,80H,20H,80H,20H,00H,11H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;M(11)DB80H,20H,80H,3FH,80H,20H,80H,00H,80H,3FH,80H,20H,80H,00H,00H,3FHDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;P(12)DB80H,80H,80H,0FFH,00H,0A1H,80H,20H,80H,20H,00H,11H,00H,0EH,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;U(13)DB80H,00H,80H,1FH,00H,20H,00H,20H,00H,20H,80H,10H,80H,3FH,00H,20HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;T(14)DB00H,00H,80H,00H,80H,00H,0E0H,1FH,80H,20H,80H,20H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;E(15)DB00H,00H,00H,1FH,80H,22H,80H,22H,80H,22H,80H,22H,00H,13H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;R(16)DB80H,20H,80H,20H,80H,3FH,00H,21H,80H,20H,80H,00H,80H,01H,00H,00HDB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;I(17)DB00H,00H,08H,20H,08H,20H,0F8H,3FH,08H,20H,08H,20H,00H,00H,00H,00HDB00H,00H,00H,00H,00H,00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论