微机原理实验

上传人:ta****u 文档编号:227948220 上传时间:2023-08-17 格式:DOCX 页数:54 大小:443.14KB
收藏 版权申诉 举报 下载
微机原理实验_第1页
第1页 / 共54页
微机原理实验_第2页
第2页 / 共54页
微机原理实验_第3页
第3页 / 共54页
资源描述:

《微机原理实验》由会员分享,可在线阅读,更多相关《微机原理实验(54页珍藏版)》请在装配图网上搜索。

1、微型计算机原理实验报告学号姓名 海米提。热合木江班级 测控0902 班实验一 显示程序实验一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。流程图2.试验程序DATA SEGMENTMES DBShow a as hex:,SD DBaDATA ENDSCODE SEGMENTASSUMECS:CODE, DS:START: MOVAX, DATAMOVDS, AXMOVDX, OFFSET MMOVAH, 0

2、9HINT21HMOVDI, OFFSET SDMOVAL, DS:DIANDAL, 0F0HSHRAL,4CMPAL, 0AHJBC2ADDAL, 07HC2: ADDAL, 30HMOVDL, ALMOVAH, 02HINT21HMOVAL, DS:DIANDAL, 0FHCMPAL, 0AHJBC3ADDAL, 07HC3: ADDAL, 30HMOVDL, ALMOVAH, 02HINT21HMOVAX, 4C00HINT21HCODE ENDSENDSTART0AH,0DH,$列非隹用中vord3.ExeRhnw a_as_h(?x:-61实验二 数据传送实验三、实验内容将数据段中的

3、一个字符串传送到附加段中,并输出附加段中的目标字符串到 屏幕上1. 试验程序DATA SEGMENTMSRDBHELLO,WORLD!$LENEQU$- MSRDDATAENDSEXDASEGMENTMSDDBLEN DUP(?)EXDAENDSMYSTACK SEGMENT STACKDW 20 DUP(?)MYSTACK ENDSCODE SEGMENTASSUMECS:CODE, DS:DDATA, ES:EXDASTART: MOVAX, DDATAMOVDS, AXMOVAX, EXDAMOVES,AXMOVSI, OFFSET MSRMOVDI, OFFSET MSDMOVCX,

4、LENNEXT: MOVAL, SIMOVES:DI, ALINCSIINCDIDECCXJNZNEXTPUSHESPOPDSMOVDX, OFFSET MSDMOVAH, 9INT21HMOVAX, 4C00HINTCODE ENDSENDMOVMOVNEXT: MOVMOVINCLOOP21HSTARTBX, 0CX, LENAL, MSRBXES:MSDBX, ALBX2.实验结果NEXT实验三 数码转换程序实验1.将ASCII码表示的十进制数转换为二进制数 1. 流程图CX = N-1加下一 ftASGlM减孔H送厨幕显乳2 试验程序DATAS SEGMENTNUMBER DB 000

5、12DATAS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVCX,4MOVSI,OFFSET NUMBERMOVAL,SISUBAL,30HMOVAH,00HMOVBL,10L1:MULBLADDAL,SI+1SUBAL,30HINCSIDECCXJNZL1MOVCX,8MOVBL,ALNEXT: SHLBL,1JCONEMOVDL,30HJMPEXITONE: MOVDL,31HEXIT: MOVAH,02HINT21HDECCXJNZNEXTMOVAH,4CHINT21HCODE ENDSENDSTA

6、RT3实验结果1 险Inactive word3uExe|QGa91ieo-1n2将十进制数的ASCH码转换为BCD码本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中, 转换为BCD码后,并将转换结果按位分别显示于屏幕上。若输入的不是十进制 数的ASCII码,则输出“FF”。提示:一字节ASCII码取其低四位即变为BCD码1. 实验流程图2.实验程序DATAS SEGMENTBUFDB6DB?DB6 DUP(?)BUFEDBFF$DATASENDSCODESEGMENTASSUMEDS:DATAS,CS:CODESTART:MOVAX,DATASMOVDS,AXMO

7、VDX,OFFSET BUFMOVAH,10INT21HMOVCH,5MOVSI,DXL2:MOVBL,SI+2INCSICMPBL,39HJAL1SUBBL,30HANDBL,0FHMOVDH,4MOVCL,4;SHLAL,CLROLBL,CLNEXT:SHLBL,1JCONEMOVDL,30HJMPEXITONE:MOVDL,31HEXIT:MOVAH,2INT21HDECDHJNZNEXTDECCHJNZL2JMPL3L1:MOVDX,OFFSET BUFEMOVAH,9INT21HL3:MOVAH,4CHINT21HCODEENDSENDSTART3实验结果HH C:Wi ndowss

8、ysEe m 22cm d.eice3 将十六进制数的ASCH码转换为十进制数十六位二进制数的值域为0-65535,最大可转换为五位十进制数。五位十进 制数可表示为:N =D X 104+D X 103+D X IO2+D X 10+DD 43210因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D-D,并将它们转14化为ASCII码。本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结 果显示在屏幕1. 实验流程图2. 实验程序DATA SEGMENTBUFDB5DB?DB5 DUP(?)HEXDB4 DUP(?)DECIDB5 DUP(0),$S1D

9、B16JINZHI : $S2DB0AH,0DH,10JINZHI : $DATAENDSCODE SEGMENTASSUMECS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,S1MOVAH,9INT21HLEADX,BUFMOVAH,10INT21HMOVSI,2MOVDI,0CHECK:MOVAL,SIBUFCMPAL,40HJSNUMCMPAL,47HJSCAPITALSUBAL,57HJMPSTORENUM:SUBAL,30HJMPSTORECAPITAL:SUBAL,37HJMPSTORESTORE:MOVHEXDI,ALINCDIINCSI

10、CMPDI,4JNZCHECKLEADX,S2MOVAH,9INT21HMOVAX,WORD PTR HEXSHLAL,4ADDAH,ALMOVCH,AHMOVAX,WORD PTR 2HEXSHLAL,4ADDAL,AHMOVAH,CHMOVSI,5MOVMOVCMPJNSNEGPUSHPUSHMOVMOVINTPOPPOPCONV: DECDIVADDMOVXORCMPJNZLEAMOVINTMOVINTCODE ENDSENDBX,10DX,0AX,0CONVAXAXDXDL,2DHAH,221HDXAXSIBXDX,30HDECISI,DLDX,DXAX,0CONVDX,DECIAH,

11、921HAH,4CH21HSTART3 实验结果SS C;Wi ndawssystem3 2c md .e/eIn E3 嚣1BJIMZHI ; 7F02hl10JIMZHI : 32690诸榜f二意健灶渎 4BCD码转换为二进制码本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存 入其后的内存单元中,转换结束,送屏幕显示。1.实验流程图2.实验程序DATA SEGMENTDASC DB3DB?DB3 DUP(?)S1DB0AH,0AH,0DH,10 JINZHI MA : $S2DB0AH,0DH, BCD MA: $S3DB0AH,0DH, 2 JINZHI

12、MA : $STODB8 DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE, DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDI,0MOVSI,4LOOPER:CALLWHOLEDECSIJNZJMPWHOLE: LEA MOV INT LEA MOV INT LEA MOV INTMOV SUB SHL ADD MOVMOVMOVPRE1: MOV ROL JNC ADDDISP1: PUSHMOV INT POP DEC JNZPUSH MOV MOV INT POP DEC MOV JNZLEALOOPEREXITDX,S1AH,9 21

13、H DX,DASCAH,10 21H DX,S2AH,9 21HAX,WORD PTR 2DASC AX,3030H AL,4AL,AH DISTO,ALCH,2CL,4DX,30HAL,1DISP1DX,01HAXAH,0221HAXCLPRE1AXDL,20HAH,2 21H AX CHCL,4PRE1DX,S3国1 C:Wi n d o ws5y stem 3 2c md .exe=回冨1U J1NZH1 HI : b6鼻rtcn ma: film nils2 jinzhi ma : flomeaeMOVINTMOVMOVANDSHRMOVMULADDINCMOVINCMOVPRE2:

14、MOVROLJNCADDDISP2: PUSHMOVINTPOPLOOPRETEXIT: MOVINTCODE ENDSENDAH,921HAL,DISTOBL,ALBL,0FHAL,4CL,10CLAL,BLDIDISTO,ALDICX,8DX,30HAL,1DISP2DX,01HAXAH,0221HAXPRE2AH,4CH21HSTART实验运算类程序实验1.二进制双精度加法运算本实验要求计算x+y=z,将结果z输出到屏幕,其中x=OO1565aOh,y=0021b79eh1.实验流程图2实验程序DATA SEGMENTX DD421C65A0HY DD3C41B69BHS DBX+Y=

15、$SUM DB4 DUP(0(DATA ENDSCODE SEGMENTASSUMECS:CODE, DS:DATASTART: MOVAX,DATAMOVDS,AXMOVAX,WORD PTR XMOVBX,WORD PTR YADDAX,BXMOVWORD PTR SUM,AXMOVAX,WORD PTR 2XMOVBX,WORD PTR 2YADCAX,BXMOVWORD PTR 2SUM,AXLEADX,SMOVAH,9INT21HMOVMOVCX,4SI,3CHECK: MOVAL,SUMSIMOVSHRAH,ALAL,4CMPJSAL,0AHDISP1ADDAL,07HDISP1:

16、 ADDMOVAL,30HDL,ALPUSHMOVAXAH,02HINTPOP21HAXANDAH,0FHCMPJSAH,0AHDISP2ADDAH,07HDISP2: ADDMOVAH,30HDL,AHMOVAH,02HINT21HDECSILOOPCHECKEXIT: MOVAH,4CHINT21HCODE ENDSENDSTART3实验结果圈匚:Windowsysteiri325DAassAassBCT29MOVDL,30HMOVAH,2INT21HMOVDL,BHMOVAH,2INT21HMOVDL,30HMOVAH,2INT21HMOVDL,BLMOVAH,2INT21HEXIT:M

17、OVAH,4CHINT21HCODEENDSENDSTART3.实验结果繭 C:V.Whid owssyste m 32cmd. exelui.豆|貌|Z=X-V= 9203JhW玉匚忌洼社議实验五 分支程序设计实验实验内容:实验可以使用BH, BL作为暂存现行的最大值和最小值,且在程 序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。在循环操作 中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的 字节内容比BH的内容大或比BL中的内容小,贝V修改之。当循环结束操作时,将 BH,BL分别送屏幕显示。1. 实验流程图11yyBH=ALBL=ALAL BLQBH=

18、SI:BL=SISI=SZ+1.AL=S结束2.实验程序DATA SEGMENTBUFDBThe max number:$CUFDB0AH,0DH,The mini number:$DUFDB0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSET BUFMOVAH,9INT21HMOVSI,OFFSET DUFMOVCH,7MOVBH,SIMOVBL,SIL1:INCSIMOVAL,SICMPAL,BHJBL2MOVBH,ALL

19、2:CMPAL,BLJAL3MOVBL,ALL3:DECCHJNZL1;MOVBH,0B9HXIANSHI:MOVAL,BH;显示 BH 和 BLMOVCL,4SHRAL,CLCMPAL,0AHJBC1ADDAL,07HC1:ADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAL,BHANDAL,0FHCMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVMOVINTDL,ALAH,221HMOVMOVDXQFFSET CUFAH,921HMOVBL,0B9HMOVAL,BLMOVCL,4SHRAL,CLCMPAL,0AHJBC3ADDAL,07HADDAL

20、,30HMOVDL,ALMOVAH,2INT21HMOVAL,BLANDAL,0FHCMPAL,0AHJBC4ADDAL,07HADDAL,30HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HINTC3:C4:CODE ENDSENDSTARTLd3实验结果亞 CiWi ndowssyste m 32c md .exeThe max number:F3 The mini number:04 请按任意需继续 实验六循环程序设计实验实验内容:本实验要求通过求某数据区内负数的个数来表现循环程序的结构 形式。要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区 内

21、的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区 内所包含负数的个数1. 实验流程图2实验程序DATAS SEGMENTBUF DBThe number of negtive:$CUF DB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HDATAS ENDSCODES SEGMENTASSUMESTART: MOVMOVMOVMOVCS:CODES,DS:DATASAXQATASDS,AXDX,OFFSET BUFAH,9INT21HMOVBL,0MOVCX,10LEASI,CUFL2:MOVAL,SIINCSIANDAL,80HJZL1IN

22、CBLL1:DECCXJNZL2ADDBL,30HMOVDL,BLMOVAH,2INT21HMOVAX,4C00HINT21HCODES ENDSENDSTART3实验结果fl C :Windows&ystem 3 2c m d .exe二,回 巫riTh# number of negtiue:5悔按吃意诲继纵 接口实验实验一8259中断控制器应用实验一、实验目的1. 学习可编程中断控制器8259的工作原理。2. 掌握可编程中断控制器8259的应用编程方法。二、实验内容1.单中断实验。利用系统总线上中断请求信号INTR,设计一个单中断应用。使 用单次脉冲模拟中断产生。编写中断处理程序,在显示器

23、屏幕上显示一个字符。实验步骤如下:实验接线图如图2-1所示,按图接线。 运行Tdpit集成操作软件,调用程序代码(T8259-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM) 使用运行命令运行程序,重复按单次脉冲开关KK1 + ,显示屏会显示字符“9”说明响应了中断。2. 扩展中断源查询方式应用实验。利用实验平台上8259控制器对系统总线上的 中断线INTR进行扩展。编写程序对8259控制器的IR0和IRI中断请求进行处理。BO YG:no畫X1QR兀DhXD3XD4 HRXD1 :XDG59元82单7 6 -3 4 3 2 ! orRD

24、m *JT dddddddd 魯 ru ain单次區冲单元实验步骤如下:实验接线图如图2-3所示,按图接线。运行Tdpit集成操作软件,调用程序代码(T8259-2.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM)使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生。三、实验所用仪表及设备1. PC机一台。2. TD-PIT+实验系统一套。四实验代码1.单中断实验。INTR_IVADD EQUINTR_OCW1 EQUINTR_OCW2 EQUINTR_IMEQU01C8H;INTR对应的中断矢量地址0A1H ;INTR对应PC机

25、内部8259的OCW1地址0A0H ;INTR对应PC机内部8259的OCW2地址0FBH;INTR对应的中断屏蔽字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_BAK DB ?;保存INTR原中断屏蔽字的变量DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA

26、START: MOV AX,DATA;显示退出提示MOV DS,AXMOV DX,OFFSET MESMOV AH,09HINT 21HCLIMOV AX,0000H;替换INTR的中断矢量MOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:DIMOV IP_BAK,AX;保存INTR原中断处理程序入口偏移地址MOV AX,OFFSET MYISRMOV ES:DI,AX;设置当前中断处理程序入口偏移地址ADD DI,2MOV AX,ES:DI;保存INTR原中断处理程序入口段地址;设置当前中断处理程序入口段地址MOV CS_BAK,AXMOV AX,SEG MYISRMO

27、V ES:DI,AXMOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽位 IN AL,DXMOV IM_BAK,AL;保存INTR原中断屏蔽字AND AL,INTR_IMOUT DX,ALSTIWAIT1: MOV AH,1INT 16HJZ WAIT1;判断是否有按键按下;无按键则跳回继续等待,有则退出QUIT: CLIMOV AX,0000H;恢复 INTR 原中断矢量MOV ES,AXMOV DI,INTR_IVADDMOV AX,IP_BAK;恢复 INTR 原中断处理程序入口偏移地址MOV ES:DI,AXADD DI,2MOV AX,CS_BAKMOV ES:

28、DI,AXMOV DX,INTR_OCW1MOV AL,IM_BAK OUT DX,AL STIMOV AX,4C00HINT 21HMYISR PROC NEARPUSH AX MOV DL,39H MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H;恢复 INTR 原中断处理程序入口段地址;恢复 INTR 原中断屏蔽寄存器的屏蔽字;返回到 DOS;中断处理程序 MYISR;输出字符9;输出字符回车;输出字符换行OVER: MOV DX,INTR_OCW2 ;向 PC 机内部 8259 发送中断结束

29、命令MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALPOP AXIRETMYISR ENDPCODE ENDSEND START2扩展中断源查询方式应用实验。INTR_IVADD EQU01C8HINTR_OCW1EQU 0A1HINTR_OCW2EQU 0A0HINTR_IM EQU 0FBHMY8259_ICW1EQUIOY0+00HMY8259_ICW2EQUIOY0+04HMY8259_ICW3EQUIOY0+04HMY8259_ICW4EQUIOY0+04HMY8259_OCW1EQUIOY0+04HMY8259_OCW2EQUIOY0+00HMY825

30、9_OCW3EQUIOY0+00HIOY0EQU 3000H;INTR 对应的中断矢量地址;INTR对应PC机内部8259的OCW1地址;INTR对应PC机内部8259的OCW2地址;INTR对应的中断屏蔽字;片选 IOY0 对应的端口始地址;实验系统中 8259的 ICW1 端口地址;实验系统中8259的ICW2端口地址;实验系统中8259的ICW3端口地址;实验系统中8259的ICW4端口地址;实验系统中 8259的 OCW1 端口地址;实验系统中8259的OCW2端口地址;实验系统中8259的OCW3端口地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1

31、 ENDSDATA SEGMENTMESDBPress any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK量量DW?;保存INTR原中断处理程序入口段地址的变IP_BAKDW?;保存 INTR 原中断处理程序入口偏移地址的变量IM_BAKDB?;保存INTR原中断屏蔽字的变量DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES;显示退出提示MOV AH,09HINT 21HCLIMOV AX,0000HMOV ES,AXMOV DI,INTR_

32、IVADD;替换INTR的中断矢量MOV AX,ES:DIMOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:DI,AX;保存 INTR 原中断处理程序入口偏移地址;设置当前中断处理程序入口偏移地址ADD DI,2MOV AX,ES:DIMOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:DI,AX;保存 INTR 原中断处理程序入口段地址;设置当前中断处理程序入口段地址MOV DX,INTR_OCW1IN AL,DXMOV IM_BAK,ALAND AL,INTR_IMOUT DX,AL;设置中断屏蔽寄存器,打开 INTR 的屏蔽位;保存INTR

33、原中断屏蔽字MOV DX,MY8259_ICW1;初始化实验系统中 8259的 ICW1MOV AL,13H;边沿触发、单片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_OCW1;初始化实验系统中8259的OCW1

34、MOV AL,0FCHOUT DX,AL;打开IR0和IR1的屏蔽位STIWAIT1: MOV AH,1INT 16HJZ WAIT1;判断是否有按键按下;无按键则跳回继续等待,有则退出QUIT: CLIMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,IP_BAKMOV ES:DI,AXADD DI,2MOV AX,CS_BAKMOV ES:DI,AXMOV DX,INTR_OCW1MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARPUSH AXQUERY: MOV DX,MY8259

35、_OCW3IN AL,DXAND AL,01HCMP AL,01HJE IR0ISRJNE IR1ISRJMP OVER;恢复INTR原中断矢量;恢复INTR原中断处理程序入口偏移地址;恢复INTR原中断处理程序入口段地址;恢复INTR原中断屏蔽寄存器的屏蔽字;返回到 DOS;中断处理程序MYISR;向8259的OCW3发送读取IRR命令;读出IRR寄存器值;若为IR0请求,跳到IR0处理程序;若为IR1请求,跳到IR1处理程序IR0ISR:MOV AL,30H;IR0 处理,显示字符串 STR0MOV AH,0EHINT 10HMOV AL,20HINT 10HJMP OVER;IR1 处理

36、,显示字符串 STR1IR1ISR:MOV AL,31HMOV AH,0EHINT 10HMOV AL,20HINT 10HJMP OVER;向PC机内部8259发送中断结束命令OVER: MOV DX,INTR_OCW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALPOP AXIRETMYISR ENDPCODE ENDSEND START五实验现象及分析1.单中断实验。按单次脉冲开关KK1 +,显示屏会显示字符“9”2.扩展中断源查询方式应用实验。 注:与03H与,和与01H与时的优先级不一样。和03h与,同时按应当出1;和01h与,同时按应当出0。六思考题

37、1.单中断与多中断有何不同?单中断只需要中断一次,不存在优先级的问题。而多中断需要考虑优先级的问题,以及是否允许中断嵌套。2如何改变中断优先级的顺序?首先通过选择中断优先级管理方式,有全嵌套方式、特殊嵌套方式、优先级自动 循环方式、优先级特殊循环方式、查询方式。其中有的是不能改变优先级的,如 全嵌套方式,其IR0级别最高,IR7最低。而本代码中使用的查询方式,根据查 询得到的中断值来决定谁的优先级高,其中有一个AND指令,若是和03H与,同时触发时,响应的是IR1;而用01H与,同时触发,响应的是IR0。3. 可编程中断控制器8259A在协助CPU处理中断事务中起哪些作用?用于管理和控制80X

38、86的外部中断请求,可实现中断优先级判定,提供中断类型号,屏蔽中断输入等。4.可屏蔽中断与8259A是什么关系?8259A可以提供中断屏蔽的方式,通过置位复位IR0到IR7控制中断类型号。实验二 8255 并口控制器应用实验一、实验目的1. 掌握 8255 的工作方式及应用编程。2. 掌握 8255 典型应用电路的接法。二、实验内容1. 基本输入输出实验。编写程序,使 8255 的 A 口为输出, B 口为输入,完 成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。实验说明:本实验使 8255 的端口 A 作为输出口工作在方式 0,端口 B 作为输入口工作在方式0。用一组开关

39、信号接入端口 B端口 A输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。XD7 THXD10KAS :GV2:口:MV/ c c XIOR X X0055元2 wn-8 ft7 s 5 4 3 fl J ftvTtDSD DDD DDD AA 瑕盅匸开关及LED恭示 单元图3-2 8255 基本输入输出实验参考接线图实验步骤如下:实验接线图如图 3-2 所示,按图连接实验线路图。运行Tdpit集成操作软件,根据实验内容,调用程序代码(T8255-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM)运行程序,改变拨动开关

40、,同时观察LED显示,验证程序功能。2.流水灯显示实验。编写程序,使8255的A 口和B 口均为输出,数据灯D7D0由 左向右,每次仅亮一个灯,循环显示,D15D8与D7D0正相反,由右向左,每次仅点 亮一个灯,循环显示。实验说明:使 8255 的 A 口和 B 口均为输出,数据灯 D7D0 由左向右,每次仅亮一个灯, 循环显示, D15D8 与 D7D0 正相反,由右向左,每次仅点亮一个灯,循环 显示。参考实验程序流程如图 3-3所示。图 3-3 流水灯显示参考程序流程图实验步骤如下:实验接线图如图 3-4 所示,按图连接实验线路图。运行Tdpit集成操作软件,根据实验内容,调用程序代码(T

41、8255-2.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM) 运行程序,观察LED灯的显示,验证程序功能。 自己设计流水灯的流动模式,编写程序并实现。YD 7xmXDQ、XIOR ?I0YO ;7C54321ODDSD QDDDo 12弓斗5 6 7 A AAAA AAA ppppp ppp开关及LEOTFOOO 1 2n斗庁岳7 D DDD DDD D6 L 3 4 5 7 B BBB BBB B p ppp ppp p图3-4 8255 流水灯显示参考接线图三、实验所用仪表及设备1. PC 机一台。2. TD-PIT+实验系统一套。四程序

42、代码MY8255_AEQUIOY0+00H*4;8255的A 口地址MY8255_BEQUIOY0+01H*4;8255 的 B 口地址MY8255_CEQUIOY0+02H*4;8255的C 口地址MY8255_MODEEQUIOY0+03H*4;8255 的控制寄存器地址1.基本输入输出实验。;片选IOY0对应的端口始地址IOY0 EQU3000HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOVDX,MY8255_MODE;初始化 8255工作方式LOOP1: MOVINMOVM

43、OVAL,83H;工作方式0,A 口输出,B 口输入OUTDX,ALDX,MY8255_B ;读 B 口AL,DXDX,MY8255_A ;写 A 口OUT DX,ALMOV AH,1INT 16HJZ LOOP1;判断是否有按键按下;无按键则跳回继续循环,有则退出QUIT: MOVINTAX,4C00H;结束程序退出21HCODE ENDSEND START2.流水灯显示实验。IOY0 EQU3000H;片选 IOY0 对应的端口始地址MY8255AEQUIOY0+00H*4;8255 的 A 口地址MY8255BEQUIOY0+01H*4;8255 的 B 口地址MY8255CEQUIOY

44、0+02H*4;8255 的 C 口地址IOY0+03H*4 ;8255 的控制寄存器地址MY8255_MODE EQUSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB?;定义数据变量LB DB?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXMOVMOVOUTDX,MY8255_MODE;定义 8255 工作方式AL,81H;工作方式0, A 口和B 口为输出DX,ALMOV MOV OUTMOVDX,MY8255_A ;写 A 口

45、发出的起始数据AL,80HDX,ALLA,ALMOV MOV OUTMOVLOOP1: CALLMOVROLMOVMOVOUTMOV RORMOVMOV OUTMOVINT JZQUIT: MOVINTDALLY PROCPUSHPUSHMOV D1: MOV D2: DECJNZLOOPPOPPOPRET DALLY ENDPCODE ENDSENDDX,MY8255_B ;写 B 口发出的起始数据AL,01HDX,ALLB,ALDALLYAL,LA;将A 口起始数据右移再写入A 口AL,1LA,ALDX,MY8255_ADX,ALAL,LB;将B 口起始数据左移再写入B 口AL,1LB,A

46、LDX,MY8255_BDX,ALAH,1;判断是否有按键按下16HLOOP1;无按键则跳回继续循环,有则退出AX,4C00H;结束程序退出21HNEARCXAXCX,0FFFHAX,0FFFFHAXD2D1AXCX;软件延时子程序START五实验现象及分析1. 基本输入输出实验。数据灯亮D7D6D5D4D3D2D1D0无影响开关打开常亮K7K6K5K4K3K2K1K0只要对应的开关拨动,数据灯的显示就会发生改变。2.流水灯显示实验。D15-D8从右到左、D7-D0从左到右依次亮起来,循环往复,周而复始。六思考题1. 并口通信需要注意哪些问题?并口通信具有传输速得快、效率高的优点,但要求的数据

47、线较多,不适合长距离传输。2. 比较并口通信与串口通信的异同。同:都是传输数据的作用。异:串口只用一根数据线,但是可以长距离、稳定的 传输,在远程通信时更是不可或缺。并口则更多是用于短距离大容量传输。3. 8255A端口与外设之间的单向和双向传送是指什么? 3个并口中哪个并口具有 双向传送功能?单向是指一根数据线只能做输入或者只能做输出,而双向是指一根数据线既可以做输入也可以做输出。只有A 口可以双向选通(C方式)。实验三8254定时/计数器应用实验一、实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。二、实验内容1.计数应用实验。编写程序,应用8254的计

48、数功能,用开关模拟计数,使每当按动KKI+五次后,产生一次计数中断,并在屏幕上显示一个字符5。实验说明:编写程序,将8254的计数器0设置为方式0,计数值为5,用微动开关KK1+作 为CLK0时钟,OUT0连接INTR,每当KK1+按动5次后产生中断请求,在屏幕 上显示字符“5”图4-1 8254计数应用实验一参考接线图单次B伸单元+XO 7TTF XUTXD4XDT XUT xJTXDUXAJXA2RDCS OU TOXKJ从 XIUIE 】u 丫 uBE7 6 5 4 3 2 o O D DD D DD D D A ACLKO8254单元实验步骤如下: 实验接线如图4-1所示,按图接线。运

49、行Tdpit集成操作软件,根据实验内容,调用程序代码(T8254-1.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM)运行程序,按动KK1 +产生单次脉冲,观察实验现象。改变计数值,验证8254的计数功能。2. 定时应用实验。编写程序,应用8254的定时功能,产生一个1Hz的方波,利用LED灯作为输出显示,观察LED灯闪烁的频率。实验说明:编写程序,应用8254的定时功能,产生一个1Hz的方波,利用LED灯作为输出显示,观察LED灯闪烁的频率。00+-5V00*5V图4-2 8254定时应用实验参考接线图实验步骤如下:实验接线如图4-2所示。

50、运行Tdpit集成操作软件,根据实验内容,根据实验内容,调用程序代码(T8254-2.ASM),填写程序代码中的空缺处,编译、链接。(程序源码路径:C: TangDuPitPPASM) 运行程序,观察实验现象。 修改定时计数初值,观察LED灯闪烁的频率。三、实验所用仪表及设备1. PC 机一台。2. TD-PIT+实验系统一套。四程序代码1计数应用实验。INTR_IVADD EQU 01C8HINTR_OCW1 EQU0A1H址INTR_OCW2 EQU0A0H址INTR_IM EQU0FBHIOY0 EQU3000HMY8254_COUNT0 EQUMY8254_COUNT1 EQUMY8254_COUNT2 EQUMY8254_MODE EQU IOY0+;INTR 对应的中断矢量地址;INTR 对应 PC 机内部 8259 的 OCW1 地;INTR 对应 PC

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!