北京邮电大学微机原理与接口技术硬件实验报告_第1页
北京邮电大学微机原理与接口技术硬件实验报告_第2页
北京邮电大学微机原理与接口技术硬件实验报告_第3页
北京邮电大学微机原理与接口技术硬件实验报告_第4页
北京邮电大学微机原理与接口技术硬件实验报告_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、信息与通信工程学院微机原理与接口技术硬件实验报告班级:学号:序号:日期:2015-10-302015-12-26-55555566777778891111112377777889122 1 1 1 111 1 1 1 1 1 111 1 1 2 2 2二三四五六七目录实验一 i/o地址译码3一、实验目的3二、实验原理及内容3三、硬件接线图与软件程序流程图3源辦4五、实验结果六、实验总结七、实验收获与心得体会实验二简单并行接口一、实验目的二、实验原理及内容三、硬件接线图与软件程序流程图四、源程序五、实验结果六、实验总结七、实验收获与心得体会实验四七段数码管一、实验目的二、实验原理及内容三、硬件接

2、线图与软件程序流程图四、源程序五、实验结果六、实验总结七、实验收获与心得体会实验八可编程定时器/计数器(8253/8254)一、实验目的二、实验原理及内容三、硬件接线图与软件程序流程图四、源程序五、实验结果六、实验总结与思考题七、实验收获与心得体会实验十六串行通讯8251' 实验i的、实验原理及内容、硬件接线图与软件程序流程图> 、实验结果、实验总结与思考题、实验收获与心得体会实验一 i/o地址译码一、实验目的掌握i/o地址译码电路的工作原理。二、实验原理及内容1、实验电路如图1-1所示,其中74ls74为d触发器,可直接使用实验台上数字电路实验区的d 触发器,74ls138为地

3、址译码器。译码输出端yoy7在实验台上“i/o地址“输出端引出,每个输 出端包含8个地址,yo: 280h-287h, yl: 288h28fh,当cpu执行i/o指令且地址在280h 2bf1i范围内,译码器选中,必有一根译码线输出负脉冲。例如:执行下面两条指令mov dx,2a0iiout dx, al (或in al,dx)y4输出一个负脉冲,执行下面两条指令mov dx, 2a8hout dx, al (或in al, dx)y5输出一个负脉冲。利用这个负脉冲控制l7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。2、接线:y4/i0地址接clk/d触发器 y5/i0地址接cd

4、/d触发器 d/d触发器接sd/d角发器接+5v q/d触发器接l7 (led灯)或逻辑笔三、硬件接线图与软件程序流程图硬件连接图如下:1-245程序流程图如下:(开始)选中2a0h延时迭中2a8h这时四、源程序code segmentassume cs:code;定义代码段start:mov dx,2a0h out dx,al:选通y4call delay;延时mov dx,2a8h out dx,al;选通y5call delay;延时movah,1hint 16h:01号功能调用,从键盘接收按键jz start;无键按下,返回startm0vah,4chint21h;有键按下,返回dos

5、系统delay proc near;延时子程序,循环系数为100mov bx;100l00p1: mov cx,0loop2: loop loop2 dec bx jnzloof1 retdelay endpcode endsend start五、实验结果按下键盘时l7闪烁发光,交替亮灭。六、实验总结实验一开始时不理解怎样选通y4和y5的地址,对整个接口电路分析后才明白了译码电路真 正的原理。七、实验收获与心得体会本次实验主要了解了端口的输出,d触发器作为一个外部端口实现了向d触发器内写值并正 确输出,控制灯泡亮灭,实现了译码功能。对i/o接口有了更深的理解,对以后的实验很有帮 助。这次实验是

6、第一次用汇编语言來让硬件实现功能,和之前学过的c+有很大的区别,也让我 进一步看到了他们的不同之处。实验二简单并行接口实验目的掌握简单并行接口的工作原理及使用方法实验原理及内容1、按下面图4-2-1简单并行输出接口电路图连接线路(7札s273插通用插座,74ls32用实验台上 的“或门”)。74ls273为八d触发器,8个d输入端分别接数据总线dod7, 8个q输出端接led显 示电路l0l7。2、编程从键盘输入一个字符或数字,将其ascii码通过这个输出接口输出,根据8个发光二极管 发光情况验证正确性。3、按下面图4-2-2简单并行输入接口电路图连接电路(7札s244插通用插座,74ls32

7、用实验台上 的“或门”)。74ls244为八缓冲器,8个数据输入端分别接逻辑电平开关输出k0k7, 8个数据 输出端分别接数据总线dod7。4、用逻辑电平开关预置某个字母的ascii码,编程输入这个ascii码,并将其对应字母在屏幕上 显示出来。5、接线:1)输出按图4-2-1接线(图中虚线为实验所需接线,74ls32为实验台逻辑或门)2)输入按图4-2-2接线(图中虚线为实验所需接线,74ls32为实验台逻辑或门)三、硬件接线图与软件程序流程图74ls244硬件连接图如下:74ls273do*dl»d2*d3*d4»05參d6*07.12345678 qqqqqqqq o

8、zo 33 a k r 12345678l l ddddddddc c012345679 12 3 4 5/> 7 kkkk kkkk123 4 a a a a 2222123433a1 a.x 3 < a a a a0123 456? dddd dddd1234 vvvv 222274ls.t74ls320n912 12a8h4 i而2a0h* * 4 for图 4-2-1程序流程图如下:图 4-2-2结丄束)四、源程序;定义代码段code segment assume cs:codestart:mov ah, 1int 21h;从键盘检测输入cmp al, 0001101ibj

9、z exitmov dx, 2a8h ;送出 ascii 码 out dx, almov dx, 2a0h ;读入 ascii 码 in al, dx mov dl,almov ah, 02h;屏幕显示ascii码int 21hjmp start ;循环检测exit:mov ax, 4c00ii;返回 dosint 21hcode ends end start五、实验结果从键盘输入字符或数字,若不是esc键,则二极管显示其ascii码情况,若按下esc,则返 回dos,且各led灯灭。六、实验总结实验一开始不太明白如何把输入的字符通过二极管显示出来,后来参考了实验一的译码输 出,理解了实验原理

10、。七、实验收获与心得体会这次实验是对i/o接口译码电路的运用,进一步熟悉了译码电路、键盘输入检测等功能的 运用,让我很好的明白了 cpu的地址总线与外部接口是如何工作,也进一步了解了硬件实验, 希望在以后的实验中科更多的收获。实验四七段数码管、实验目的掌握数码管显示数字的原理实验原理及内容1、静态显示:按4-4-1连接好电路,将8255的a口paopa7分别与七段数码管的段码驱动输入端 adp相连,位码驱动输入端so、si、s2、s3接pco、pci、pc2、pc3,编程在数码管显示自己 的学号的后四位。(或编程在数码管上循环显示00-99,位码驱动输入端so、s1接pco、pc1; s2、s

11、3接地。)2、接线:pa7pa0/8255接dpa/led数码管pc3pc0/8255 接 s3s0/led数码管cs/8255 接 y1/i0地址三、硬件接线图与软件程序流程图硬件连接图如下:-e288h-28fhy1程序流程图如下:丹始四、源程序data segment ;定义代码段data endscode segmentassume cs:code,ds:datastart: mov dx,28bh ;控制 口地址movau80h ;控制字10000000设定工作方式0,所有口都置为输出 out dx,all0p1: movdx,288h; a 地址moval?3fh ;段选写 0 o

12、ut dx,almov dx,28ah ;位选第4个led, c 口地址moval,08hout dx,almov dx,28ah ;熄灭数码管movauoout dx,almovdx,288h ;段选写 3m0val,4fhout dx,almov dx,28ah ;位选第 3 个 led movau04hout dx、almov dx,28ah moval,0out dx,almov dx.288h moval,3fh out dx,almov dx,28ah moval,02h out dx,almov dx.28ah moval,0out dx、almov dx,288h moval,

13、3fh out dx,almov dx,28ah movauoih out dx,almov dx,28ah moval,0 out dx,al;熄灭数码管;段选写0;位选第2个led:熄灭数码管;段选写0:位选第1个led;熄灭数码管mov ah,01h int16hjnz exit ;有键输入则退出 jmplop1exit: movax4cooh ;返回 dos int21hcode endsend start五、实验结果结果显示了学号的后四位0300,如下如所示:当有键盘输入时,返回dos系统。六、实验总结本次实验用了82,55并行接口芯片,采用方式0,所有口都用输出模式,a口为段选,控

14、制输 出的数据,c口为位选,控制不同的位不断扫描、交替亮灭。七、实验收获与心得体会这次实验在前两次实验的基础上,用到了并行接口芯片和数码管,在数码管上显示数据,在 8255工作在方式0时,用两个输出端u,控制数码管工作,数码管在之前数电实验的基础上比较 好理解,这次实验较之前的实验更有难度,不过学到了很多知识,由于理论还没有讲到8255, 实验有一定难度,不过对理论课也有一定的帮助。实验八可编程定时器/计数器(8253/8254)一、实验目的学习掌握8253用作定时器的编程原理;二、实验原理及内容1. 8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是: 向控制寄存器端口写入控

15、制字对使用的计数器规定其使用方式等。 向使用的计数器端口写入计数初值。2. 8253控制字d7 d6d554d3 d3 dido计数器选择读写方式选择工作方式选择数制选择d7d6 = 00:使用0号计数器,d7d6 = 01:使用1号计数器 d7d6=10:使用2号计数器,1)71)6 = 11:无效d5d4 = 00:锁存当前计数值d5d4 = 01:只写低8位(髙8位为0),读出时只读低8位 d5d4=10:只写高8位(低8位为0),读出时只读高8位 d5d4=11:先读/写低8位,后读/写高8位计数值 d3d2dl = 000:选择方式0, d3d2dl=001:选择方式 1 d3d2d

16、1=x1o:选择方式2, d3d2d1=x11:选择方式3 d3d2dl = 100:选择方式4,d3d2d1 = 1o1:选择方式5 d0二0:计数初值为二进制,d0 = l:计数初值为bcd码数3.实验内容完成一个音乐发生器,通过喇叭或蜂鸣器放出音乐,并在数码管上显示乐谱。利用小键盘 实现弹琴功能,并显示弹奏的乐谱。a符频麥对照音符1 (do)2 (re)3 (mi4 (fa)5 (so)6 (la)7 (si)i (do)频率 (hz)256288320341384426 .6480512三、硬件接线图与软件程序流程接线图如下:cs /8253 接 y0 /i0 地址gateo /825

17、3 接 +5vclko /8253 接 1m时钟outo /8253接喇叭或蜂鸣器1m时钟5v-喇叭或蜂呜器丁程序流程图如下:四、源程序data segmentfenpin dw 0001h, 3906, 3472, 3125, 2932, 2604, 2344, 2083, 1953;分频比digital db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh;数码管music db5, 3, 5, 3, 5, 3, 1, 1, 2, 4, 3, 2, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 1, 1, 2, 4, 3, 2, 1,

18、1, 1, 1, 2, 2, 4, 4, 3, 1, 5, 5存放播放的乐曲音符numdatadb 0011, 07011,oboii, odoii, oeoii ;检测键盘输入 endsstacksegment stack stackdb 100 dup (?)stackendscodesegmentassume cs:code, ds:data, ss:stack:延时子程序 delay proc near push cxwait0:movlooppopretcx, 100hwaitocxdelayendp:延时子程序2delay1procnearpushcxmovcx, offffhwa

19、it1:loopwait1popcxretdelay1endp:获取键盘输入值的子程序keyproc nearpush ax;push expush dxmovcx, 0111check:movdx,28ah ;保护现场mov bx,offset addbx, cxmoval, bxoutdx, al;防抖inal, dx ;movah, alc 口地址给dx num判断是否有键盘按下inal, dxcmpal, ahjnzcheck:判断按下的列andal, ofhcmpal, oeiijznextcmpal, oeiijznext1cmpal, odiijznext2cmpal, obi

20、ijznext3movbx, 0111jmpgotnext:inccxcmpcx, 05hjnzjump1movcx, 01hjump1:jmpcheck不相等说明为抖动,重新检测修改变量扫描下一行call delaynext1:movbx,04hjmpgotnext2:movbx, 03hjmpgotnext3:movbx, 02h參计算按下键盘的数值got:subcx, 01hmoval, clmovdl, 04hmuldladdbl, alsubbl,o1h :此时bx中所存即为对应的偏移量popdx;恢复现场popexpopaxretkeyendp;主程序start:movax, da

21、tamovds, ax:8253初始化movdx,283hmoval, 3611控制字为00110110,选计数器0,先读低字节再读高字节outdx, al:8255初始化movdx, 28bhmoval,81ii ;c口输入(10000001)outdx, almovdx, 289h :bu位选数码管moval, 01houtdx, al;扫描键盘loop1:callkeycmpbx,0 ;按0播放音乐jzplayocmpbx,9 ;按9退出jzexit:按18发出对应音movcx, bxmovbx, offsetdigital ;数码管显示音符addbx, cxmoval, bxmovdx

22、, 288h ;a 口输出outdx, al;播放该音符movbx, offsetfenpinmovax, cxaddax, axaddbx, ax选用工作方式3:计数,先低八位后高八位movax, bxmovdx, 280houtdx, almoval, ahoutdx, alcalldelay1calldelay1mov dx,28ah ; c 口输入 in al, dx;检测键盘是否弹起mov ah, alloop2:call delayinal, dxcmpal, alljz loop2:初始化8253,停止播放音乐movax, ohmovdx, 283iimoval, 36houtd

23、x, aljmp loop1;播放音乐playo:mov cx, 0111play:push cx;读取音符,存于cx中movbx,offsetmusicaddbx, cxmoval, bxmovcl, almovch, oh:数码管显示movbx, offsetdigitaladdbx, cxmoval, bxmovdx, 288houtdx, al5播放该乐符movbx, offseteenpinmovax, cxaddax, axaddbx, ax;计数,先低八位后高八位movax, bxmovdx, 280houtdx, almoval, ahoutdx, alpopcx;延时,持续播

24、放movax, 90hl00p3:calldelay1decaxjnzl00p3;乐曲未结束时,cx加1incexcmpcx, 28h;共40个音符jnzjumjmpl00p1jum:jmpplayexit:moval,0movdx, 288houtdx, almovax, 4c00hint2111code endsend start五、实验结果按下键盘0,播放歌曲“粉刷匠”,数码管显示相应的音符:按下小键盘的1一一8,喇叭播 放所对应的音符,数码管显示按下的音符;按下键盘的9时,数码管熄灭,返回dos系统。六、实验总结与思考题实验主要用了8253计数器,其工作在方式3下,作为方波发生器,产生

25、不同音符的不同频率 的方波。根据音符频率和1m的时钟确定输入频率,检测键盘的输入,判断输入的字符,8253产 生相应的频率,喇叭播放音符,数码管输出按下的音符。实验的难点在于怎样判断键盘的输入。思考题:写出8253计数初值,输入频率和输出频率的关系:答:输出频率=输入频率/8253计数初值七、实验收获与心得体会这次实验较之前的实验难度较大,用到了 8255、8253、数码管,是个相对来说系统点的 实验,这也使得代码在实现起来比较多而复杂。一开始实验时不理解8255计数器的工作原理, 对音符如何通过喇叭显示出来也不明白,在弄清楚了他们的原理和相互之间的联系之后,才慢 慢理解。实验的内容要求编一小

26、段音乐,虽然实验很难,但是也增加了我们对实验的兴趣。实验十六串行通讯8251实验目的1、了解串行通讯的基本原理。2、掌握串行接口芯片8251的工作原理和编程方法。二、实验原理及内容1、按下图连接好电路,(8251插通用插座)其中8254计数器用于产生8251的发送和接收时钟,txd 和rxd连在一起。2、编程:从键盘输入一个字符,将其ascii码加1后发送出去,再接收回来在屏幕上显示,(或 将内存制定区域内存放的一批数据通过8251a的txd发送出去,然后从rxd接收回来,并在屏幕上 或数码管上显示出来。)实现自发自收。3、接线:clk0 /8254接1m时钟gate0 /8254 接 +5v

27、0ut0 /8254 接 tx/rxclk /8251cs /8254 接 yo /i0地址cs /8251 接 y7 /i0地址rxd /8251 接 txd /8251三、硬件接线图与软件程序流程图硬件接线图如下:reset>clk01234567odddddddcsrdjuxa53x1txrdv8251 rxrpvctsrlu15xu,程序流程图如下:开始初始化8253 初始化8251«示提示n从8251抟制口读状态字(是ese吗?)从键盘接收字符将键入字符ascft加1通过8251 ?5辟堪口发送字符从8251抟和.端口读入状态字从8251筘据口接收数据将字杓w示在四、

28、源程序datasegment;定义数据段stringdb send;定义字符串string1db receive/ $string2db odh, oah, dataendsstacksegment stack satck ;定义堆栈段 db 100 dup(?)stackendscodesegment;定义代码段assume cs:code, ds:data, ss:stack;延时子程序delaywaito:delaystart:proc nearpush cxmov cx, 100hloop waitopop cxretendpmovax, datamovds, ax;8254初始化mo

29、v dx, 283hmov al, 16h; (00010110)计数器0,只读低字节,方式3,二进制outdx, alcalldelaymovdx, 28011;计数器0,初值为52moval, 34h;初值52outdx, alcalldelay;8251初始化movdx, 2b9h;控制端口地址moval, 4011; (01000000)内部复位命令outdx, alnopcall delaymov al, 5e ; (01011110)方式控制字:波特率因子为16, 位停止位,一位奇校 验的异步方式outdx, almoval, 37h;(00110111)命令控制字outdx, a

30、lcalldelay发送数据movdx, 2b9h;读状态字inal, dxtestal, 01h :检测是否可以发送字符goon:jz goonmovah,09hmovdx,offset stringint21hmovah,01h;显示提示语句cmpal,1bhjzexitincal;加1int 21h ;检测是否为esc键movdx, 2b8h ;访问数据寄存器outdx, al:接收数据receive: movdx, 2b9h;读状态字inal, dxtest al, 02h:检测是否收到新数据jz receive:显示提示语句movmovintmovmovintah, 09hdx,offset string221hah, 09hdx,offset string121hmovinmovmovintmovmovintjmpdx, 2b8hal, dxdl, alall, 0211 ;显示接收的数据21hall, 0911dx, offset string22111goon;不断的发送读写exit:movintax, 4c00h;返回dos21hcodeendsendstart五、实验结果v boch霣 for 罾in

温馨提示

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

评论

0/150

提交评论