(完整版)北航微机原理实验报告_第1页
(完整版)北航微机原理实验报告_第2页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、3匕京献1咳彳尢夭大爭BEIHANGUNEVERSJ7Y微计算机原理及运用实验报告微计算机原理及运用实验报告目录目录实验一:I/O 地址译码实验 4一、实验目的 4二、实验原理和内容 4三、实验程序 4四实验总结 5实验二:8255 并行接口实验 6一、实验目的 6二、实验原理和内容 6三、程序框图 7四实验程序 7五实验总结 8实验三:键盘显示控制实验 9一、实验目的 9二、实验内容及原理 9三、流程图 10四程序 10五实验总结 13实验四:8254 定时器计数器实验 14一、实验目的 14二、实验原理和内容 14三、实验程序 14四实验总结 15实验五:继电器控制实验 16一、实验目的

2、16二、实验原理和内容 16三、实验中使用的程序 16四实验总结 18实验六:DMA 传送 18一、实验目的 18二、实验原理和内容 18三、程序 19四实验总结 20实验七:8259 中断控制实验 20一、实验目的 20二、实验原理和内容 21三、流程图 21四程序 21五实验总结 25实验八:8255 中断实验 25一、实验目的 25二、实验原理和内容 25三实验程序 26四实验总结 27*I/O 地址译码实验一:I/O 地址译码实验一、实验目的掌握 I/O 地址译码电路的工作原理。二、实验原理和内容实验电路如附图 1 所示,其中 74LS74 为 D 触发器,可直接使用实验台上数字电路实

3、验区的D 触发器,74LS138 为地址译码器。译码输出端 YOY7 在实验台上“I/O 地址“输出端引出,每个输出端包含 8 个地址,YO:280H287H,Y1:288H28FH,当 CPU 执行 I/O 指令且地址在 28OH2BFH 范围内,译码器选中,必有一根译码线输出负脉冲。附图 1I/O 地址译码电路利用这个负脉冲控制 L7 闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。接线:Y4/IO 地址接 CLK/D 触发器Y5/IO 地址接 CD/D 触发器D/D 触发器接 SD/D 角发器接+5VQ/D 触发器接逻辑笔三、实验程序outport1equ2a0houtport2

4、equ2a8hcodesegmentassumecs:codestart:movdx,outport1outdx,alcalldelay;调延时子程序movdx,outport2outdx,alcalldelay;调延时子程序movah,1int16hjestartmovah,4chint21hdelayprocnear;延时子程序movbx,200lll:movcx,0ll:looplldecbxjnelllretdelayendpcodeendsendstart四实验总结这次实验让我对 I/O 地址译码电路有了直观的认识, 也对地址译码器 74LS138、 74LS74D触发器也有了更深一

5、步地了解,也对汇编程序的设计和编写更加熟悉。实验二:8255 并行接口实验一、实验目的通过实验,掌握 8255 工作于方式 0 以及设置 A 口为输出口,C 口为输入口的方法。实验原理和内容1.8255 模块简介:8255 是 Intel 公司生产的与 lntel8080/8085 系列的 MPU 配套的可编程外围接口电路,简称PPI。它有 A、B、C 三个八位端口寄存器,通过 24 位端口线与外部设备相连,基中 C 口可分为上半部和下半部。这 24 根端口线全部为双向三态。三个端口可分二组来使用,可分别工作于三种不同的工作方式。2.8255 方式选择控制字分析,如下图所示:i&h?广

6、PC;E 惟人漏LHJ1输人於岀B酚酬康揮4瑚式01方式I3.实验电路,8255C 口接逻辑电平开关 K0K7,A 口接 LED 显示电路 L0L7。编程从 8255C口输入数据,再从 A 口输出。Qiy巧5D:环01345671E甘101000110111阻rtAHGI-辎人0也8255 端口 C 置 1/置 0 控制字分析(A1、A0=11),下图所示:实验连线附图 28255 并行接口电路接线:PC7PC0/8255 接 K7K0/逻辑电平开关PA7PA0/8255 接 L7L0/LED 显示CS/8255 接 Y1/IO 地址三、程序框图四实验程序;*;;*8255 方式 0 的 C

7、口输入,A 口输出*;*;io8255aequ288hio8255bequ28bhio8255cequ28ahI昨T从口输人盼將吐旅尊自A口軸出tyWS25aCri 辅入*口肺?出codesegment五实验总结通过这次试验我了解了 8255 工作于方式 0 以及设置 A 口为输出口,C 口为输入口的方法,也对 8255 控制字的设置和初始化程序编写、各端口功能控制方面的能力有所提高。assumecs:codestart:movdx,io8255bmoval,8bhoutdx,alinout:movdx,io8255cinal,dxmovdx,io8255aoutdx,almovdl,0ffh

8、movah,06hint21hjzinoutmovah,4chint21hcodeendsendstart;设 8255 为 C 口输入,A口输出;从 C 口输入一数据;从 A 口输出刚才自 C口;所输入的数据;判断是否有按键;若无,则继续自 C 口输入,A 口输出;否则返回实验三:键盘显示控制实验一、实验目的掌握8255 控制键盘及显示电路的基本功能及编程方法掌握一般键盘和显示电路的工作原理。二、实验内容及原理1.实验线路图按原理图接线,! !V V- -a.-a.-i+!;當u u肌益蛊AEAE7=2砂亠S至a8255 端口 A 地址为: 288H 端口 C 地址为: 28AH 控制口地址

9、为:28BH接线:PC7PC0/8255 接行 3列 0/4X4 键盘PA7PA0/8255 接 dpa/LED 数码管CS/8255 接 Y1/IO 地址+5V 接 S0/LED 数码管GND 接 S3S1/LED 数码管2.实验内容使得在小键盘上每按一个健,4 位数码管上显示出相应字符四程序;*;*8255 薄膜按键实验*;*;a8255equ288Hc8255equ28aHk8255equ28bHdatasegmenttable1dw0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0hdw07D0h,0BD0h,0DD0h,0ED0h,07E0h

10、,0BE0h,0DE0h,0EE0h;键盘扫描码表LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CHDB39h,5EH,79h,71h,0ffh;LED 段码表,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,fchardb0123456789ABCDEF;字符表mesdb0ah,0dh,PLAYANYKEYINTHESMALLKEYBOARD!,0ah,0dhdbITWILLBEONTHESCREEN!ENDWITHE,0ah,0dh,$key_indb0hdataendsstackssegmentstackdb100dup(

11、?)stacksends三、流程图;8255A 口;8255C 口;8255 控制口;堆栈空间RJI茗fl!tit低匕codesegmentassumecs:code,ds:data,ss:stacks,es:datastart:climovax,datamovds,axmoves,axmovax,stacksmovss,axmovdx,offsetmesmovah,09int21hMOVDX,k8255moval,81houtdx,almain_key:callkeycalldisplycmpbyteptrkey_in,Ejnzmain_keymovax,4c00hint21hkeyproc

12、nearkey_loop:movah,1int16hjnzexit;显示提示信息;初始化 8255 控制字;getacharin(key_in)anddisplayit;调显示子程序,显示得到的字符;if(dl)=EreturntoEXIT!;退出;pc 键盘有键按下则退出movdx,c8255moval,0fhoutdx,alinal,dxandal,0fhcmpal,0fhjzkey_loopcalldelaymovah,alMOVDX,k8255moval,88houtdx,almovdx,c8255moval,ahoral,0f0houtdx,al;读行扫描值;未发现有键按下则转;de

13、layforamomentinal,dx;读列扫描值andal,0f0hcmpal,0f0hjzkey_loop;未发现有键按下则转movsi,offsettable1movdi,offsetcharmovcx,16key_tonext:cmpax,sijzkey_findkeydeccxjzkey_loopaddsi,2incdijmpkey_tonextkey_findkey:movdl,dimovah,02int21hmovbyteptrkey_in,dlkey_waitup:MOVDX,k8255moval,81houtdx,almovdx,c8255moval,0fhoutdx,al

14、inal,dxandal,0fhcmpal,0fhjnzkey_waitupcalldelayretexit:movbyteptrkey_in,Eretkeyendpdelayprocnearpushaxmovah,0int1ahmovbx,dxdelay1:movah,0int1ahcmpbx,dxjzdelay1movbx,dxdelay2:movah,0int1ahcmpbx,dxjzdelay2popaxretdelayendpDISPLYPROCNEARPUSHaxMOVBX,OFFSETLEDMOVAL,byteptrkey_inSUBal,30hCMPal,09hJNGDIS2;

15、键盘扫描码表首址;字符表首址;待查表的表大小;cmp(col,row)witheveryword;inthetable;未找到对应扫描码;显示查找到的键盘码;读行扫描值;按键未抬起转;delayforamoment;delay50ms-100msSUBal,07hDIS2:XLATMOVDX,a8255OUTDX,AL;输出显示数据,段码POPAXRETDISPLYENDPcodeendsendstart五实验总结通过这次实验了解了8255控制键盘及显示电路的基本功能及编程方法和一般键盘和显示电路的工作原理。并且对复杂的汇编程序编写分模块用 call 指令调用的方法更加熟悉。实验四:8254

16、定时器计数器实验一、实验目的掌握 8254 的基本工作原理和编程方法,用示波器观察不同方式下的波形二、实验原理和内容按图 4-8-1 虚线连接电路,将计数器 0 设置为方式 0,计数器初值为N(NWOFH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 变高电平)。接线:CS/8254 接 Y0/IO 地址GATE0/8254 接+5VCLK0/8254 接单脉冲三、实验程序;*;*8254 方式 0 计数器实验*;*;io8253aequ283hio8253bequ280hcodesegmentassumecs:c

17、odestart:moval,14h;设置 8254 通道 0 为工作方式 2,二进制计数movdx,io8253aoutdx,almovdx,io8253b;送计数初值为 0FHmoval,0fhoutdx,allll:inal,dxcalldisppushdxmovah,06hmovdl,0ffhint21hpopdxjzlllmovah,4chint21hdispprocnearpushdxandal,0fhmovdl,alcmpdl,9jlenumadddl,7num:adddl,30hmovah,02hint21hmovdl,0dhint21hmovdl,0ahint21hpopdx

18、retdispendpcodeendsendstart四实验总结通过这次实验对8254 的基本工作原理和编程方法有了更加实际的认识, 而用示波器观察波形也让我重新复习了示波器的使用。;读计数初值;调显示子程序;退出;显示子程序;首先取低四位;判断是否=9;若是则为O-9,ASCII 码加30H;否则为A-F,ASCII 码加37H;显示;加回车符;加换行符;子程序返回实验五:继电器控制实验一、实验目的1、了解微机控制直流继电器的一般方法。2、进一步熟悉使用 8255、8254。二、实验原理和内容实验电路如附图 6,按虚线连接电路:CLKO 接 1MHZ,GATEO,GATE1,接+5V,OUT

19、O接CLK1,0UT1接PAO,PCO接继电器驱动电路的开关输入端Ik。继电器常开触点串联一个发光二极管,编程使用 8254 定时,让继电器周而复始的闭合 5 秒钟(指示灯灯亮),断开 5 秒钟(指示灯灯灭)。附图 6 继电器控制实验电路图接线:CS/8254 接 YO/IO 地址GATEO/8254 接+5VCLKO/8254 接 1M 时钟OUTO/8254 接 CLK1/8254GATE1/8254 接+5VOUT1/8254 接 PC7/8255PCO/8255 接继电器CS/8255 接 Y1/IO 地址三、实验中使用的程序io8255aequ28Ohio8255bequ281hio

20、8255cequ283hio8255dequ288hio8255eequ28bhcodesegmentassumecs:code;设 8255 为 A 口输入,C 口输出;将 PC0 置位涎时 5s;将PC0 复位;延时 5s;转 lll;延时子程序;设 8253 计数器为方式 3;写入计数器初值 10000;设计数器 1 为工作方式 0;写入计数器初值 500;是否有键按下;若有则转 exit;查询 8255 的 PAO 是否为高电平;若不是则继续;定时时间到,子程序返回start:movdx,io8255emoval,90hlll:outdx,almoval,01outdx,alcalld

21、elaymoval,0outdx,alcalldelayjmpllldelayprocnearpushdxmovdx,io8255cmoval,36houtdx,almovdx,io8255amovax,10000outdx,almoval,ahoutdx,almovdx,io8255cmoval,70houtdx,almovdx,io8255bmovax,500outdx,almoval,ahoutdx,alll2:movah,06movdl,0ffhint21hjneexitmovdx,io8255dinal,dxandal,01jzll2popdxretexit:movah,4chint

22、21hdelayendpcodeendsendstart四实验总结通过这次试验了解微机控制直流继电器的一般方法, 对 8255、 8254 的使用进一步熟悉。通过将 8254 计数器 0 设置为方式 3、 计数器 1 设置为方式 0 并联使用,CLKO 接 1MHZ 时钟,设置两个计数器的初值(乘积为 5000000)启动计数器工作后,经过 5 秒钟 OUT1 输出高电平。通过 8255A 口查询 OUT1 的输出电平,用 C 口 PC0 输出开关量控制继电器动作。实现了程序控制。实验六:DMA 传送一、实验目的1、 掌握 PC 机工作环境下进行 DMA 方式数据传送 (BlockMODE 和

23、 DemandMode) (块传送、外部请求传送)方法。2、掌握 DMA 的编程方法。二、实验原理和内容用通用插座按图 4-11-2 连接好电路(74LS74 利用实验台上的 D 触发器)。编程将主机内存缓冲区 D4000H,偏移量为 0 的 10 个数据,使用 DemandModeDMA 方式从内存向外设传送。接线:按各实验图接线,图中虚线为实验所需接线图中为实验台中单脉冲。74LS74 为实验台上 D 触发器三、程序codesegmentassumecs:codestart:movax,0D000hmoves,axmovbx,4000hmovcx,0ffh;100hmovdl,40hrep

24、1:incdlmoves:bx,dlincbxcmpdl,5ahjnzss1movdl,40hss1:looprep1movdx,18hmoval,04houtdx,almovdx,1dhmoval,00houtdx,almovdx,12hmoval,00houtdx,almovdx,12hmoval,60h;outdx,almovdx,13hmoval,0ffh;outdx,almovdx,13hmoval,0;1houtdx,almovdx,10hmoval,00houtdx,almovdx,10hmoval,40houtdx,almovdx,1bh;通道1 写传输,地址增moval,85

25、houtdx,almovdx,1bh;通道0 读传输,地址增moval,88houtdx,al;关闭 8237;复位;写目的地址低位;写目的地址高位;传送字节数低位;传送字节数高位;源地址低位;源地址高位1234G470Lmovdx,18h;DREQ 低电平有效,存储器到存储器,开启 8237moval,41houtdx,almovdx,19h;通道 1 请求moval,04houtdx,almovcx,0F000hdelay:loopdelaymovax,0D000h;-moves,axmovbx,06000hmovcx,0ffh;rep2:movdl,es:bxmovah,02hint21

26、hincbxlooprep2movax,4c00hint21hcodeendsendstart四实验总结通过这次 DMA 方式传送数据这次方式有了更加深刻的认识,DMA 的传输速度比一般的传输方式要快很多,这也体现了 DMA 方式的便捷性。对 DMA 的初始化,牢记各个控制字的寻址,访问各端口的地址寄存器和字节计数器时要注意先传地位,再传高位。实验七:8259 中断控制实验一、实验目的1、掌握中断控制器 8259 管理2、掌握扩展中断二、实验原理和内容3、接线:Y6/IO 地址接 CS/8259+5V 接 INTA/8259单脉冲接 IR0/IR1/IR7/8259三、流程图四程序;8259

27、的 ICW1 端口地址;8259 的 ICW1 端口地址;8259 的 ICW2 端口地址;8259 的 ICW3 端口地址1、采用查询方式2、如图 4-14-1 接线,按单脉冲请求一次中断,屏幕上显示相应的中断请求号I8259_1EQU2B0HI8259_2EQU2B1HI8259_3EQU2B1HI8259_4EQU2B1HT走Hiin.诃中IK横斗平満簣中尊右.- HI耳阴PK1中!硼齡!中希I中MI?n帼廿JSEAQUERY:MOVAH,1;判断是否有按键按下08259_1EQU2B1H08259_2EQU2B0H08259_3EQU2B0HDatasegment;8259 的 OCW

28、1 端口地址;8259 的 OCW2 端口地址;8259 的 OCW3 端口地址Mes1dbyoucanplayakeyonthekeyboard!,0dh,0ah,24hMes2ddmes1Mess1dbHello!Thisisinterrupt*0*!,0dh,oah,$Mess2dbHello!ThisisinterruptMess3dbHello!Thisisinterrupt*1*!,0dh,oah,$*2*!,0dh,oah,$Mess4dbHello!ThisisinterruptMess5dbHello!Thisisinterrupt*3*!,0dh,oah,$*4*!,0dh

29、,oah,$Mess6dbHello!ThisisinterruptMess7dbHello!Thisisinterrupt*5*!,0dh,oah,$*6*!,0dh,oah,$Mess8dbHello!Thisisinterrupt*7*!,0dh,oah,$DataendsStackssegmentDb100dup(?)StacksendsSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:stacks,ES:DATASTART:movax,dataMovds,axMoves,axMovax

30、,stacksMovss,axMOVDX,I8259_1MOVAL,13HOUTDX,ALMOVDX,I8259_2MOVAL,0B0HOUTDX,ALMOVAL,00HOUTDX,ALMOVAL,03HOUTDX,ALMOVDX,08259_1MOVAL,00HOUTDX,AL;初始化 8259 的 ICW1;边沿触发、 单片 8259、需要 ICW4;初始化 8259 的 ICW4;非自动结束 EOI;初始化 8259 的 OCW1;打开 IRO 和 IR1 的屏蔽位QUERY:MOVAH,1;判断是否有按键按下;有按键则退出;向 8259 的OCW3 发送查询命令;读出查询字;判断中断是

31、否已响应;没有响应则继续查询;若为 IR0 请求,跳到 IR0 处理程序;若为 IR1 请求, 跳到 IR1 处理程序CMPAL,03HJEIR3ISRCMPAL,04HJEIR4ISRCMPAL,05HJEIR5ISRCMPAL,06HJEIR6ISRCMPAL,07HJEIR7ISRJMPQUERYIR0ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess1;显示提示信息MOVAH,09MOVAHINT21HJMPEOIIR1ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess2;显示提示信息MOVAH,09MOVAHINT21HJMPEOI

32、INT16HJNZQUITMOVDX,08259_3MOVAL,0CHOUTDX,ALINAL,DXMOVAH,ALANDAL,80HTESTAL,80HJZQUERYMOVAL,AHANDAL,07HCMPAL,00HJEIR0ISRCMPAL,01HJEIR1ISRCMPAL,02HJEIR2ISRIR2ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess3MOVAH,09MOVAHINT21HJMPEOIIR3ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess4MOVAH,09MOVAHINT21HJMPEOIIR4ISR:MOVAX,D

33、ATAMOVDS,AXMOVDX,offsetmess5MOVAH,09MOVAHINT21HJMPEOIIR5ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess6MOVAH,09MOVAHINT21HJMPEOIIR6ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess7MOVAH,09MOVAHINT21HJMPEOIIR7ISR:MOVAX,DATAMOVDS,AXMOVDX,offsetmess8MOVAH,09MOVAHINT21HEOI:MOVDX,08259_2MOVAL,20HOUTDX,AL;显示提示信息;显示提示信息;显示提示信息;显示提示信息;显示提示信息;显示提示信

温馨提示

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

评论

0/150

提交评论