微机原理某实验报告材料_第1页
微机原理某实验报告材料_第2页
微机原理某实验报告材料_第3页
微机原理某实验报告材料_第4页
微机原理某实验报告材料_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

西安通大实验报告成绩课程_

微机与接口技术

页系

别__生物医学工程__

实验日期

日专业班级_____组别_____

交报告日期

日姓

名__

学号__报告退发(订正、重做)同组人_

教师审批签字实验一

汇编语程序设一、实验的1掌握Lab6000p实验学统基操作2掌握8088/8086汇语言基本法构;3熟悉8088/8086汇语言序设基方法二、实验备装emu8086软的机三、实验容1有一10字的数其值分是80H03H5AHFFH97H64HBBH7FH0FHD8H。编并显结果如数组无符数求出大值并显;如数组有符数求出大值并显。2将二制数500H转成-十制(BCD),并示“500H的BCD是3将二十进码(BCD)7693转成ASCII码,并示“BCD码的ASCII是4两个度均的内存先内存1全部写88H再将存块1的内移至存块2在移的过中,示移次数,2,3…(进制ASCII码并示程序5键盘入一小写母a~z),换成写字显:请入一小字母a~z):转后的写字是6实现字节符号加法序,显结果如99223344H+99223344HxxxxxxxxH四、实验码及结果、实验代:DATASEGMENTSZDB80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;进组SHOWDB'THEMAXIS:','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA第1页

START:MOVAX,DATA把数据基地赋给MOVDS,AXMOVDX,OFFSETSHOW调用DOS显字符MOVAH,09HINT21HMOVSI,OFFSETSZ数组偏移址赋SIMOVCX,10存进组的度给CXMOVDH,80H将数的第个数进DHNEXT:MOVBL,[SI]将数的第个数进BLCMPDH,BL比较DH和BL中数到校JAENEXT1;如果DH的数于中,跳转NEXT1MOVDH,BL如果DH中数小BL中将BL中的赋DHNEXT1:INCSI偏移址加1LOOPNEXT;循环,CX自减直,中存组的大值;下来程序将将大值DH在屏幕上示输MOVBX,02HNEXT2:MOVCL,4ROLDH,CL将DH循右移位MOVAL,DHANDAL,0FH;将AL高位清,一一位行ASCII码转换CMPAL,09H与09H较大JBENEXT3;若小于跳转,证数值0-9之间ADDAL,07H若于,证明字母因为母与字ASCII码相7,以要加NEXT3:ADDAL,30H因为换为ASCII码要30HMOVDL,ALMOVAH,2中断示INT21HDECBXJNZNEXT2MOVDL,'H'MOVAH,2INT21HCODEENDSENDSTART实结果第

2页

3页

、实验代DATASEGMENTSZDB80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H存进组SHOWDB'THEMAX','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA把数据基地赋给MOVDS,AXMOVDX,OFFSETSHOW调用DOS显字符MOVAH,09HINT21HMOVSI,OFFSETSZ数组偏移址赋SIMOVCX,10存进组的度给CXMOVDH,80H将数的第个数进DHNEXT:MOVBL,[SI]将数的第个数进BLCMPDH,BL比较DH和BL中数到校JGENEXT1如DH中的数于BL中,跳转NEXT1;为无号数有符数的一差,JGE是无号的跳MOVDH,BL如果DH中的小BL中,将BL中的赋给NEXT1:INCSI偏移址加1LOOPNEXT;环,CX减1,一直CX减为0,DH中数的最值;下来程序将最值DH在屏上显输出MOVBX,02HNEXT2:MOVCL,4ROLDH,CL将DH循右移位MOVAL,DHANDAL,0FH将位清,一一位行ASCII码转换CMPAL,09H与09H较大JBENEXT3若小于跳转NEXT3,证数值0-9间ADD若大则明为母因为字母与字的ASCII码相差所要加上7NEXT3:ADDAL,30H因为转为ASCII码加30HMOVDL,ALMOVAH,2中断示INT21HDECBXJNZNEXT2MOVDL,'H'MOVAH,2INT21HCODEENDSENDSTART实结果第

4页

5页

2、实验代码DATASEGMENTBNUMDW0500HDNUMDBDUP()MESDB'THEBCDOF'500H'IS:','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMES将字串偏量写DXMOVAH,09HINT21HMOVAX,BNUM将存AX中LEABX,DNUM取的偏量MOVDL,0;算1000的个COUNT1:SUBAX,03E8H;AX-1000JCNEXT1不够减即若,借,转NEXT1INCDL;DL+1JMPCOUNT1跳转AGAIN1NEXT1:ADDAX,03E8H;AX+1000MOV[BX],DL将DL(即位)存DNUM中INCBX;BX+1MOVDL,0清;算100个数COUNT2:SUBAX,0064H;AX-100JCNEXT2INCDLJMPCOUNT2NEXT2:ADDAX,0064HMOV[BX],DL将即位数存入DNUMINCBXMOVDL,0;算10个数COUNT3:SUBAX,000AH;AX-10JCNEXT3INCDLJMPCOUNT3NEXT3:ADDAX,000AHMOV[BX],DL将十)存DNUM中INCBXMOV[BX],AL计个位MOVCX,4;

接来的序是数转化ASCII并在幕上示LEASI,DNUM取的址偏量第

6页

NEXT4:MOVAL,[SI]将DNUM所存各个值转为ASCII;;屏幕输出示CMPAL,09HJBENEXT5ADDAL,07HNEXT5:ADDAL,30HMOVDL,ALMOVAH,2INT21HINCSIDECCXJNZNEXT4CODEENDSENDSTART实结果第

7页

3、实验代码DATASEGMENTOUPDB'THEASCIIOF7963IS:','$'A1DB07H,09H,06H,03HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETOUPMOVAH,09HINT21HMOVCL,4MOVSI,0NEXT:MOVAL,A1[SI]将A1的第SI个据传ALMOVBL,ALORAL,30H加30转换为ASCII码值SHRAL,4ANDAL,0FH将移后高位零ADDAL,30H因ASCII与之间差30MOVDL,ALMOVAH,2输对应ASCII码INT21HMOVAL,BLANDAL,0FHADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVDL,''MOVAH,02HINT21HINCSILOOPNEXTEXIT:MOVAH,4CHINT21HCODEENDSENDSTART实结果第1页

9页

4、实验代码DATASEGMENTYIDBDUP(88H)ERDBDUP(00H)定义数MESDB'THENUMBERCOUNTERIS:','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXMOVCL,100计数初值MOVCH,00H转移数统,初LEASI,YI将内块1的偏移量给LEADI,ER将内块2的偏移量给NEXT:MOVAL,[SI]MOV[DI],AL将中的据复到ER中INCSIINCDIINCCHMOVDX,OFFSETMES显示符串MOVAH,9INTCALLCOUNT调用程序DECCL计数1JNZNEXT计数为零跳转行HLTMAINENDP主程结束;面是程序实现幕显转移数能COUNTPROCNEAR定义子序性PUSHCX进MOVDH,CHMOVBX,02HNEXT2:MOVCL,4ROLDH,CL将DH循环右四位MOVAL,DHANDAL,0FH将AL高位清CMPAL,09H与比较小JBENEXT3若小,跳至NEXT3ADDAL,07HNEXT3:ADDAL,30H加30HMOVDL,ALMOVAH,2;DOS中显INTDECBXJNZNEXT2MOVDL,'H'显示MOVAH,2INTMOVDL,0AH回车MOVAH,2INT第

10

MOVDL,0DH换行MOVAH,2INTPOPCX出RETCOUNTENDP;程序束CODEENDSENDSTART实结果第

11

5、实验代码DATASEGMENTINPDB'PLEASEINPUT(a~z):','$'设置字串OUPDB'THETRANSFORMATION(A~Z)IS:','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETINP显字符,提输入MOVAH,9INTMOVAH,1;DOS断调,键盘读取个字INTPUSHAX入PUSHDXMOVDL,0DH中断调用,车MOVAH,2INTMOVDL,0AH中断调用,行MOVAH,2INTMOVDX,OFFSETOUP显示字串,出提MOVAH,9INTPOPDX出POPAX出SUBAL,32;AL去32,使写转为小;小写间的ASCII码值相32MOVDL,AL;DOS中显结果MOVAH,2INTMAINENDPCODEENDSENDSTART实结果第

12

13

6、实验代码DATASEGMENTYIDB44H,33H,22H,99H,00HERDB44H,33H,22H,99H,00H装载据必须有面00HSUMDB5DUP()OUPDB'99223344H99223344H=','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETOUP显示符串MOVAH,9INTLEABP,YI在BP中入YI的地偏移LEASI,ER在SI中入ER的地偏移LEADI,SUM在DI中入SUM的地址偏量MOVCX,05计数值CLC进位清零NEXT:MOVAL,[BP]将YI中数赋给MOVAH,[SI]将中的据赋BLADCAL,AH和ER中数据进位相MOV[DI],AL将相的结保存SUM中INCSIINCDIINCBPDECCXJNZNEXT结不为,跳到NEXT;面的序已将相的结存在SUM中,面的序是SUM中的果转为ASCII显示MOVCH,05计数初值NEXT1:MOVDH,[DI-1]将所得果高位给DHMOVBX,02HNEXT2:MOVCL,4ROLDH,CL将DH循环右四位MOVAL,DHANDAL,0FH将AL高位清CMPAL,09H与比较小JBENEXT3若小,跳至NEXT3ADDAL,07HNEXT3:ADDAL,30H加30HMOVDL,ALMOVAH,2;DOS中显INTDECBXJNZNEXT2DECDIDECCHJNZNEXT1循环示SUM中的MOVDL,'H'显示H第

14

MOVAH,2INTMAINENDPCODEENDSENDSTART实结果五、分析总结通实验练了的指令统和本程序计格,实中出的种问通过步步分自行决的程,高了于种语、指的运熟练度第

15

实验二8255编程并接口实一、实验目的1掌握8255片结及工方式2熟悉8255行口展的程。二、实验设备1Lab6000p实教系统2IBM-PC机三、系统中8255块Lab6000p验中的8255模块连如图示:AD0~AD7A0A1RESET/WR/RD已分连至统总DB0DB7AB0AB1RESET/IOW、/IOR;8255_CS、PA口PB口、口引出给户连。四、实验内容和实验步骤1基本入输方式开控制LED显1)实验求开拨上LED亮开拨下LED灭2)电路接8255_CS至地译码CS0,PA口至电平示模,口连开关路。3)程序图第

16

4)程序码modeequ082h;方式0,PC输出,PB输入PortA8000h;PortAPortB8001h;PortBPortC8002h;PortCCAddr8003h;控制地址codesegmentassumecs:codeStart:moval,modemovdx,CAddroutdx,al;输出制字loop1:dx,PortBinal,dxmovdx,PortAoutdx,aljmploop1codeendsendstart5)[1][2][3][4][5][6][7][8]6)[1]

实步骤在Lab6000p实箱上成连电路开计算电源开Lab6000p实箱源;启软件;确与Lab6000p连;输源代;编源代(单运行代码F8观察条指执结果连运行序(Ctrl+F9下拨开关察LED显示况问思考若8255_CS连至址码/,程该如修改答:只要8255四个端A、、、控制口端口依次更改为:0C000H,0C001H,第

17

0C002H,0C003H[2]若PB口连电平显模块PA口连至关电,程该何修。答:只要改8255的式控制字为10010011H;方式0输入PB输出2选通入方――关控LED示1)实验求开上的辑信在通信有效读入处理,送到LED显。2)提示选信号单脉产。3)程序码MODEEQU10101110BPORTA8000HPORTB8001HPORTC8002HCADDR8003HCODESEGMENTASSUMECS:CODESTART:STARTPROCNEARMOVDX,CADDRMOVAL,MODEOUTDX,ALSCAN:MOVDX,PORTBINAL,DXMOVDX,PORTAOUTDX,ALJMPSCANSTARTENDPCODEENDSENDSTART第

18

实验三8253可编程定/计数器实一、实验目的1掌握8253片结及工方式2熟悉8253编程时/计器编程二、实验设备1Lab6000p实教系统2IBM-PC机三、系统中8253块Lab6000p验中的8253模块连如图示:AD0~AD7、A0、、、/RD已分连系统线DB0~DB7AB0AB1、/IOW/IOR三个通的OUT、、CLK以及CS引留给户连。四实验内容和验步1计数验1)实验求5个冲LED0亮。2)电路接3)程序码CONTROL08003h第1页

COUNT0equ08000hCOUNT1equ08001hCOUNT2equ08002hcodesegmentassumecs:codestartprocnearmoval,30h;通道0,式0movdx,CONTROLoutdx,almoval,4;计器初值movdx,COUNT0outdx,al;低八位moval,0outdx,al;高八位jmp$startendpcodeendsendstart4)实验骤[1]在实验上完连接路[2]开启算机源开启Lab6000p实箱电;[3]启动WAVE6000软;[4]确认WAVE6000与Lab6000p连;[5]输入代码[6]编译代码F9[7]连续行程(Ctrl+F9按单脉按键察LED显情况5)问题考[1]若CS连至址译/CS3程序如修改[2]为什定时计数初值4,个脉后LED才亮2定时验1)实验求在LED上现1秒钟/1秒灭。2)提示对准脉信号数若一计数位数够2个计数(个通)级(串3)序代CONTROL08003hCOUNT0equ08000hCOUNT1equ08001hCOUNT2equ08002hcodesegmentassumecs:codestartprocnearmoval,35h;通道0,式0movdx,CONTROLoutdx,almoval,5000h;计数初值。movdx,COUNT0outdx,al;低八位moval,0第

20

outdx,al;高八位moval,77h;通道1,式1movdx,CONTROLoutdx,almoval,800h;计数初始。movdx,COUNT0outdx,al;低八位moval,0outdx,al;高八位jmp$startendpcodeendsendstart第

21

实验四8259部中断验一、实验目的1掌握8259片结及工方式2熟悉8259初始和操编程二、实验设备1Lab6000p实教系统2IBM-PC机三、系统中8259块Lab6000p验中的8259模块连如图示:AD0~AD7A0/WR/RD已分别连系统线DB0~AB0/IOW/IOR引CS、IR0(即INT0INTA留用户接四、实验内容和实验步骤1.综合验1)实验求用8259和实现冲个计数脉冲数以进形式LED上示2)电路接第1页

3)程序图4)程序码modeequ82hPA8255equ8000hCTL82558003hICW1equ00010011b;单片8259,上升沿,要写ICW4ICW2equ00100000b;中号20HICW4equ00000001b;工作在8086/88方OCW1equ11111110b;只响应INT0中断CS8259A0D000h;地CS8259B0D001hdatasegmentCNTdb0dataendscodesegmentassumecs:code,ds:dataIEnterprocnearpushaxpushdxmovdx,PA8255incCNTmoval,CNToutdx,al;输出计值第

23

movdx,CS8259Amoval,20h;中断服程序束指outdx,alpopdxpopaxiretIEnterendpIInitprocmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OCW1outdx,alretIInitendpstartprocnearmovdx,CTL8255moval,modeoutdx,alclimovax,0movds,axmovbx,4*ICW2;

中号movax,codeshlax,4;x16addax,offsetIEntermov[bx],movax,0incbxincbxmov[bx],;callIInitmovax,datamovds,axmovCNT,0;moval,CNTmovdx,PA8255outdx,alstiLP:;nopjmpLPstartendpendstart

中入口址(地为0代段地为0计值初为0等中断并计。第

24

实验五

综合设实验一、实验目的1掌握构化编言程设计2掌握82538259的初始和操编;3熟悉LED数管动态动。二、实验设备1Lab6000p实教系统2IBM-PC机三、实验内容1实验求以4MHz为钟准,计一电子,LED数管示时,格如下XXXXXX由左向右别为时、、。2提示8253工于定方式即对或分配的基时钟冲进计定时每100us中断次在中断服务程中,中断数进计100us计数10000次就1秒然后对秒计得到和小值并送显示冲区示。3程序代码CONTROL0c003hCOUNT0equ0c000hCOUNT1equ0c001hCOUNT2equ0c002hmd8255equ;8255工方式PA8255equ8000h;8255PA输出址CTL82558003h8255控口地OUTBITequ08002h;位制口OUTSEGequ08004h;段制口ICW1equ00010011b;ICW2equ00100000b;ICW4equ00000001b;OCW1equ11111110b;

单8259,上沿中,要写ICW4中号为20H工在方式只应INT0中CS8259A0d000h;地址CS8259B0d001hdatasegmentCNTdb0LEDBufdb6dup(?);Numdb1dup(?);DelayTdb1dup(?)Hourdb0Minutedb0Seconddb0LEDMAP:;

显缓冲显的数八管显码db3fh,06h,5bh,4fh,66h,7dh,07hdb7fh,6fh,77h,7ch,39h,79h,71h第1页

dataendscodesegmentassumecs:code,ds:dataDelayprocnearpushax;延子程pushcxmoval,0movcx,axloop$popcxpopaxretDelayendpDisplayLEDprocnearmovbx,offsetLEDBufmovcl,6;共6个八管movah,00100000b;从边开显示DLoop:movdx,OUTBITmoval,0outdx,al关有八管moval,[bx]movdx,OUTSEGoutdx,almovdx,OUTBITmoval,ahoutdx,al;显示位八管pushaxmovah,1callDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所八段retDisplayLEDendpIEnterprocnearpushaxpushdx第

26

incSecondmoval,Secondcmpal,60jneExitmovSecond,0incMinutemoval,Minutecmpal,60jneExitmovMinute,0incHourmoval,Hourcmpal,24jneExitmovHour,0Exit:movdx,CS8259Amoval,20h;中服程序束指outdx,alpopdxpopaxiretIEnterendpIInitprocmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OC

温馨提示

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

评论

0/150

提交评论