微机接口实验报告_第1页
微机接口实验报告_第2页
微机接口实验报告_第3页
微机接口实验报告_第4页
微机接口实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术实验报告微机原理与接口原理实验报告微机原理与接口技术系别专业班级姓名学号指导教师学年第学期实验一1、实验目的:寻找两个字符串中不同的字符2、源程序代码:datasegment//ds数据段data为段名xdb“hello,world!$”dataends//data为段名extrasegmentydb“hello,world!$”extraendscodesegment//伪指令assumecs:code,ds:data,es:extra//cs与code关联,es与extra关联start:movax,data//符号地址送段寄存器movds,ax//ds赋初值movax,extramoves,ax//将ax的内容送到es,es内容不变leasi,x//取x的有效地址指向sileadi,y//取y的有效地址指向dimovcx,0ch//cx=0chcld//df=0repzcmpsb//如果ds:si和es:di所指向的两个字节相等,则继续比较。所以如果相等的话,就停止循环。jcxzexit//防止零作除数,即数组是空数组decsi//si-1decdi//di-1print:movdl,byteptr[si]//[si]以字节单位存入dl中movah,02hint21h//dos中断显示字符movdl,byteptres:[di]//将dl中的数据送入以es为基址,di为偏移量所指的地址中去,以字节为单位movah,02hint21h//dos中断显示字符exit:movah,4ch//返回dosint21hcodeends//代码段结束endstart//整个程序结束3、实验流程图:定义变量x定义变量x定义变量y取x的有效地址指向si取y的有效地址指向di开始比较两个字符串,输出不同的字符,若找不到不相同的,则表明查找已完成返回dos结束4、程序运行结果:5、实验感想:这个实验的关键是找两个字符串中的不同的字符,实验过程中需要定义两个不同的字符串。实验二1、实验目的:灵活运用汇编语言2、实验内容:BCD码变量定义如下XDB1234HYDB5678HZDB完成Z=X+Y,并显示X,Y,Z开始程序流程图:开始定义数据段定义数据段代码段开始代码段开始给ds赋值给ds赋值将si、di传给x、y将si、di传给x、y02h赋值给cx02h赋值给cx传送x、y传送x、yBx=0Bx=0结束结束4、源程序代码:datasegment//ds数据段data为段名XDW1234HYDW5678HZDW?dataends//data为段名codesegment//伪指令assumecs:code,ds:datastart:movax,data//送符号地址送段寄存器movds,ax//将通用寄存器ax的内容送入cpu的ds段寄存器leasi,x//取x的有效地址指向sileadi,y//取y的有效地址指向dileabx,z//取x的有效地址指向bxmovcx,02h//(cx)=02hclc/清除cf位pushf//sp<-sp-2lopx:popf//sp<-sp+2moval,byteptr[si]//[si]以字节单位存入al中movdl,byteptr[di]//[di]以字节单位存入di中adcal,dl//al+dl带单位存入aldaa//将al的内容调整为2位组合型的二进制pushf//sp<-sp-2movbyteptr[bx],al//al存入bx中并强制转换为字符单元incsi//si跳转到下一个字符incdi//di跳转到下一个字符incbx//bx跳转到下一个字符looplopx//cx减1leasi,z//取z的有效地址指向simovdx,[si]//[si]送入dxmovbx,04h//(bx)=04hmovcl,0ch//(cl)=0chprint:rordx,cl//dx循环右移clmovbp,dx//dx送入bpanddx,000fh//有0为0adddx,30h//将dx加上30h并传入dxmovah,02hint21h//dos中断显示字符movdx,bp//bp送入dxdecbx//bx-1jnzprint//bx不等于0时继续输出exit:movah,4chint21h//返回DOScodeends//代码段结束endstart//整个程序结束5、程序运行结果:6、实验感想:这个实验没什么复杂的地方,把书上的原理搞懂了问题也就不大了。实验三1、实验目的:流水灯2、源程序代码:inportequ0ff00h-280hinportaequinport+288hinportctequinport+28bhcodesegmentassumecs:codestart:xorax,axxordx,dxmoval,80hmovdx,inportctoutdx,almoval,00hstcmovdx,inportalop:rclal,1outdx,alcalldelayjmplopdelayprocnearmovbx,03fffhx2:movbp,0ffffhx1:decbpjnzx1decbxjnzx2retdelayendpmovah,4chint21hcodeendsendstart3、实验内容:灯循环依次点亮4、接口连接:红绿灯接线:电源输出J5与开关上的J0相接J8与计数器上的J0相接32JHP上的JD2与计数器上的JD相连计数器上的PA与开关上的JL1相接计数器上的PB与开关上的JK相接复位RST与计数器RST相接计数器32JHPA0A0A1A18255CSY1/WRIOW/RDIOR5、心得体会:通过分析引脚来进行连线,就能清楚地了解接口之间如何接实验四一、实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。二、实验内容1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8对应南北路口红灯。三、编程提示1.十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。(4)南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次。(5)转(1)重复。由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。下面的程序JTD.ASM(在文件夹“ASM_汇编例程”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置。四、实验流程图五、实验代码datasegmentioport equ0ff00h-0280hio8255a equioport+288hio8255b equioport+289hio8255c equioport+28ahio8255ct equioport+28bhdataendscodesegmentassumecs:code,ds:datastart:xorax,axxordx,dxmovax,data movds,ax movdx,io8255ct moval,80h outdx,almovdx,io8255c;全红moval,24houtdx,al movdx,io8255amoval,09houtdx,alcalldelayok:movdx,io8255c;东西绿,南北红moval,64houtdx,al movdx,io8255amoval,02houtdx,alcalldelaymovdx,io8255c;东西黄,南北红moval,0a4houtdx,al movdx,io8255amoval,02houtdx,alcalldelaymovdx,io8255c;东西红,南北绿moval,09houtdx,al movdx,io8255amoval,09houtdx,alcalldelaymovdx,io8255c;东西红,南北黄moval,12houtdx,al movdx,io8255amoval,09houtdx,alcalldelayjmpokdelayprocnearmovbp,0aff0hx2:movbx,0ffffhx1:decbxjnzx1decbpjnzx2retdelayendpcodeends endstart六、心得体会了解了芯片的引脚构造组成,在连接电路图时遇到的了麻烦,没有试验指导书对引脚连线还是不会的,通过老师的示范有所了解,自己动手能连接电路并且实现了端口灯的控制这一应用。实验五1.实验内容:交通灯2.实验分析:全红L11L10L00100100100C口:24HA口:09H东西绿南北红L11L10L01001100100C口:64HA口:02H东西黄南北红L11L001010100110C口:0A4HA口:02H东西红南北绿L11L10L100100001001C口:09HA口:09H东西红南北黄L11L1100100010010C口:12HA口:09H3实验代码datasegmentioport equ0ff00h-0280hio8255c equioport+28ahio8255k equioport+28bhportc1db24h,44h,04h,44h,04h,44h,04h;六个灯可能 db81h,82h,80h,82h,80h,82h,80h;的状态数据 db0ffh;结束标志dataendscodesegmentassumecs:code,ds:datastart: movcx,3000delay: loopdelay movax,data movds,ax movdx,io8255k moval,80h outdx,al movdx,io8255cre_on: movbx,0on: moval,portc1[bx] cmpal,0ffh jzre_on outdx,al incbx movcx,2000h testal,21h jzde1 movcx,0ffffhde1: movdi,0ffffhde0: decdi jnzde0 loopde1 pushdx movah,06h movdl,0ffh int21h popdx jzonexit: movah,4ch;返回 int21hcodeends endstart4.电路连线:(常用门电路)RST——(8255并行接口8253定时/计数器)RST(DVCC-32JHP)IOR——(8255并行接口8253定时/计数器)/RD(DVCC-32JHP)IOW——(8255并行接口8253定时/计数器)/WR(DVCC-32JHP)A0——(8255并行接口8253定时/计数器)A0(DVCC-32JHP)A1——(8255并行接口8253定时/计数器)A1(DVCC-32JHP)Y1——(8255并行接口8253定时/计数器)8255CS(DVCC-32JHP)JD1——(8255并行接口8253定时/计数器)JD(电源输出)J8——(8255并行接口8253定时/计数器)J0(电源输出)J5——(开关量)J0(开关量)L8——(8255并行接口8253定时/计数器)PA0(开关量)L9——(8255并行接口8253定时/计数器)PA1(开关量)L10——(8255并行接口8253定时/计数器)PA4(开关量)L11——(8255并行接口8253定时/计数器)PA3(开关量)JL1——(8255并行接口8253定时/计数器)PC5.心得体会:通过这次实验了解到交通灯的控制原理,首先必须计算出在全红、东西绿南北红、东西黄南北红、东西红南北绿、东西红南北黄的几种情况下,C口与A口的值,再编写源代码,然后连接电路图,此次电路图也比前两次的复杂一点,要更细心。实验六一、实验目的了解数/模转换器的基本原理,掌握DAC0832芯片的技术参数和使用方法。二、实验内容1.按图接线,DAC0832采用单缓冲方式,具有单双极性输出端(图中的DOUT1、DOUT),利用输出指令OUTDX,AL,编写一个小程序,然后单步运行,输出数据给DAC0832,用万用表测量单极性输出端DOUT1及双极性输出端DOUT的电压,验证数字量与电压之间的线性关系。2.编程从DOUT输出产生正弦波,用示波器观察。三、编程提示1.8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为: DOUT1=-Uref×N/256DOUT=2×Uref×N/256-5 其中,Uref表示参考电压,就是0832第8脚上的电压为+5V,由外部输入。N表示输入到DA0832的数字量。3.产生正弦波可根据正弦函数建一个正弦数字量表,取值范围为一个周期,表中数据个数在16个以上。实验流程图实验代码inportequ0ff00h-280hda0832equinport+288hcodesegmentassumecs:codestart:xorax,axxordx,dxmovdx,da0832ok:moval,00houtdx,alcalldelaymoval,0fehoutdx,alcalldelayjmpokdelayprocnearmovbx,0f000hx2:movbp,0f000hx1:decbpjnzx1decbxjnzx2retdelayendpcodeendsendstart实验体会芯片0832能实现D/A数模转换,它和D/A转换不同。它主要是将计算机的数字信号转换为外部设备中连续变化的模拟信号。而且0832芯片两级缓冲寄存器,利用双缓冲功能,D/A寄存器保持当前要转换的数据,而在输入寄存器中保存下一次要转换的数据。实验七一、实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。二、实验内容1.按图接线。编写实验程序,用ADC0809完成模拟信号到数字信号的转换,输入的模拟量由系统板上一可调电位器产生0~5V,由Vout插孔和J11同时引出,将此电压送入ADC0809通道0(即IN0),IN0由J1插座引出。启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字量的关系。注意:ADC0809通道IN1~IN7由插座J2~J8引出。2.编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。下面的程序AD_1.ASM(在文件夹“ASM_汇编例程”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H)。三、实验提示1.ADC0809包括一个8位的逐次逼近式的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可以直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等领域应用非常广泛。2.IN0单极性输入电压与转换后数字量的关系为:N=256×Ui/Uref其中Ui为输入电压,Uref为参考电压,这里的参考电压为+5V。3.一次A/D转换的程序可以为:MOVAL,通道地址MOVDX,0809片选地址OUTDX,AL;启动转换…;延时INAL,DX;读取转换结果放在AL中实验流程图五、实验代码:ioport equ0ff00h-0280hio0809a equioport+289hcodesegment assumecs:codestart:movdx,io0809a;启动A/D转换器 moval,0h outdx,al movcx,0ffh;延时delay:loopdelay inal,dx;从A/D转换器输入数据 movbl,al;将AL保存到BL movcl,4 shral,cl;将AL右移四位 calldisp;调显示子程序显示其高四位 moval,bl andal,0fh calldisp;调显示子程序显示其低四位 movah,02 movdl,20h;加回车符 int21h movdl,20h int21h pushdx movah,06h;判断是否有键按下 movdl,0ffh int21h popdx jestart;若没有转START movah,4ch;退出 int21hdispprocnear;显示子程序 movdl,al cmpdl,9;比较DL是否>9 jleddd;若不大于则为'0'-'9',加30h为其ASCII码 adddl,7;否则为'A'-'F',再加7ddd:adddl,30h;显示 movah,02 int21h retdispendpcodeendsendstart实验感想模/数转换是将模拟电压或电流转换成数字量,它的过程和原理与用天平称重物体十分相似。实验八一、实验目的1.了解串行通讯的基本原理。2.掌握串行接口芯片8251的工作原理和编程方法。二、实验内容1.按连接好电路,其中8253用于产生8251发送和接收时钟,TXD和RXD连在一起。2.编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。显示的内容是:前一个字符为键盘上输入的字符,后一个是键盘上输入字符的ASCII码加1后字符。如键入的字符是A,显示的是AB。 3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。下面的程序D8251.ASM(在文件夹“ASM_汇编例程”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H)。三、实验提示1.图示电路8251的片选地址为2B8H,8253的片选地址为280H。2.8253计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。3.收发采用查询方式。四、实验流程图开始开始初始化8253初始化8251显示提示从8251控制口读状态字TXRDY为1?从键盘接收字符将键入字符的ASCII码加1是ESC键?通过8251数据口发送字符码从8251数据口发送字符从8251数据口接收数据DXRD

温馨提示

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

评论

0/150

提交评论