微机原理与接口技术实验报告.doc_第1页
微机原理与接口技术实验报告.doc_第2页
微机原理与接口技术实验报告.doc_第3页
微机原理与接口技术实验报告.doc_第4页
微机原理与接口技术实验报告.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术实验报告班 级: 通信1309姓 名: 张哲熙学 号: 13212171指导教师: 周永华实验一 交通信号灯模拟控制一.实验目的交通信号灯模拟控制是一个基于实际工程原理,结合文献、现实十字路口交通等得研究,对工程问题进行确定、表述和建模分析,获得最优设计方案,理解并在工程实践中遵守工程职业道德规范,根据实验室实验环境限定条件确定实验方案。所有知识涵盖本课程中的并行接口芯片、汇编语言程序设计、算法分析、接口地址的确定、外围设备的控制等。通过此实验可以理解微机系统中接口电路的作用,掌握软件硬件协同工作原理,熟悉微机原理与接口技术的综合应用。最终达到如下实验目的: (1) 掌握可编程并行接口 8255 芯片的工作原理 (2) 掌握利用并行接口芯片 8255 实现信号灯控制的硬件设计和软件设计 (3) 掌握接口电路及汇编语言程序设计的调试方法 (4) 了解 PC 机和实验系统板的连接原理,理解系统机扩展原理 (5) 了解并行接口芯片在工程实践中的典型应用及实现方式。 二.实验内容设计利用 TPC-2003A 实验系统提供的 8255 芯片和信号灯设计实现十字路口交通灯的模拟控制的硬件连接和程序设计。1.设计要求(1) 通过实际调研了解十字路口交通灯原理,确定实现的算法流程。(2) 利用实验系统设计硬件电路,明确 8255 芯片端口地址。(3) 编程实现并调试完成交通信号灯的模拟控制。(4) 分析设计方案并比较和实际交通信号灯的技术性能差别。 2.设计目标和性能指标(1)考察一个实际十字交通等路口交通控制,模拟在实验室实现。(2)扩展功能:用 LED 应倒计时方式显示各路口灯亮时间。(3)对于复杂多路口应该如何设计。例如结合车流、人流等多方因素方案如何确定。三实验电路 如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。8255动态分配地址: 控制寄存器:28BHA口地址: 288HC口地址: 28AH 红 黄 绿 红 黄 绿四程序流程图五源程序CODE SEGMENTASSUME CS:CODE START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出 OUT DX,AL FIRST: MOV DX,0EC0AH ;写C口,地址0EC0AH MOV AL,00100100B ;南北绿,东西红,C口写00100100 OUT DX,AL MOV CX,0 ;外层循环初值65536,延时程序 MOV AX,2000H ;内层循环初值2000H DELAY1: DEC AX JNZ DELAY1 LOOP DELAY1 MOV BL,5 ;黄灯亮5次SECOND:MOV DX,0EC0AH ;C端口 MOV AL,01000100B ;南北黄,东西红 OUT DX,AL MOV CX,3000H ;短延时,黄灯亮与暗之间的间隔 MOV AX,0100H LI1: DEC AX JNZ LI1 LOOP LI1 MOV DX,0EC0AH MOV AL,00000100B ;南北黄灯灭,东西红灯继续亮 OUT DX,AL MOV CX,3000H MOV AX,0100HWEN1: DEC AX ;短延时 JNZ WEN1 LOOP WEN1 DEC BL ;闪烁次数控制 JNZ SECOND ;南北路口黄灯再亮THIRD: MOV DX,0EC0AH ;写入C口 MOV AL,10000001B OUT DX,AL ;南北红,东西绿 MOV CX,0 ;长延时,外循环初值65536,同上 MOV AX,2000H ;内循环初值2000HDELAY2: DEC AX JNZ DELAY2 LOOP DELAY2 MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0EC0AH ;写入C口 MOV AL,10000010B ;南北红,东西黄 OUT DX,AL MOV CX,3000H MOV AX,0100HLI2: ;短延时 DEC AX JNZ LI2 LOOP LI2 MOV DX,0EC0AH ;C端口 MOV AL,10000000B ;东西黄灯灭,南北红灯继续亮 OUT DX,AL MOV CX,3000H MOV AX,0100HWEN2: DEC AX JNZ WEN2 LOOP WEN2 DEC BL JNZ FORTH ;东西路口黄灯再亮 MOV DL,0FFH MOV AH,06H INT 21H ;查看是否有键按下 JZ FIRST ;没有就重复 MOV AH,4CH INT 21H ;返回DOSCODE ENDS END START六实验总结这是第一个微机实验,我和我们组另外两名同学在去实验室做实验之前,先上网查阅了相关资料,也和其他组的同学交流了一下各自的程序,在大概了解了程序之后我们去九教实验室进行实验。虽然第一个实验并不难,但是在做的过程中我们还是遇到了各种问题,比如运行程序后实验箱上的灯不亮,经过我们小组同学讨论,求助助教之后发现可能是电脑和实验箱的连接出了问题。解决了问题之后顺利的出了结果。这次实验用的是8255芯片,经过这次实验,我了解了伤及调试的方法,以及出现一些常见的问题时应该如何解决。结合微机课上学习的知识,对8255芯片的应用也有了更深入的理解。实验二 计数、定时系统的设计实现一实验目的掌握8253的基本工作原理和编程方法。二实验内容(1)按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后变高电平)。 图5-1(2) 按图5-2连接电路图,将计数器0、1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。 图5-2 三实验原理8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。工作方式3是分频器功能。四程序流程图五源程序1. 实验内容一程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,0EC03H ;计数器0,方式0 MOV AL,00010000B OUT DX,AL MOV DX,0EC00H MOV AL,0EH ;送初值E OUT DX,AL MOV CL,1READ: INC CL ;自加1 CMP CL,0 JZ START MOV DX,0EC00H ;读计数器0 IN AL,DX MOV DL,AL MOV CL,AL CMP AL,9 JG BIG ADD DL,30H ;0到9,显示ASCII数字 MOV AH,02H INT 21H MOV DL,0DH INT 21H JMP JUDGEBIG: ADD DL,37H ;大于9,显示ASCII字母 MOV AH,02H INT 21H MOV DL,0DH ;加回车符,只显示一个符号 INT 21H JMP JUDGEJUDGE:MOV DL,0FFH ;有键按下回DOS MOV AH,06H INT 21H JZ READ MOV AH,4CH INT 21HCODE ENDSEND START2、实验内容二程序:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0EC03H;计数器0置控制字为工作方式3 MOV AL,00110110B OUT DX,AL MOV DX,0EC00H MOV AX,1000;向计数器0送初值 OUT DX,AL;先送低字节后送高字节 MOV AL,AH OUT DX,AL MOV DX,0EC03H;计数器1置控制字为工作方式3 MOV AL,01110110B OUT DX,AL MOV DX,0EC01H;向计数器1送初值 MOV AX,1000;先送低字节后送高字节 OUT DX,AL MOV AL,AH OUT DX,ALNEXT: MOV DL,0FFH;DOS 6号功能调用,按任意键返回 MOV AH,06H INT 21H MOV AH,4CH;返回系统 INT 21HCODE ENDSEND START6 实验总结这次实验我们做了可编程定时器/计数器,练习了对芯片8253的使用。在做实验之前,我和我们小组的其他成员就先阅读了实验指导书,并且上网查阅了相关资料,对实验内容和任务有了初步的了解。随后去实验室进行实验,由于实验箱的问题,最开始我们的程序并没有运行成功,后来换了一个实验箱,程序就可以正常运行了。第一个实验中我们用了计数器方式0,当有按键按下时,计数值减少1,显示屏上会逐个显示B、A、9、8.一直到1、0。第二个实验实现了一个分频的功能因为两次分频的计数值都是1000,输入为1MHz,经过两次分频后输出为1Hz。经过这次实验我对计数和分频的功能以及8253芯片的一些基本使用方法,也对程序的调试有了更深刻的认识。实验三 双机串行通信实验一、实验目的1、 进一步了解串行通信的基本原理。2、 掌握串行接口芯片8250的工作原理和编程方法。3、 熟悉PC机串行口的基本连接方法二、实验内容1、PC机RS-232串口自发自收。 按照PC机串口自发自收的连接方法连线。编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。硬件连接图如下:2、 两台PC机间RS-232串口通信。 按照PC机RS-232串口直接互连的方法连接两台PC机。 编写PC机直接互连串行通信程序;要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。当键入感叹号“!”,结束收发过程。硬件连接图如下:三、实验原理(1)本实验为异步通信:以字符为单位进行传送,每传送一个字符,以起始位作为开始标志,以停止位作为结束标志。 异步串行通信的工作过程是:传送开始后,接收设备不断地检测传输线是否有起始位到来,当接收到一系列的“1”(空闲或停止位)之后,检测到第一个“0”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。经过接收器处理,将停止位去掉,把数据位拼装成一字节数据,并且经奇偶校验无错误,才算是正确地接收到了一个字符。当一个字符接收完毕,接收设备又继续测试传输线,监视“0”电平的到来(下一个字符的开始)。 (2)8250各部分功能说明 8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。各寄存器的地址和格式如下所示:(3)数据发送和接收:四、源程序实验(1)自发自收DATA SEGMENT CHLDB 0AH,0DH,$;换行字符串DATA ENDSSTACK1 SEGMENT STACK DW 100 DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AX;-INIT-MOV DX,3FBH;MOV AL,80H;DLAB=1 OUT DX,ALMOV AX,0CH;N=12 BAUD=9600bpsMOV DX,3F8H;低位OUT DX,ALMOV AL,AHINC DXOUT DX,ALMOV AL,03H;八位数据,1停止,无校验MOV DX,3FBH;线路控制REGOUT DX,ALMOV AL,0;屏蔽全部中断MOV DX,3F9HOUT DX,ALWAIT1: MOV DX,3FDH;读线路状态寄存器IN AL,DXTEST AL,1EH;判断是否有错JNZ ERRORTEST AL,01H;判断是否收到JNZ RECEIVETEST AL,20H;判断发送端是否空JZ WAIT1MOV DL,0FFH;六号功能调用读入待发送数据MOV AH,06HINT 21HJZ WAIT1MOV DX,3F8H;写发送REGOUT DX,ALJMP WAIT1;返回 WAIT1CHAR: PUSH AXMOV DL,AL;显示接收MOV AH,02HINT 21HMOV DX,OFFSET CHL;输出字符串换行MOV AH,09HINT 21HPOP AXJMP WAIT1ERROR:MOV DX,3FDHIN AL,DXMOV DL,?;对于错误显示?MOV AH,02HINT 21HJMP WAIT1RECEIVE:MOV DX,3F8HIN AL,DX;读数据接收寄存器CMP AL,!;判断是否结束JNE CHAR;-MOV AH,4CHINT 21HCODE ENDS END START实验(2)双机通信(1)发送端:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,80H ;8250初始化,设DLAB=1 MOV DX,3FBH OUT DX,AL MOV AX,30H MOV DX,3F8H OUT DX,AL ;写入除数低字节 MOV AL,AH INC DX OUT DX,AL ;写入除数高字节 MOV AL,0AH ;7位数据,1位停止,奇校验 MOV DX,3FBH OUT DX,AL ;写入线路控制寄存器 MOV AL,03H MOV DX,3FCH OUT DX,AL ;写入Modem控制寄存器 MOV AL,0 MOV DX,3F9H OUT DX,AL ;写中断允许寄存器,屏蔽所有中断WAIT1: MOV DX,3FDH ;读线路状态寄存器 IN AL,DX TEST AL,1EH ;出错否 JNZ ERROR ;TEST AL,01H ;接收数据就绪否 ;JNZ SEND ;发送 TEST AL,20H ;发送寄存器空否,不空,返回等待 JZ WAIT1 SEND: MOV AH,1 INT 21H ;读键盘 CMP AL,21H ;是!? JZ EXIT ;是,返回操作系统 MOV DX,3F8H ;不是,则发送 OUT DX,AL JMP WAIT1 ;返回等待ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器 IN AL,DX MOV DL,? ;显示? MOV AH,02H INT 21H JMP WAIT1 EXIT: MOV AH,4CH INT 21H CODE ENDS END START(2)接收端:CODE SEGMENT ASSUME CS:CODESTART: MOV AL,80H ;8250初始化 MOV DX,3FBH OUT DX,AL MOV AX,30H ;写除数 MOV DX,3F8H OUT DX,AL ;写入除数低字节 MOV AL,AH INC DX MOV DX,3F9H OUT DX,AL ;写入除数高字节 MOV AL,0AH MOV DX,3FBH OUT DX,AL ;写入线路控制寄存器 MOV AL,03H MOV DX,3FCH OUT DX,AL ;写入Modem控制寄存器 MOV AL,0 MOV DX,3F9H OUT DX,AL ;写中断允许寄存器,屏蔽所有中断WAIT1: MOV DX,3FDH ;读线路状态寄存器 IN AL,DX TEST AL,1EH ;出错否 JNZ ERROR TEST AL,01H ;接收数据就绪否 JNZ RECEIVE ;转接收 ;TEST AL,20H ;发送寄存器空否,不空,返回等待 ;JZ WAIT1 JMP WAIT1 ;均返回等待RECEIVE: MOV DX,3F8H ;读接收数据 IN AL,DX AND AL,01111111B ;保留位数据 CMP AL,21H ;是!? JNZ CHAR MOV AH,4CH ;返回操作系统 INT 21H CHAR: PUSH AX MOV DL,AL MOV AH,2 ;显示接受字符 INT 21H POP AX JMP WAIT1 ;返回等待ERROR: MOV DX,3FDH ;出错则清除线路状态寄存器 IN AL,DX MOV DL,? ;显示? MOV AH,02H INT 21H JMP WAIT1CODE ENDS END START拓展部分DATA SEGMENT D1 DB ? CHL DB 0AH,0DH,$ DATA ENDSSTACK1 SEGMENT STACK DW 100H DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AX;-INIT- MOV AX, DATA MOV DS, AX MOV DX,3FBH MOV AL,10000000B OUT DX,AL; MOV DX,3F8H MOV AX,60H OUT DX,AL INC DX MOV AL,AH OUT DX,AL MOV DX,3FBH MOV AL,00001010B OUT DX,AL MOV DX,3FCH MOV AL,00000011B OUT DX,AL MOV DX,3F9H MOV AL,00000000B OUT DX,AL WAIT1: MOV DX,3FDH IN AL,DX TEST AL,00011110B; JNZ ERROR TEST AL,00000001B; JNZ RECEIVE TEST AL,00100000B; JZ WAIT1 MOV DL,0FFH MOV AH,06H INT 21H JZ WAIT1 MOV DX,3F8H OUT DX,AL JMP WAIT1CHAR: PUSH AX MOV DL,AL MOV AH,02H INT 21H MOV DX,OFFSET CHL MOV AH,09H INT 21H POP AX JMP WAIT1ERROR: MOV DX,3FDH ; IN AL,DX MOV DL MOV AH,02H INT 21H JMP WAIT1RECEIVE:MOV DX,3F8H IN AL,DX CMP AL JNE CHAR MOV AH,4CH INT 21HCODE ENDS END START五、实验总结这次实验中,我们用了8250芯片来实现自发自收和双机通讯的功能。在单机自发自收的实验中我们把一台PC机的TXD和RXD端口连在一起,运行程序之后就可以实现自发自收。而在双机通讯的实验中,我们需要把第一台PC机的TXD端口与第二台PC机的RXD端口连在一起,把第一台的RXD与第二台的TXD连在一起,实现双机通讯。 在进行实验的过程中我们遇到了一些问题,在自发自收的时候不能让8250处于自检模式,如果处于自检模式,实验现象跟要求是一样的,但实际上是在芯片内部将RXD与TXD连在一起了,此时外部有没有将RXD和TXD连在一起都没有影响。实验四 竞赛抢答器一实验目的、了解微机化竞赛抢答器的基本原理。、进一步学习使用并行接口。二实验内容 图 5-4 为竞赛抢答器(模拟)的原理图,逻辑开关 K0K7 代表竞赛抢答按钮 07 号,当某个逻辑电平开关置“”时,相当某组抢答按钮按下。在七段数码管上将其组号( 07)显示出来,并使喇叭响一下。从键盘上按空格键开始下一轮抢答,按其它键程序退出。 图5-4三、程序流程图四源程序DATA SEGMENT LIST DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDATA ENDSSTACK1 SEGMENT STACK DW 100H DUP(0)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA

温馨提示

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

评论

0/150

提交评论