您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微型机系统与接口实验指导书
金陵科技学院·信息技术学院1连线连接孔1连接孔21CS08255CS2L08255-PA03L18255-PA14L28255-PA25L38255-PA36L48255-PA47L58255-PA58L68255-PA69L78255-PA710K08255-PB011K18255-PB112K28255-PB213K38255-PB314K48255-PB415K58255-PB516K68255-PB617K78255-PB7《微型机系统与接口》实验指导书实验1并行接口扩展设计一、实验目的1、了解8255芯片结构及编程方法。2、了解8255输入/输出实验方法。二、实验原理可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA,PC口输出,PB口输入。很多I/O实验都可以通过8255A来实现。三、实验仪器LAB6000实验系统,PC机四、实验内容8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。PA0-PA7(PA口)接LED0-LED7(LED)PB0-PB7(PB口)接K0-K7(开关量)。数据线、读/写控制、地址线、复位信号板上已接好。根据以下程序流程图编写完整的实验程序并调试。2参考程序:modeequ082h;方式0,PA,PC输出,PB输入PortAequ8000h;PortAPortBequ8001h;PortBPortCequ8002h;PortCCAddrequ8003h;控制字地址codesegmentassumecs:codestartprocnearStart:moval,modemovdx,CAddroutdx,al;输出控制字;实验1:PortA输出moval,80Hmovcx,08HOutA:movdx,PortAoutdx,al;输出PortAmovdx,PortCoutdx,alshral,1;移位movah,100calldelay;延时loopOutA;实验2:PortB输入PortA输出movdx,PortB开始延时置8255工作方式置8255PA口数据左移延时开始延时置8255工作方式读8255PB口置8255PA口金陵科技学院·信息技术学院3inal,dx;读入PortBmovdx,PortCoutdx,almovdx,PortAoutdx,al;输出到PortAmovah,200calldelayjmpStartendpdelayprocnearpushaxmoval,0pushcxmovcx,axloop$popcxpopaxretdelayendpcodeendsendstart五、实验总结整理实验程序,并进行实验结果定性分析。实验2定时器/计数器接口扩展设计一、实验目的1、学习8088/86与8253的连接方法。2、学习8088/86对8253的控制方法。3、学习8253多级串联实现大时间常数的定时方法。二、实验原理利用8088/86外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。用8253对标准脉冲信号进行计数,就可以实现定时功能。三、实验仪器LAB6000实验系统,PC机四、实验内容1、计数器:本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开4始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT脚输出一个高电平。实验时,可以将OUT0接到LED上,观察计数器是否工作。根据以下程序流程图编写完整的实验程序并调试。参考程序:CONTROLequ08003hCOUNT0equ08000hCOUNT1equ08001hCOUNT2equ08002hcodesegmentassumecs:codestartprocnearmoval,30h;通道0,方式0movdx,CONTROLoutdx,almoval,5;计数器初始值。movdx,COUNT0outdx,al;低八位moval,0outdx,al;高八位Again:moval,00000000B;锁存计数器值movdx,CONTROLoutdx,almovdx,COUNT0inal,dx;读入计数值低八位movbl,alinal,dx;读入计数值高八位movah,al连线连接孔1连接孔218253_CSCS028253_OUT0L038253_GATE0VCC48253_CLK0单脉冲开始设置工作方式锁存计数值读回计数值金陵科技学院·信息技术学院5moval,bljmpAgainstartendpcodeendsendstart2、定时器:工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0的输出接到LED0。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。根据以下程序流程图编写完整的实验程序并调试。参考程序:CONTROLequ0c003hCOUNT0equ0c000hCOUNT1equ0c001hCOUNT2equ0c002hcodesegmentassumecs:codestartprocnearmoval,36h;00110110B;计数器0,16位,方式3,二进制movdx,CONTROLoutdx,almovax,1000连线连接孔1连接孔218253_CSCS428253_OUT0L038253_GATE0VCC48253_CLK08253_OUT158253_GATE1VCC68253_CLK1F/4(1M)74MHzFin开始设置计数器0定时常数设置计数器0模式控制字设置计数器1模式控制字设置计数器1定时常数等待6movdx,COUNT0outdx,al;计数器低字节moval,ahoutdx,al;计数器高字节moval,76h;01110110B;计数器1,16位,方式3,二进制movdx,CONTROLoutdx,almovax,1000movdx,COUNT1outdx,al;计数器低字节moval,ahoutdx,al;计数器高字节jmp$startendpcodeendsendstart五、实验总结整理实验程序,并进行实验结果定性分析。实验3串行接口扩展设计一、实验目的1、掌握8088/86实验串行口通信的方法。2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。3、学习串行口通讯程序编写方法。二、实验原理8088/86CPU通过外接的8251可编程串行控制器实现串口通信。通过8251的控制口写入其工作方式或读入当前状态,通过数据口发送或接收串行口数据。本实验是通过查询方式读写状态和输入输出串行数据。三、实验仪器LAB6000实验系统,PC机四、实验内容利用8088/86CPU控制8251A可编程串行通信控制器,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD,这样按下的键就会在本机的LED上显示。金陵科技学院·信息技术学院7若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。将分频器的Fin接到4MHz脉冲发生器,就可以得到1MHz和250KHz脉冲。电路连接如下:连线连接孔1连接孔21KEY/LED_CSCS028251_CSCS538251_TxCLKF/16(250KHz)48251_RxCLKF/16(250KHz)58251_CLKF/4(1MHZ)64MHzFin7甲方8251_TXD乙方8251_RXD8甲方8251_RXD乙方8251_TXD9甲方GND乙方GND8根据以下程序流程图编写完整的实验程序并调试。位选通信号(0x002H)段码输出(0x004H)数据总线是接收子程序是否已收到数据?读入数据返回否串口接收子程序是发送子程序发送缓冲为空?发送数据返回否清出错标志串口发送子程序是否无开始设置串口通讯方式及波特率LED显示读入键值检测键盘输入转换成键码串口发送键码收到数据?接收数据送显示缓冲主程序金陵科技学院·信息技术学院9参考程序:OUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口IN_KEYequ08001h;键盘读入口CS8251Dequ09000h;串行通信控制器数据口地址CS8251Cequ09001h;串行通信控制器控制口地址datasegmentLEDBufdb6dup(?);显示缓冲Numdb1dup(?);显示的数据DelayTdb1dup(?)RBufdb0TBufdb0LEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hKeyTable:;键码定义db16h,15h,14h,0ffhdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,04h,07hcodesegmentassumecs:code,ds:dataDelayprocnearpushax;延时子程序pushcxmoval,0movcx,axloop$popcxpopaxretDelayendpDisplayLEDprocnearmovbx,offsetLEDBufmovcl,6;共6个八段管movah,00100000b;从左边开始显示DLoop:movdx,OUTBITmoval,0outdx,al;关所有八段管moval,[bx]10movdx,OUTSEGoutdx,almovdx,OUTBITmoval,ahoutdx,al;显示一位八段管pushaxmovah,1callDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所有八段管retDisplayLEDendpTestKeyprocnearmovdx,OUTBITmoval,0outdx,al;输出线置为0movdx,IN_KEYinal,dx;读入键状态notalandal,0fh;高四位不用retTestKeyendpGetKeyprocnearmovch,00100000bmovcl,6KLoop:movdx,OUTBITmoval,ch;找出键所在列notaloutdx,alshrch,1movdx,IN_KEYinal,dxnotalandal,0fhjneGoon_;该列有键入金陵科技学院·信息技术学院11deccljnzKLoopmovcl,0ffh;没有键按下,返回0ffhjmpExit1Goon_:decclshlcl,2;键值=列X4+行movch,4LoopC:testal,1jnzExit1shral,1inccldecchjnzLoopCExit1:movdx,OUTBITmoval,0
本文标题:微型机系统与接口实验指导书
链接地址:https://www.777doc.com/doc-2469545 .html