版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
完美.格式.编辑专业.资料.整理微型计算机原理实验报告 学号 姓名 班级测控实验一显示程序实验一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT21H)。流程图2.试验程序DATASEGMENTMESDB'Showaashex:',0AH,0DH,'$'SDDB'a'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESMOVAH,09HINT21HMOVDI,OFFSETSDMOVAL,DS:[DI]ANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:[DI]ANDAL,0FHCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAX,4C00HINT21HCODEENDSENDSTART实验二数据传送实验三、实验内容将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上试验程序DATASEGMENTMSRDB"HELLO,WORLD!$"LENEQU$-MSRDDATAENDSEXDASEGMENTMSDDBLENDUP(?)EXDAENDSMYSTACKSEGMENTSTACKDW20DUP(?)MYSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DDATA,ES:EXDASTART:MOVAX,DDATAMOVDS,AXMOVAX,EXDAMOVES,AXMOVSI,OFFSETMSRMOVDI,OFFSETMSDMOVCX,LENNEXT:MOVAL,[SI]MOVES:[DI],ALINCSIINCDIDECCXJNZNEXTPUSHESPOPDSMOVDX,OFFSETMSDMOVAH,9INT21HMOVAX,4C00HINT21HCODEENDSENDSTARTMOVBX,0MOVCX,LENNEXT:MOVAL,MSR[BX]MOVES:MSD[BX],ALINCBXLOOPNEXT2.实验结果实验三数码转换程序实验将ASCII码表示的十进制数转换为二进制数流程图2.试验程序DATASSEGMENTNUMBERDB'00012'DATASENDSCODESEGMENTASSUMECS:CODE,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVCX,4MOVSI,OFFSETNUMBERMOVAL,[SI]SUBAL,30HMOVAH,00HMOVBL,10L1:MULBLADDAL,[SI+1]SUBAL,30HINCSIDECCXJNZL1MOVCX,8MOVBLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,02HINT21HDECCXJNZNEXTMOVAH,4CHINT21HCODEENDSENDSTART3.实验结果将十进制数的ASCII码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为BCD码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码实验流程图2.实验程序DATASSEGMENTBUFDB6DB?DB6DUP(?)BUFEDB'FF$'DATASENDSCODESEGMENTASSUMEDS:DATAS,CS:CODESTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,10INT21HMOVCH,5MOVSI,DXL2:MOVBL,[SI+2]INCSICMPBL,39HJAL1SUBBL,30HANDBL,0FHMOVDH,4MOVCL,4;SHLAL,CLROLBL,CLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,2INT21HDECDHJNZNEXTDECCHJNZL2JMPL3L1:MOVDX,OFFSETBUFEMOVAH,9INT21HL3:MOVAH,4CHINT21HCODEENDSENDSTART3.实验结果3.将十六进制数的ASCII码转换为十进制数十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进制数可表示为:ND=D4×104+D3×103+D2×102+D1×10+D0因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结果显示在屏幕实验流程图实验程序DATASEGMENTBUFDB5DB?DB5DUP(?)HEXDB4DUP(?)DECIDB5DUP(0),'$'S1DB'16JINZHI:$'S2DB0AH,0DH,'10JINZHI:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,S1MOVAH,9INT21HLEADX,BUFMOVAH,10INT21HMOVSI,2MOVDI,0CHECK:MOVAL,[SI][BUF]CMPAL,40HJSNUMCMPAL,47HJSCAPITALSUBAL,57HJMPSTORENUM:SUBAL,30HJMPSTORECAPITAL:SUBAL,37HJMPSTORESTORE:MOVHEX[DI],ALINCDIINCSICMPDI,4JNZCHECKLEADX,S2MOVAH,9INT21HMOVAX,WORDPTRHEXSHLAL,4ADDAH,ALMOVCH,AHMOVAX,WORDPTR2[HEX]SHLAL,4ADDAL,AHMOVAH,CHMOVSI,5MOVBX,10MOVDX,0CMPAX,0JNSCONVNEGAXPUSHAXPUSHDXMOVDL,2DHMOVAH,2INT21HPOPDXPOPAXCONV:DECSIDIVBXADDDX,30HMOVDECI[SI],DLXORDX,DXCMPAX,0JNZCONVLEADX,DECIMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.实验结果4.BCD码转换为二进制码本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。1.实验流程图2.实验程序DATASEGMENTDASCDB3DB?DB3DUP(?)S1DB0AH,0AH,0DH,'10JINZHIMA:$'S2DB0AH,0DH,'BCDMA:$'S3DB0AH,0DH,'2JINZHIMA:$'STODB8DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDI,0MOVSI,4LOOPER:CALLWHOLEDECSIJNZLOOPERJMPEXITWHOLE:LEADX,S1MOVAH,9INT21HLEADX,DASCMOVAH,10INT21HLEADX,S2MOVAH,9INT21HMOVAX,WORDPTR2[DASC]SUBAX,3030HSHLAL,4ADDAL,AHMOV[DI][STO],ALMOVCH,2MOVCL,4PRE1:MOVDX,30HROLAL,1JNCDISP1ADDDX,01HDISP1:PUSHAXMOVAH,02INT21HPOPAXDECCLJNZPRE1PUSHAXMOVDL,20HMOVAH,2INT21HPOPAXDECCHMOVCL,4JNZPRE1LEADX,S3MOVAH,9INT21HMOVAL,[DI][STO]MOVBLANDBL,0FHSHRAL,4MOVCL,10MULCLADDAL,BLINCDIMOV[DI][STO],ALINCDIMOVCX,8PRE2:MOVDX,30HROLAL,1JNCDISP2ADDDX,01HDISP2:PUSHAXMOVAH,02INT21HPOPAXLOOPPRE2RETEXIT:MOVAH,4CHINT21HCODEENDSENDSTART实验四运算类程序实验二进制双精度加法运算本实验要求计算x+y=z,将结果z输出到屏幕,其中x=001565a0h,y=0021b79eh.实验流程图2.实验程序DATASEGMENTXDD421C65AYDD3C41B69BHSDB'X+Y=$'SUMDB4DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WORDPTRXMOVBX,WORDPTRYADDAX,BXMOVWORDPTRSUM,AXMOVAX,WORDPTR2[X]MOVBX,WORDPTR2[Y]ADCAX,BXMOVWORDPTR2[SUM],AXLEADX,SMOVAH,9INT21HMOVCX,4MOVSI,3CHECK:MOVAL,SUM[SI]MOVAH,ALSHRAL,4CMPAL,0AHJSDISP1ADDAL,07HDISP1:ADDAL,30HMOVDL,ALPUSHAXMOVAH,02HINT21HPOPAXANDAH,0FHCMPAH,0AHJSDISP2ADDAH,07HDISP2:ADDAH,30HMOVDL,AHMOVAH,02HINT21HDECSILOOPCHECKEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.实验结果(2)减法程序1.实验流程图2.实验程序DATASEGMENTXDW0400HYDW0102HSDB'Z=X-Y=$'ZDW2DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,SMOVAH,9INT21HMOVAX,WORDPTRXMOVBX,WORDPTRYSUBAL,BLAASSUBAH,BHAASMOVZ,AXADDAX,3030HMOVBX,AXMOVDL,30HMOVAH,2INT21HMOVDL,BHMOVAH,2INT21HMOVDL,30HMOVAH,2INT21HMOVDL,BLMOVAH,2INT21HEXIT:MOVAH,4CHINT21HCODEENDSENDSTART3.实验结果实验五分支程序设计实验实验内容:实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。当循环结束操作时,将BH,BL分别送屏幕显示。实验流程图2.实验程序DATASEGMENTBUFDB'Themaxnumber:$'CUFDB0AH,0DH,'Themininumber:$'DUFDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVSI,OFFSETDUFMOVCH,7MOVBH,[SI]MOVBL,[SI]L1:INCSIMOVAL,[SI]CMPAL,BHJBL2MOVBH,ALL2:CMPAL,BLJAL3MOVBLL3:DECCHJNZL1;MOVBH,0B9HXIANSHI:MOVAL,BH;显示BH和BLMOVCL,4SHRAL,CLCMPAL,0AHJBC1ADDAL,07HC1:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BHANDAL,0FHCMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVDX,OFFSETCUFMOVAH,9INT21H;MOVBL,0B9HMOVAL,BLMOVCL,4SHRAL,CLCMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BLANDAL,0FHCMPAL,0AHJBC4ADDAL,07HC4:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART3.实验结果实验六循环程序设计实验实验内容:本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数实验流程图2.实验程序DATASSEGMENTBUFDB'Thenumberofnegtive:$'CUFDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVDX,OFFSETBUFMOVAH,9INT21HMOVBL,0MOVCX,10LEASI,CUFL2:MOVAL,[SI]INCSIANDAL,80HJZL1INCBLL1:DECCXJNZL2ADDBL,30HMOVDL,BLMOVAH,2INT21HMOVAX,4C00HINT21HCODESENDSENDSTART3.实验结果接口实验实验一8259中断控制器应用实验一、实验目的1.学习可编程中断控制器8259的工作原理。2.掌握可编程中断控制器8259的应用编程方法。二、实验内容 1.单中断实验。利用系统总线上中断请求信号INTR,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程序,在显示器屏幕上显示一个字符。实验步骤如下:①实验接线图如图2-1所示,按图接线。②运行Tdpit集成操作软件,调用程序代码(T8259-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C:\TangDu\PitPP\ASM\)③使用运行命令运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“9”,说明响应了中断。2.扩展中断源查询方式应用实验。利用实验平台上8259控制器对系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IRI中断请求进行处理。实验步骤如下:①实验接线图如图2-3所示,按图接线。②运行Tdpit集成操作软件,调用程序代码(T8259-2.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C:\TangDu\PitPP\ASM\)③使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生。三、实验所用仪表及设备1.PC机一台。2.TD-PIT++实验系统一套。四.实验代码1.单中断实验。INTR_IVADDEQU01C8H;INTR对应的中断矢量地址INTR_OCW1EQU0A1H;INTR对应PC机内部8259的OCW1地址INTR_OCW2EQU0A0H;INTR对应PC机内部8259的OCW2地址INTR_IMEQU0FBH;INTR对应的中断屏蔽字STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中断处理程序入口段地址的变量IP_BAKDW?;保存INTR原中断处理程序入口偏移地址的变量IM_BAKDB?;保存INTR原中断屏蔽字的变量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;显示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替换INTR的中断矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;设置当前中断处理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;设置当前中断处理程序入口段地址MOVDX,INTR_OCW1;设置中断屏蔽寄存器,打开INTR屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中断屏蔽字ANDAL,INTR_IMOUTDXSTIWAIT1:MOVAH,1;判断是否有按键按下INT16HJZWAIT1;无按键则跳回继续等待,有则退出QUIT:CLIMOVAX,0000H;恢复INTR原中断矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢复INTR原中断处理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢复INTR原中断处理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢复INTR原中断屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中断处理程序MYISRPUSHAXMOVDL,39H;输出字符9MOVAH,2INT21HMOVDL,0DH;输出字符回车MOVAH,2INT21HMOVDL,0AH;输出字符换行MOVAH,2INT21HOVER:MOVDX,INTR_OCW2;向PC机内部8259发送中断结束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART2.扩展中断源查询方式应用实验。INTR_IVADDEQU01C8H;INTR对应的中断矢量地址INTR_OCW1EQU0A1H;INTR对应PC机内部8259的OCW1地址INTR_OCW2EQU0A0H;INTR对应PC机内部8259的OCW2地址INTR_IMEQU0FBH;INTR对应的中断屏蔽字IOY0EQU3000H;片选IOY0对应的端口始地址MY8259_ICW1EQUIOY0+00H;实验系统中8259的ICW1端口地址MY8259_ICW2EQUIOY0+04H;实验系统中8259的ICW2端口地址MY8259_ICW3EQUIOY0+04H;实验系统中8259的ICW3端口地址MY8259_ICW4EQUIOY0+04H;实验系统中8259的ICW4端口地址MY8259_OCW1EQUIOY0+04H;实验系统中8259的OCW1端口地址MY8259_OCW2EQUIOY0+00H;实验系统中8259的OCW2端口地址MY8259_OCW3EQUIOY0+00H;实验系统中8259的OCW3端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTMESDB'Pressanykeytoexit!',0AH,0DH,0AH,0DH,'$'CS_BAKDW?;保存INTR原中断处理程序入口段地址的变量IP_BAKDW?;保存INTR原中断处理程序入口偏移地址的变量IM_BAKDB?;保存INTR原中断屏蔽字的变量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES;显示退出提示 MOVAH,09H INT21H CLIMOVAX,0000H;替换INTR的中断矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,ES:[DI]MOVIP_BAK,AX;保存INTR原中断处理程序入口偏移地址MOVAX,OFFSETMYISRMOVES:[DI],AX;设置当前中断处理程序入口偏移地址ADDDI,2MOVAX,ES:[DI]MOVCS_BAK,AX;保存INTR原中断处理程序入口段地址MOVAX,SEGMYISRMOVES:[DI],AX;设置当前中断处理程序入口段地址MOVDX,INTR_OCW1;设置中断屏蔽寄存器,打开INTR的屏蔽位INAL,DXMOVIM_BAK,AL;保存INTR原中断屏蔽字ANDAL,INTR_IMOUTDXMOVDX,MY8259_ICW1;初始化实验系统中8259的ICW1MOVAL,13H;边沿触发、单片8259、需要ICW4OUTDXMOVDX,MY8259_ICW2;初始化实验系统中8259的ICW2MOVAL,08HOUTDXMOVDX,MY8259_ICW4;初始化实验系统中8259的ICW4MOVAL,01H;非自动结束EOIOUTDXMOVDX,MY8259_OCW3;向8259的OCW3发送读取IRR命令MOVAL,0AHOUTDXMOVDX,MY8259_OCW1;初始化实验系统中8259的OCW1MOVAL,0FCH;打开IR0和IR1的屏蔽位OUTDXSTIWAIT1:MOVAH,1;判断是否有按键按下INT16HJZWAIT1;无按键则跳回继续等待,有则退出QUIT:CLIMOVAX,0000H;恢复INTR原中断矢量MOVES,AXMOVDI,INTR_IVADDMOVAX,IP_BAK;恢复INTR原中断处理程序入口偏移地址MOVES:[DI],AXADDDI,2MOVAX,CS_BAK;恢复INTR原中断处理程序入口段地址MOVES:[DI],AXMOVDX,INTR_OCW1;恢复INTR原中断屏蔽寄存器的屏蔽字MOVAL,IM_BAKOUTDXSTIMOVAX,4C00H;返回到DOSINT21HMYISRPROCNEAR;中断处理程序MYISRPUSHAXQUERY:MOVDX,MY8259_OCW3;向8259的OCW3发送读取IRR命令INAL,DX;读出IRR寄存器值ANDAL,01HCMPAL,01HJEIR0ISR;若为IR0请求,跳到IR0处理程序JNEIR1ISR;若为IR1请求,跳到IR1处理程序JMPOVERIR0ISR:MOVAL,30H;IR0处理,显示字符串STR0MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVERIR1ISR:MOVAL,31H;IR1处理,显示字符串STR1MOVAH,0EHINT10HMOVAL,20HINT10HJMPOVEROVER:MOVDX,INTR_OCW2;向PC机内部8259发送中断结束命令MOVAL,20HOUTDXMOVAL,20HOUT20H,ALPOPAXIRETMYISRENDPCODEENDSENDSTART五.实验现象及分析1.单中断实验。按单次脉冲开关KK1+,显示屏会显示字符“9”2.扩展中断源查询方式应用实验。注:与03H与,和与01H与时的优先级不一样。和03h与,同时按应当出1;和01h与,同时按应当出0。六.思考题1.单中断与多中断有何不同?单中断只需要中断一次,不存在优先级的问题。而多中断需要考虑优先级的问题,以及是否允许中断嵌套。2.如何改变中断优先级的顺序?首先通过选择中断优先级管理方式,有全嵌套方式、特殊嵌套方式、优先级自动循环方式、优先级特殊循环方式、查询方式。其中有的是不能改变优先级的,如全嵌套方式,其IR0级别最高,IR7最低。而本代码中使用的查询方式,根据查询得到的中断值来决定谁的优先级高,其中有一个AND指令,若是和03H与,同时触发时,响应的是IR1;而用01H与,同时触发,响应的是IR0。3.可编程中断控制器8259A在协助CPU处理中断事务中起哪些作用?用于管理和控制80X86的外部中断请求,可实现中断优先级判定,提供中断类型号,屏蔽中断输入等。4.可屏蔽中断与8259A是什么关系?8259A可以提供中断屏蔽的方式,通过置位复位IR0到IR7控制中断类型号。实验二8255并口控制器应用实验一、实验目的1.掌握8255的工作方式及应用编程。2.掌握8255典型应用电路的接法。二、实验内容1.基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。实验说明:本实验使8255的端口A作为输出口工作在方式0,端口B作为输入口工作在方式0。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。图3-28255基本输入输出实验参考接线图实验步骤如下:①实验接线图如图3-2所示,按图连接实验线路图。②运行Tdpit集成操作软件,根据实验内容,调用程序代码(T8255-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C:\TangDu\PitPP\ASM\)③运行程序,改变拨动开关,同时观察LED显示,验证程序功能。2.流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验说明:使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。参考实验程序流程如图3-3所示。 图3-3流水灯显示参考程序流程图实验步骤如下:①实验接线图如图3-4所示,按图连接实验线路图。②运行Tdpit集成操作软件,根据实验内容,调用程序代码(T8255-2.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C:\TangDu\PitPP\ASM\)③运行程序,观察LED灯的显示,验证程序功能。④自己设计流水灯的流动模式,编写程序并实现。
图3-48255流水灯显示参考接线图三、实验所用仪表及设备1.PC机一台。2.TD-PIT++实验系统一套。四.程序代码1.基本输入输出实验。IOY0EQU3000H;片选IOY0对应的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,MY8255_MODE;初始化8255工作方式MOVAL,83H;工作方式0,A口输出,B口输入OUTDXLOOP1:MOVDX,MY8255_B;读B口INAL,DXMOVDX,MY8255_A;写A口OUTDXMOVAH,1;判断是否有按键按下INT16HJZLOOP1;无按键则跳回继续循环,有则退出QUIT:MOVAX,4C00H;结束程序退出INT21HCODEENDSENDSTART2.流水灯显示实验。IOY0EQU3000H;片选IOY0对应的端口始地址MY8255_AEQUIOY0+00H*4;8255的A口地址MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255_CEQUIOY0+02H*4;8255的C口地址MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定义数据变量LBDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,MY8255_MODE;定义8255工作方式MOVAL,81H;工作方式0,A口和B口为输出OUTDXMOVDX,MY8255_A;写A口发出的起始数据MOVAL,80HOUTDXMOVLA,ALMOVDX,MY8255_B;写B口发出的起始数据MOVAL,01HOUTDXMOVLB,ALLOOP1:CALLDALLYMOVAL,LA;将A口起始数据右移再写入A口ROLAL,1MOVLA,ALMOVDX,MY8255_AOUTDXMOVAL,LB;将B口起始数据左移再写入B口RORAL,1MOVLB,ALMOVDX,MY8255_BOUTDXMOVAH,1;判断是否有按键按下INT16HJZLOOP1;无按键则跳回继续循环,有则退出QUIT:MOVAX,4C00H;结束程序退出INT21HDALLYPROCNEAR;软件延时子程序PUSHCXPUSHAXMOVCX,0FFFHD1:MOVAX,0FFFFHD2:DECAXJNZD2LOOPD1POPAXPOPCXRETDALLYENDPCODEENDSENDSTART五.实验现象及分析基本输入输出实验。数据灯亮D7D6D5D4D3D2D1D0无影响开关打开常亮K7K6K5K4K3K2K1K0只要对应的开关拨动,数据灯的显示就会发生改变。2.流水灯显示实验。D15-D8从右到左、D7-D0从左到右依次亮起来,循环往复,周而复始。六.思考题1.并口通信需要注意哪些问题?并口通信具有传输速得快、效率高的优点,但要求的数据线较多,不适合长距离传输。2.比较并口通信与串口通信的异同。同:都是传输数据的作用。异:串口只用一根数据线,但是可以长距离、稳定的传输,在远程通信时更是不可或缺。并口则更多是用于短距离大容量传输。3.8255A端口与外设之间的单向和双向传送是指什么?3个并口中哪个并口具有双向传送功能?单向是指一根数据线只能做输入或者只能做输出,而双向是指一根数据线既可以做输入也可以做输出。只有A口可以双向选通(C方式)。实验三8254定时/计数器应用实验一、实验目的1.掌握8254的工作方式及应用编程。2.掌握8254典型应用电路的接法。二、实验内容1.计数应用实验。编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KKI+五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’实验说明:编写程序,将8254的计数器0设置为方式0,计数值为5,用微动开关KKl+作为CLK0时钟,OUT0连接INTR,每当KKl+按动5次后产生中断请求,在屏幕上显示字符“5”图4-18254计数应用实验一参考接线图实验步骤如下:①实验接线如图4-1所示,按图接线。②运行Tdpit集成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宝鸡市眉县社区专职人员招聘(7人)考试备考题库及答案解析
- 2026年北京师范大学榆林实验学校校医招聘(2人)笔试参考题库及答案解析
- 2026年丹东市振兴区事业单位人员招聘笔试备考题库与答案详解
- 2026年黑龙江省绥化市公务员人员招聘笔试参考题库与答案详解
- 吉安弘毅资产经营有限公司财务会计招聘考试参考题库及答案解析
- 2026年西藏自治区拉萨市公务员人员招聘笔试参考试题与答案详解
- 2026年长春中医药大学公开招聘高层次及急需紧缺人才3号考试备考题库及答案解析
- 2026年贵港市港北区公务员人员招聘考试备考题库与答案详解
- 2026年上海市虹口区公务员人员招聘笔试模拟试题与答案详解
- 2026浙江大学公共管理学院方恺教授团队招聘博士后笔试备考试题及答案解析
- 北京市朝阳区2026-2027学年度第一学期期中质量检测高三英语试卷(含答案)
- 2026山东省防疫安全协管员招聘考试(畜牧兽医)历年参考题库含答案详解
- 2026健康管理师考试理论知识真题及答案
- 2025 含聚谷氨酸有机水溶肥料在马铃薯种植中的应用技术规程
- 2026-2027学年清华附中九年级上册化学期中真题卷
- 2026年四川省成都市技能人才评价考评员考试题库(附答案)
- 正大集团人才评估行测题目
- 离散数学 (第七版) 课件 第二部分 集合论
- FMEA风险评估分析表实战培训
- 2025年进出口银行人员招聘笔试考试试题及答案详解
- 光伏组件拆除方案
评论
0/150
提交评论