微机试验报告_第1页
微机试验报告_第2页
微机试验报告_第3页
微机试验报告_第4页
微机试验报告_第5页
免费预览已结束,剩余62页可下载查看

付费下载

下载本文档

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

文档简介

1、仅供个人参考不得用于商业用途仅供个人参考不得用于商业用途实验一 显示程序实验、实验目的1.1. 掌握在 PC 机上以十六进制形式显示数据的方法;2.2. 掌握部分 DOS 功能调用使用方法;3.3. 熟悉 Tddebug 调试环境和 Turbo Debugger 的使用二、实验所用设备1. PC 微机一台。三、实验内容一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的 内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕 上,并通过DOS 功能调用完成一些提示信息的显示。实验中可使用DOS 功能调用(INT 21H )。(1) 显示单个字符输出入口: A

2、H=02H调用参数: DL= 输出字符(2) 显示字符串入口: AH=09H调用参数: DS:DX= 串地址, $为结束字符(3) 键盘输入并回显入口: AH=01 H返回参数: AL= 输出字符返回 DOS 系统入口: AH=4CH 调用参数: AL= 返回码四:实验步骤1.运行 Tddebug 软件,选择 Edit 菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图 1-1 示;2.使用 Compile 菜单中的 Compile 和 Link 对实验程序进行汇编、连接;3.使用 Rmrur 菜单中的 Run,运行程序,观察运行结果;4.使用 Rmrur 菜单中的 Debu

3、g,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;5.更改数据区中的数据,考察程序的正确性。仅供个人参考不得用于商业用途流程图:程序清单:DATASEGMENTMYSTRDBshow a as hex:,0AH,0DH,$SDDBaDATAENDSCODESEGMENTASSUMECS:CODE,DS:DA TASTART:MOVAX ,DATAMOVDS ,AX仅供个人参考不得用于商业用途LEADX,MYSTRMOVAH,09H;显示提示符INT21HLEASI, SDMOVAL ,SIANDAL ,0F0H;咼四位转换成十六进制数的ASC码SHRAL ,4CMPAL

4、,0AHJBC1ADDAL ,07HC1: ADDAL, 30HMOVDL,AL;显示咼位MOVAH,02HINT21HMOVAL ,SIANDAL,0FH;低四位转换成十六进制数的ASC码CMPAL,0AHJBC2ADDAL ,07HC2: ADDAL,30HMOVDL,AL;显示低位MOVAH,02HINT21HMOVAX,4C00HINT21HCODE ENDSENDSTART运行结果:仅供个人参考不得用于商业用途实验二数据传送实验、实验目的1. 熟悉 Tddebug 调试环境和 Turbo Debugger 的使用;2. 掌握与数据有关的不同寻址方式。二、实验所用设备1. PC 微机一

5、台。三、实验内容将数据段中的一个字符串传送到附加段中, 并输出附加段中的目标字符串到屏幕上。四:流程图仅供个人参考不得用于商业用途五:程序清单DSDATASTR1SEGMENTDBHELLO,WORLD!,$DSDATAENDSESDATASEGMENTSTR2DB13 DUP(?)ESDATAENDSCODESEGMENTASSUMECS:CODE,DS:DSDATA,ES:ESDATASTART:MOVAX,DSDATAMOVDS,AXLEASI, STR1MOVAX,ESDATAMOVES,AXLEADI ,STR2MOVCX ,13NEXT:MOVAL,SI;开始传送MOVES:DI,

6、ALINCSIINCDIDECCXJNZNEXTMOVCX,ES ;显示附加数据段中的目标字符串MOVDS ,CXLEADX,STR2MOVAH,09HINT21HMOVAX,4C00H;返回DOSINT21HCODEENDSENDSTART仅供个人参考不得用于商业用途实验三数码转换程序实验一、实验目的掌握不同进制数及编码相互转换的程序设计方法。二、实验所用设备PC 微机一台。三、实验内容计算机输入设备输入的信息一般是由ASCII 码或 BCD 码表示的数据或字符,CPU 用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求 变为ASCII 码、BCD 码或七段显示码等。因此,

7、在应用软件中,各类数制的转换和 代码的转换是必不可少的。计算机与外设间的数码转换关系如图3-1 所示,数码对应关系如表 3-1 所示。1 1 将 ASCIIASCII 码表示的十进制数转换为二进制数十进制数可以表示为: Dnx10n+Dn-1x10n-1+D0 x100=Dix10i 其中 Di 代表十进制数 1、2、39、0。上式可以转换为:艺 Dix10i=(Dnx10+Dn-1)x10)+Dn-2)x10+D1)x10+D0由上式可归纳十进制数转换为二进制的方法:从十进制数的最高位 Dn 开始作乘10 加次位的操作,依次类推,则可求出二进制数结果。本实验要求将缓冲区中的一个五位十进制数0

8、0012 的 ASCII 码转换成二进制数,仅供个人参考不得用于商业用途并将转换结果按位显示在屏幕上。2 2 将十进制数的 ASCIIASCII 码转换为 BCDBCD 码本实验要求将键盘输入的一个五位十进制数54321 的 ASCII 码存放入数据区中,转换为 BCD 码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制数 的 ASCII码,则输出“FF。提示:一字节 ASCII 码取其低四位即变为 BCD 码。3 3 将十六进制数的 ASCIIASCII 码转换为十进制数十六位二进制数的值域为 0-65535,最大可转换为五位十进制数。五位十进制数 可表示为:432N=D4x10 +

9、C3X10+D2X10 +Dx10+D0因此,将十六位二进制数转换为五位 ASCII 码表示的十进制数,就是求 D-D4,并将它们转化为 ASCII 码。4.4. BCDBCD 码转换为二进制码本实验要求将四个二位十进制数的 BCD 码存放在某一内存单元中,转换出的二 进制数码存入其后的内存单元中,转换结束,送屏幕显示。四:流程图将 ASCIIASCII 码表示的十进制数转换为二进制数转换完苦丁仅供个人参考不得用于商业用途2 2 将十进制数的 ASCIIASCII 码转换为 BCDBCD 码猜宦转抉数的性数口CX-NBL-OFFH转换完古?丄yj?W荊扯示3 3 将十六进制数的 ASCIIAS

10、CII 码转换为十进制数陽M V-SCZjj.iy BL = ASCD-30H11J?-保厅BL刮删茁单元.L仅供个人参考不得用于商业用途SI=1”1.-V - :;JAX除以Itt AX= i.DX金啟将亲歆腿化成n朋CU询i|f呆布lf iOi4 4. BCDBCD 码转换为二进制码CX-NBL=OFFH将余下曲充为0仅供个人参考不得用于商业用途五:程序清单1 1 将 ASCIIASCII 码表示的十进制数转换为二进制数DATA SEGMENTDECIMAL DB 00012DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,D

11、ATAMOVDS,AXMOVCL,5MOVCH,0MOVDI,10MOVAX,0LEASI,DECIMALLOOP1: MUL DIMOVBH,0MOVBL,SIANDBL,0FHADDAX,BXINCSILOOPLOOP1MOVCL,16LOOP2: ROL AX,1MOVBX,AXANDAL,01HADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAX,BXLOOPLOOP2MOVAX,4C00HINT21HCODE ENDSEND START2 2将十进制数的 ASCII 码转换为 BCD?DATA SEGMENTSTR2 DBplease input:,$MAX D

12、B10LENTH DB ?NUM DB 5 DUP(?)仅供个人参考不得用于商业用途MOVDS,AXLEADX,STR2MOVAH,09HINT21HMOVDL,0AHMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HLEADX,MAXMOVAH,0AHINT21HMOVDL,0AHMOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HLEASI,NUML1: MOVBL,SICMPBL,39HJBNEXTLEADX,STR1MOVAH,09HINT21HJMPSTOPNEXT: ANDBL,0FSHLBL,4 ;MOVCX,4L2: ROL

13、BL,1MOVBH,BLANDBL ,01HADDBL,30HMOVDL,BLMOVAH,02HINT21HMOVBL,BHLOOPL2显示提示符回车换行从键盘输入回车换行比较是否比 10 大比 10 小,转换成BCD显示 BCD?STR1 DB FFF,$DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOVAX ,DATA仅供个人参考不得用于商业用途INC SIDEC LENTHJNZ L1仅供个人参考不得用于商业用途STOP: MOV AX,4C00HINT 21HCODE ENDSEND START3将十六进制数的 ASCII 码转换

14、为十进制数DATA SEGMENTHEX DB 000CDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOVAX ,DATAMOVDS,AXMOVSI,OFFSET HEXMOVBH,0MOVCX,4MOVDI,16MOVAX,0NEXT: MUL DI; ASCMOVBL,SICMPBL,3AHJBC1SUBBL ,07HC1: SUBBL,30HADDAX,BXINCSILOOPNEXTMOVBX,10000 ;MOVDX,0DIVBXMOVBX,DXADDAX,30HMOVDL,ALMOVAH,02HINT21HMOVAX,BXMOV

15、BX,1000 ;MOVDX,0DIVBXMOVBX,DXADDAX,30H码转换成二进制数显示十进制万位数显示千位数仅供个人参考不得用于商业用途CODE ENDSEND START4. BC 码转换为二进制码DATA SEGMENTBCD DB 00010001B,00100010B,00110011B,01000100BDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODEMOVDL,ALMOVAH,02HINT21HMOVAX,BXMOVBX,100MOVDX,0DIVBXMOVBX,DXADDAX,30HMOVDL,ALMOVAH,02HINT21HMO

16、VAX,BXMOVBX,10MOVDX,0DIVBXMOVBX,DXADDAX,30HMOVDL,ALMOVAH,02HINT21HMOVDL,BLADDDL,30HMOVAH,02HINT21HMOVAX,4C0INT21H显示百位数显示十位数显示个位数返回 DOS仅供个人参考不得用于商业用途START: MOV AX ,DATAMOVMOVMOVDS,AXSI,OFFSET BCDCL,4L1: MOVAL ,SI ;BCD码转二进制数MOVBL,ALSHRAL,4 ;取出十位MOVBH,10MULBHANDBL,0FH ;取出各位ADDAL,BL ;十位个位相加得到二进制数MOVSI+4

17、,ALMOVCH,8L2: ROLAL,1 ;从高向低显示二进制数MOVBL,AL ;保存移位后的数ANDAL,01HADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,BL ;恢复保存的数DECCHJNZL2MOVDL,0AH ;显示完 8 位二进制数后回车换行MOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HINCSIDECCLJNZL1 ;依次转换 BCD?MOVAX,4C00H ;返回 DOSINT21HCODE ENDSENDSTART仅供个人参考不得用于商业用途六:运行结果1 1 .将 ASCIIASCII 码表示的十进制数转换为

18、二进制数仅供个人参考不得用于商业用途2 2 将十进制数的 ASCIIASCII 码转换为 BCDBCD 码3 3 将十六进制数的 ASCIIASCII 码转换为十进制数仅供个人参考不得用于商业用途4 4. BCDBCD 码转换为二进制码仅供个人参考不得用于商业用途实验四运算类程序实验一、实验目的1. 掌握运算类指令编程及调试方法;2. 掌握运算类指令对各状态标志位的影响及测试方法。二、实验所用设备1. PC 微机一台。三、实验内容二进制双精度加法运算本实验要求计算 X+Y二Z,将结果 Z 输出到屏幕,其中 X=001565A0H,Y=0021B79EH。实验利用累加器 AX,先求低十六位和,并

19、存入低址存储单元,后求高 16 位和, 再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用 ADC 指令,则低位相加有进位时, CF=1,高位字相加时,同时加上 CF 中的 1。在 80386 以上微机中可以直接使用 32 位寄存器和 32 位加法指令完成本实验的功能。仅供个人参考不得用于商业用途四、流程图仅供个人参考不得用于商业用途五 、程序清单DATA SEGMENTX DD001565A0HY DD0021B79EHSTRI DBthe result is: ,$DATA ENDSMYSTACK SEGMENT STACKDW 20 DUP(?)MYSTACK END

20、SSTART: MOV AX ,DATAMOVDS,AXMOVSI,OFFSET XMOVAX ,SIMOVBX,SI+4ADDAX,BXPUSHAXMOVAX ,SI+2MOVBX,SI+6ADCAX,BXPUSHAXMOVDX ,OFFSET STRIMOVAH,09HINT21HMOVDL,0AH ;MOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HPOPAXMOVCX,4L1: ROLAX,4 ;PUSHAXANDAX,0FHCMPAL,0AHJBL2ADDAL,07HL2: ADDAL,30HMOVDL,ALMOVAH,02HCODE SEGMENTASS

21、UME DS:DATA,CS:CODE回车换行显示高四位显示提示符仅供个人参考不得用于商业用途INT21HPOPAXLOOPL1MOVCX ,4POPAXL3: ROLAX,4PUSHAXANDAL,0FHCMPAL,0AHJBL4ADDAL,07HL4: ADDAL,30HMOVDL,ALMOVAH,02HINT21HPOPAXLOOPL3MOVAX,4C00HINT21HCODE ENDSENDSTART显示低四位六、运行结果环非穗用中Tord3.Exethe resultis :_ 00371D3E.仅供个人参考不得用于商业用途实验五 分支程序设计实验一、实验目的1. 掌握分支程序的设计

22、方法。二、实验所用设备1. PC 微机一台。三、实验内容程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图5-1 所示。本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构 形式。实验可以使用 BH,BL 作为暂存现行的最大值和最小值,且在程序的初始,将BH 和 BL 初始化为首字节的内容,然后进入循环操作。在循环操作中,依次从字节 序列中逐个取出一个字节的内容与 BH,BL 进行比较,若取出的字节内容比 BH 的内 容大或比BL 中的内容小,则修改之。当循环结束操作时,将BH,BL 分别送屏幕显示。四、实验步骤1.运行 Tddebug 软件,选择 Edit 菜单

23、编写实验程序,提供 8 字节的数据:0D9H,07H, ,8BH, 0C5H, 0EBH, 04H, 9DH, 0F9H;2.使用 Compile 菜单中的 Compile 和 Link 对实验程序进行汇编、连接;3. 使用 Rmrun 菜单中的 Run,运行程序,观察运行结果;4. 更改数据区中的数据,考察程序的正确性。五、流程图仅供个人参考不得用于商业用途六、程序清单DATA SEGMENTARRAY DB 0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATA ENDSCODE SEGMENTASSUMEDS:DATA,CS:CODE START:MOVMOVMO

24、VMOVMOVMOV清标志寄存器 开始逐个比较cx= I: fftAX ,DATADS,AXSI,OFFSET ARRAYBL,SIBH,BLCX,7CLDGO: INCSI仅供个人参考不得用于商业用途MOV AL,SICMP AL,BHJA L1CMP AL ,BLJB L2JMP NEXTL1: MOV BH,ALJMP NEXTL2: MOV BL,AL NEXT: DEC CXJNZ GOMOV AL,BL显示出来AND AL ,0F0HSHR AL ,4出来MOVANDSHRCMPJBADDC1: ADDMOVMOVINTMOVANDCMPJBADDC2: ADDMOVMOVINTM

25、OVMOVINTMOVMOVINTAL,BHAL ,0F0HAL ,4AL,0AHC1AL ,07HAL, 30HDL,ALAH,02H21HAL,BHAL ,0FHAL,0AH C2AL ,07HAL, 30HDL,ALAH,02H21HDL,0AHAH,02H21HDL,0DHAH,02H21H把BH里的内容以十六进制显示回车换行把BL里的内容以十六进制仅供个人参考不得用于商业用途CMP AL,OAH JB C3ADD AL ,07HC3: ADD AL, 30H MOV DL,AL MOV AH,02H INT 21HMOV AL,BL AND AL ,OFH CMP AL,0AHJB

26、C4 ADD AL ,07HC4: ADD AL, 30H MOV DL,AL MOV AH,02H INT 21HMOV AX,4C00H INT 21HCODE ENDSEND START七、运行结果邸非穗用中Tord3.Exe04_实验六循环程序设计实验、实验目的1.掌握循环程序的设计方法。二、实验所用设备1. PC 微机一台。三、实验内容本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。要求实 验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据, 然后 将所有数据中凡是符号位为 1 的数据的个数累加起来,即得到区内所包含负数的个 数。仅供个人参考不得用于商业

27、用途四、实验步骤1. 运行 Tddebug 软件,选择 Edit 菜单编写实验程序,提供 10 字节的数据:12H, 88H,82H,89H,33H,90H,01H,10H,0BDH,01H ;2. 使用 Compile 菜单中的 Compile 和 Link 对实验程序进行汇编、连接;3. 使用 Rmrun 菜单中的 Run,运行程序,观察运行结果;4. 更改数据区中的数据,考察程序的正确性。仅供个人参考不得用于商业用途六、程序清单DATA SEGMENTARRAY DB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HMYSTR DBthe negtive m

28、umber amountis: ,0AH,0DH,$DATA ENDS计数初值置0取出最高位判断是否为1若为1,BL增1;显示提示符以十进制数形式显示结果MOV DL,BLMOV AH,02HINT 21HMOV AX,4C00HINT 21HCODE ENDSEND START七、运行结果START: MOV AX ,DATAMOVDS,AXMOVSI,OFFSET ARRAYMOVBL,0 ;MOVCX,10NEXT: MOVAL,SIROLAL,1;ANDAL,01HCMPAL,0 ;JAL1JMPL2L1: INCBLL2: INCSI ;DECCXJNZNEXTMOVDX,OFFSE

29、T MYSTRMOVAH,09HINT21HADDBL,30H ;CODE SEGMENTASSUME DS:DATA,CS:CODE仅供个人参考不得用于商业用途仅供个人参考不得用于商业用途实验一 8259 中断控制器应用实验一、实验目的1.1. 学习可编程中断控制器 82598259 的工作原理。2.2. 掌握可编程中断控制器 82598259 的应用编程方法。、实验所用仪表及设备1.1. PCPC 机一台。2.2. TD-PIT+TD-PIT+实验系统一套三、实验内容1 1 单中断实验。利用系统总线上中断请求信号INTRINTR,设计一个单中断应用。使用单次脉冲模拟中断产生。编写中断处理程

30、序,在显示器屏幕上显示一 个字符。本实验要求使用总线上 INTRINTR 中断请求线完成一次单中断应用实验。 用单次 脉冲上升沿模拟中断源,中断处理程序完成在屏幕上的显示字符“9 9”o图 2-12-1 82598259 单中断实验参考接线图实验步骤如下:1实验接线图如图 2-12-1 所示,按图接线系统总tt仅供个人参考不得用于商业用途2运行 TdpitTdpit 集成操作软件,调用程序代码(T8259-1.ASMT8259-1.ASM ),填写程序代 码中的空缺处,编译、链接。3使用运行命令运行程序,重复按单次脉冲开关KK1KK1 + ,显示屏会显示字符“ 9 9”,说明响应了中断。流程图

31、:实验代码如下:STACK1 SEGMENT STACKDW 256 DUPSTACK1 ENDSDATA SEGMENTINTR_IV ADDEQU01C8HINTR_OCW1EQU0A1H ;INTRINTR_OCW2EQU0A0H ;INTRINTR IMEQUOFBH;INTR对应的中断矢量地址对应PC机内部8259的0CW1地址对应PC机内部8259的0CW2地址;INTR对应的中断屏蔽字仅供个人参考不得用于商业用途MESDB Press any key to exit!,0AH,0DH,0AH,0DH,$仅供个人参考不得用于商业用途CS_BAKDW?IP_BAKDW?IM_BAKD

32、B?DATA ENDS;保存INTR原中断处理程序入口段地址的变量;保存INTR原中断处理程序入口偏移地址的变量;保存INTR原中断屏蔽字的变量CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESMOV AH,09HINT 21HCLIMOV AX,0000HMOV ES,AXMOV DI,INTR_IV ADDMOV AX,ES:DIMOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:DI,AXADD DI,2MOV AX,ES:DIMOV CS_BAK,AXMO

33、V AX,SEG MYISRMOV ES:DI,AX;显示退出提示;替换INTR的中断矢量;保存INTR原中断处理程序入口偏移地址;设置当前中断处理程序入口偏移地址;保存INTR原中断处理程序入口段地址;设置当前中断处理程序入口段地址MOV DX,INTR_OCW1 ;IN AL,DXMOV IM_BAK,ALAND AL,INTR_IMOUT DX,AL设置中断屏蔽寄存器,打开INTR屏蔽位;保存INTR原中断屏蔽字STIWAIT1: MOV AH,1INT 16HJZ WAIT1QUIT: CLIMOV AX,0000HMOV ES,AX;判断是否有按键按下;无按键则跳回继续等待,有则退出

34、;恢复INTR原中断矢量仅供个人参考不得用于商业用途仅供个人参考不得用于商业用途MOV DI,INTR_IV ADDMOV AX,IP_BAK;恢复INTR原中断处理程序入口偏移地址MOV AL,20HOUT 20H,ALPOP AXIRET MYISRENDPCODE ENDSEND START(代码结束)实验现象:使用运行命令运行程序,重复按单次脉冲开关 KK1KK1 ,显示屏 会显示字符“ 9 9”运行结果截图:MOV ES:DI,AXADD DI,2MOV AX,CS_BAK MOVES:DI,AXMOV DX,INTR_OCW1MOV AL,IM_BAK OUTDX,AL STIMO

35、V AX,4C00HINT 21HMYISR PROC NEARPUSH AX MOV AL,39HMOV AH,0EHINT 10H MOV AL,20HINT 10HOVER: MOV DX,INTR_OCW2MOV AL,20H OUTDX,AL;恢复INTR原中断处理程序入口段地址;恢复INTR原中断屏蔽寄存器的屏蔽字;返回到DOS;中断处理程序MYISR;向PC机内部8259发送中断结束命令仅供个人参考不得用于商业用途(2(2)扩展中断应用实验扩展中断源查询方式应用实验。利用实验平台上 82598259 控制器对系统总线上 的中断线 INTINTR R进行扩展。编写程序对 82598

36、259 控制器的 IR0IR0 和 IRIIRI 中断请求进行 处理。实验说明:利用实验单元中的 82598259 控制器,可以对总线上的 INTRINTR 进行中断源的扩充。将 82598259 的 INTINT 连接到 INTRINTR ,8259,8259 的 8 8 路中断请求线 IR0IR0IR7IR7 就成了单一 INTRINTR 中断请求线的扩充。这 8 8 路中断源共用 INTRINTR 的中断矢量,共用 INTRINTR 的中断 服务程序。在 INTRINTR 的中断服务程序中通过对 82598259 的 0CW30CW3 的查询,以确定是 IR0IR0IR7IR7 中哪个产

37、生中断,然后转到相应的服务线程进行处理。本实验要求实现 82598259 控制器 IR0IR0、R1R1 两路中断都可以通过 INTRINTR 向 PCPC 发 起中断请求。用KK1KK1 + +和 KK2KK2+ +模拟两个中断源,在 IR0IR0 对应的服务程序中显示 字符“ 0 0”,在 IR1IR1 对应的服务程序中显示字符“ 1 1”。仅供个人参考不得用于商业用途图 2-32-3 82598259 扩充中断源实验参考接线图实验步骤如下:1实验接线图如图 2-32-3 所示,按图接线2运行 TdpitTdpit 集成操作软件,调用程序代码(T8259-2.ASMT8259-2.ASM)

38、,填写程序代 码中的空缺处,编译、链接。3使用运行命令运行程序,按动 KK1+KK1+、KK2KK2+ +按键,观察中断是否产生。流程图:氏TR O_Q_36D5R4DIDIF1DO8259单元IRtIRI00oo单次脉冲单元开中朋2322XD6xn?W口3XD2XDMOWX1ORJYOWRRD匚吕.W初始化实验黨筑中舱旳ICWh ICW2. ICW4. 0CW1关中肝换复PCL_INTCSRINTR中 函矢量和中断.屏菠宇仅供个人参考不得用于商业用途亟回到DOS(a)主程序(b)中断处理程序仅供个人参考不得用于商业用途实验代码如下:INTR_IV ADDEQU01C8H ;INTR对应的中断

39、矢量地址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端口

40、地址MY8259_OCW1EQUIOY0+04H ;实验系统中8259的OCW1端口地址MY8259_OCW2EQUIOY0+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3EQUIOY0+00H ;实验系统中8259的OCW3端口地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTMES DB Press any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK DW ?;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ?;保存INTR原中断处理程序入口偏移地址的变量IM

41、_BAK DB ?;保存INTR原中断屏蔽字的变量DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESMOV AH,09HINT 21HCLIMOV AX,0000HMOV ES,AXMOV DI,INTR_IV ADDMOV AX,ES:DIMOV IP_BAK,AXMOV AX,OFFSET MYISR;显示退出提示;替换INTR的中断矢量;保存INTR原中断处理程序入口偏移地址仅供个人参考不得用于商业用途;保存INTR原中断处理程序入口段地址;设置当前中断处理程序入口

42、段地址设置中断屏蔽寄存器,打开INTR屏蔽位;保存INTR原中断屏蔽字;初始化实验系统中8259的OCW1 ;打开IR0和IR1的屏蔽位MOV ES:DI,AX;设置当前中断处理程序入口偏移地址WAIT1:QUIT:STIMOV AH,1INT 16HJZ WAIT1CLIMOV AX,0000HMOV ES,AX;判断是否有按键按下;无按键则跳回继续等待,有则退出;恢复INTR原中断矢量ADD DI,2MOV AX,ES:DIMOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:DI,AXMOV DX,INTR_OCW1 ;IN AL,DXMOV IM_BAK,ALAND

43、AL,INTR_IMOUT DX,ALMOV DX,MY8259_ICW1MOV AL,_13H;初始化实验系统中8259的ICW1;边沿触发、单片8259、需要ICW4OUT DX,ALMOV DX,MY8259_ICW2MOV AL, 08HOUT DX,AL;初始化实验系统中8259的ICW2MOV DX,MY8259_ICW4;初始化实验系统中8259的ICW4MOV AL, 01H;非自动结束EOIOUT DX,ALMOV DX,MY8259_OCW3MOV AL,0AHOUT DX,AL;向8259的OCW3发送读取IRR命令MOV DX,MY8259_OCW1MOV AL, 0F

44、CHOUT DX,AL仅供个人参考不得用于商业用途MOV DI,INTR_IV ADDMOV AX,IP_BAK;恢复INTR原中断处理程序入口偏移地址MOV ES:DI,AXADD DI,2MOV AX,CS_BAKMOV ES:DI,AXMOV DX,INTR_OCW1MOV AL,IM_BAK OUTDX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARPUSH AXQUERY: MOV DX,MY8259_OCW3IN AL,DXAND AL,03HCMP AL,01HJE IR0ISRJNE IR1ISRJMP OVERIR0ISR:MOV AL,30H

45、MOV AH,0EHINT 10HMOV AL,20HINT 10HJMP OVERIR1ISR:MOV AL,31HMOV AH,0EHINT 10HMOV AL,20HINT 10HJMP OVEROVER: MOV DX,INTR_OCW2 MOVAL,20H OUT DX,AL;恢复INTR原中断处理程序入口段地址;恢复INTR原中断屏蔽寄存器的屏蔽字;返回到DOS;中断处理程序MYISR;向8259的OCW3发送读取IRR命令;读出IRR寄存器值;若为IR0请求,跳到IR0处理程序;若为IR1请求,跳到IR1处理程序;IR0处理,显示字符串STR0;IR1处理,显示字符串STR1;向

46、PC机内部8259发送中断结束命令仅供个人参考不得用于商业用途仅供个人参考不得用于商业用途MOV AL,20HOUT 20H,ALPOP AXIRETMYISR ENDPCODE ENDSEND START(代码结束)实验现象:使用运行命令运行程序,按动KK1+KK1+、KK2+KK2+按键,屏幕分别显示“0 0”、“ 1 1”,若同时按下 KK1+KK1+、KK2KK2+ +按键,则显示“ 0 0”实验调试无错误,程序运行无错误 实验结果:五、思考题1.单中断与多中断有何不同?单中断只需直接与 CPUCPU 的 INTRINTR 引脚相连,不经过 8259,8259,多中断需要经过82598

47、259 的优先判别,再送至 CPUCPU 处理中断。仅供个人参考不得用于商业用途2.如何改变中断优先级的顺序?通过设置 0CW20CW2 设置优先级循环方式。3.可编程中断控制器8259A在协助CPU处理中断事务中起哪些作用?管理和控制 80 x8680 x86 的外部中断请求,可实现中断优先级判定,提供中断类型 号,屏蔽中断输入等功能。4.可屏蔽中断与8259A是什么关系?8259A8259A 是一种可编程可屏蔽中断控制器,82598259 专门用来管理多个可屏蔽中断输 入。仅供个人参考不得用于商业用途实验二 8255 并口控制器应用实验一、实验目的1.1. 掌握 82558255 的工作方

48、式及应用编程。2.2. 掌握 82558255 典型应用电路的接法。二、实验内容1.1. 基本输入输出实验。 编写程序, 使 82558255 的 A A 口为输出, B B 口为输入, 完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。2 2流水灯显示实验。编写程序,使 82558255 的 A A 口和 B B 口均为输出,数据 灯 D7D7D0D0 由左向右,每次仅亮一个灯,循环显示,D15D15D8D8 与 D7D7D0D0 正相反,由右向左,每次仅点亮一个灯,循环显示。三、实验所用仪表及设备1.1. PCPC 机一台。2.2. TD-PIT+TD-PIT+ 实验系

49、统一套。实验步骤( 1 1 )基本输入输出实验实验说明:本实验使 82558255 的端口 A A 作为输出口工作在方式 0 0,端口 B B 作为输入口工 作在方式 0 0。用一组开关信号接入端口 B B,端口 A A 输出线接至一组数据灯上, 然后通过对 82558255 芯片编程来实现输入输出功能。仅供个人参考不得用于商业用途实验步骤如下:1实验接线图如图 3-23-2 所示,按图连接实验线路图。2运行 TdpitTdpit 集成操作软件,根据实验内容,调用程序代码(T8255-1.ASMT8255-1.ASM), 填写程序代码中的空缺处,编译、链接。3运行程序,改变拨动开关,同时观察

50、LEDLED 显示,验证程序功能。流程图:初始初始化化8255控制寄存器控制寄存器实验代码如下:IOYOEQU3000H;片选IOYO对应的端口始地址MY8255_AEQUIOYO+OOH*4;8255的A口地址图3-2 8255基本输入输出实验参考接线图DO8255 Al单元AGWR RD tzso I 4 5 & _7 12 3 4 s 4 7开始开始结束结束返回到返回到DOS将数据写入将数据写入2静的静的A口口仅供个人参考不得用于商业用途MY8255_BEQUIOY0+01H*4;8255的B口地址MY8255CEQUIOY0+02H*4;8255的C口地址仅供个人参考不得用于商业用途M

51、Y8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE ENDSEND START(代码结束)实验现象:从 K0K0 到 K7K7,每拔一个开关,LEDLED 灯亮。(2 2)流水灯显示实验实验说明:使 82558255 的 A A 口和 B B 口均为输出,数据灯 D7D7D0D0 由左向右,每次仅亮一 个灯,循环显示,D15D15D8D8 与 D7D7D0D0 正相反,由右向左,每次仅点亮一个灯, 循环显示。实验步骤如下:实验接线图如图 3-43-4 所示,按图连接实验线

52、路图CODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODEMOV AL, 82H OUT DX,ALLOOP1: MOV DX,MY8255_B INAL,DX MOVDX,MY8255_A OUTDX,ALMOV AH,1INT 16HJZ LOOP1QUIT: MOV AX,4C00HINT 21H;初始化8255工作方式;工作方式0,A口输出,B口输入;读B口;写A口;判断是否有按键按下;无按键则跳回继续循环,有则退出;结束程序退出仅供个人参考不得用于商业用途2运行 TdpitTdpit 集成操作软件,根据实验内容,调用程序代码 填写程序代

53、码中的空缺处,编译、链接。3运行程序,观察 LEDLED 灯的显示,验证程序功能。4自己设计流水灯的流动模式,编写程序并实现。流程图:开始初始化8255控制寄存器写A口发出的起始数据80H写B口发出的起始数据01H将A口数据右移再写入A口将B口数据左移再写入B口有按键按下?是返回到DOS结束实验代码如下:IOYOEQUMY8255 A EQU幵关反LED站0-05 744 Bl T1 1- 1 11 11MVMV 11-311-3 4 4 5 5 fi-fi- 7 7 B B B-B- E E B B E E B B B_B_ PPPPPPPFPPPPPPPF& & 1111 - - -J J

54、4 4 5 5 flfl -I-I-扎A.A.AAAAA-A-山AAAA pppppppppppppppp5 55 52 27 6 5 + s I QD D DD&DD& DDDDDD D D( (T8255-2.ASMT8255-2.ASM),3000H片选IOYO对应的端口始地址IOYO+OOH*4;8255的A口地址仅供个人参考不得用于商业用途MY8255_BEQU IOY0+01H*4MY8255_CEQU IOY0+02H*4MY8255_MODE EQUIOY0+03H*4;8255的B口地址;8255的C口地址;8255的控制寄存器地址STACK1 SEGMENT STACKDW

55、 256 DUP(?)STACK1 ENDSDATA SEGMENTLADB ?LBDB ?DATA ENDS;定义数据变量CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODEMOV AL, 80HOUT DX,AL;定义8255工作方式;工作方式0,A口和B口为输出MOV DX,MY8255_AMOV AL, 80HOUT DX,ALMOV LA,ALMOV DX,MY8255_BMOV AL, 01HOUT DX,ALMOV LB,AL;写A口发出的起始数据;写B口发出的起始数据LOO

56、P1: CALL DALL YMOV AL,LAROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LBROL AL,1MOV LB,ALMOV DX,MY8255_B;将A口起始数据右移再写入A口;将B口起始数据左移再写入B口仅供个人参考不得用于商业用途仅供个人参考不得用于商业用途;判断是否有按键按下QUIT: MOV AX,4C00H INT 21HDALL Y PROC NEARPUSH CXPUSH AXMOV CX,0FFFH D1:MOV AX,0FFFFHD2:DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL

57、 Y ENDPCODE ENDSEND START(代码结束)实验结果:数据灯 D7D7D0D0 由左向右,每次仅亮一个灯,循环显示,D15D15D8D8 与 D7D7D0D0 正相反,由右向左,每次仅点亮一个灯,循环显示。五、思考题1.并口通信需要注意哪些问题?需要注意费用高, 只适合于短距离运输的问题。 长距离运输需注意干扰的问2.比较并口通信与串口通信的异同。并口通信是将数据的各位同时在多根并行传输线上进行传输。 将数据的各位按时间顺序依次在一根传输线上传输,只要其中一个数据传输出问题,整个系 统就会终断!而并联的则是将所有分支同步并接起来,这样每个分支机构都独 立操作,其中任意分支出问

58、题,不会影响到其它分支3. 8255A端口与外设之间的单向和双向传送是指什么?3个并口中哪个并口 具有双向传送功能?OUT DX,ALJZ LOOP1;无按键则跳回继续循环,有则退出MOV AH,1INT 16H;结束程序退出;软件延时子程序仅供个人参考不得用于商业用途单向传送是指方式 0 0 和方式 1 1,双向传送指方式 3 3,端口 A A 有双向传输功能。仅供个人参考不得用于商业用途实验三 8254 定时 /计数器应用实验一、实验目的1.1. 掌握 82548254 的工作方式及应用编程。2.2. 掌握 82548254 典型应用电路的接法。二、实验内容1 1计数应用实验。编写程序,应

59、用 82548254 的计数功能,用开关模拟计数,使 每当按动 KKI+KKI+ 五次后,产生一次计数中断,并在屏幕上显示一个字符 5 5。2 2定时应用实验。编写程序,应用 82548254 的定时功能,产生一个 1Hz1Hz 的方 波,利用 LEDLED 灯作为输出显示,观察 LEDLED 灯闪烁的频率。三、实验所用仪表及设备1.1. PCPC 机一台。2.2. TD-PIT+TD-PIT+ 实验系统一套。实验步骤(1 1)计数应用实验实验说明:编写程序,将 82548254 的计数器 0 0 设置为方式 0 0,计数值为 5 5,用微动开关 KKl+KKl+ 作为 CLK0CLK0时钟,

60、 OUT0OUT0 连接 INTRINTR ,每当 KKl+KKl+ 按动 5 5 次后产生中断请求,在 屏幕上显示字符“ 5 5”。仅供个人参考不得用于商业用途实验步骤如下:1实验接线如图4-1所示,按图接线。2运行 TdpitTdpit 集成操作软件,根据实验内容,调用程序代码(T8254-1.ASM), 填写程序代码中的空缺处,编译、链接。3运行程序,按动 KK1KK1 +产生单次脉冲,观察实验现象。4改变计数值,验证 82548254 的计数功能。流程图:KK : +7 7 6 6 - - J JDDDDDDI OA A A A单次a冲单尤ODDODD DDDD仅供个人参考不得用于商业

温馨提示

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

评论

0/150

提交评论