微机原理与接口技术实验报告班级:通信1309姓名:张哲熙学号:指导教师:周永华实验一交通信号灯模拟控制一.实验目的交通信号灯模拟控制是一个基于实际工程原理,结合文献、现实十字路口交通等得研究,对工程问题进行确定、表述和建模分析,获得最优设计方案,理解并在工程实践中遵守工程职业道德规范,根据实验室实验环境限定条件确定实验方案。
所有知识涵盖本课程中的并行接口芯片、汇编语言程序设计、算法分析、接口地址的确定、外围设备的控制等。
通过此实验可以理解微机系统中接口电路的作用,掌握软件硬件协同工作原理,熟悉微机原理与接口技术的综合应用。
最终达到如下实验目的:(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:CODESTART: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,B ;C口方式0输出OUT DX,ALFIRST: MOV DX,0EC0AH ;写C口,地址0EC0AH MOV AL,00100100B ;南北绿,东西红,C口写00100100 OUT DX,ALMOV CX,0 ;外层循环初值65536,延时程序MOV AX,2000H ;内层循环初值2000HDELAY1: DEC AXJNZ DELAY1LOOP DELAY1MOV BL,5 ;黄灯亮5次SECOND:MOV DX,0EC0AH ;C端口MOV AL,01000100B ;南北黄,东西红OUT DX,ALMOV CX,3000H ;短延时,黄灯亮与暗之间的间隔LI1: DEC AXJNZ LI1LOOP LI1MOV DX,0EC0AHMOV AL,00000100B ;南北黄灯灭,东西红灯继续亮OUT DX,ALMOV CX,3000HMOV AX,0100HWEN1: DEC AX ;短延时JNZ WEN1LOOP WEN1DEC BL ;闪烁次数控制JNZ SECOND ;南北路口黄灯再亮THIRD: MOV DX,0EC0AH ;写入C口MOV AL,BOUT DX,AL ;南北红,东西绿MOV CX,0 ;长延时,外循环初值65536,同上MOV AX,2000H ;内循环初值2000HDELAY2: DEC AXJNZ DELAY2MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0EC0AH ;写入C口MOV AL,B ;南北红,东西黄OUT DX,ALMOV CX,3000HMOV AX,0100HLI2: ;短延时DEC AXJNZ LI2LOOP LI2MOV DX,0EC0AH ;C端口MOV AL,B ;东西黄灯灭,南北红灯继续亮 OUT DX,ALMOV CX,3000HMOV AX,0100HWEN2: DEC AXJNZ WEN2LOOP WEN2DEC BLJNZ FORTH ;东西路口黄灯再亮MOV DL,0FFHMOV AH,06HINT 21H ;查看是否有键按下JZ FIRST ;没有就重复MOV AH,4CHINT 21H ;返回DOSCODE ENDSEND START六.实验总结这是第一个微机实验,我和我们组另外两名同学在去实验室做实验之前,先上网查阅了相关资料,也和其他组的同学交流了一下各自的程序,在大概了解了程序之后我们去九教实验室进行实验。
虽然第一个实验并不难,但是在做的过程中我们还是遇到了各种问题,比如运行程序后实验箱上的灯不亮,经过我们小组同学讨论,求助助教之后发现可能是电脑和实验箱的连接出了问题。
解决了问题之后顺利的出了结果。
这次实验用的是8255芯片,经过这次实验,我了解了伤及调试的方法,以及出现一些常见的问题时应该如何解决。
结合微机课上学习的知识,对8255芯片的应用也有了更深入的理解。
实验二计数、定时系统的设计实现一.实验目的掌握8253的基本工作原理和编程方法。
二.实验内容(1)按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察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,方式0MOV AL,00010000BOUT DX,ALMOV DX,0EC00HMOV AL,0EH ;送初值EOUT DX,ALMOV CL,1READ: INC CL ;自加1CMP CL,0JZ STARTMOV DX,0EC00H ;读计数器0IN AL,DXMOV DL,ALMOV CL,ALCMP AL,9JG BIGADD DL,30H ;0到9,显示ASCII数字MOV AH,02HINT 21HMOV DL,0DHINT 21HJMP JUDGEBIG: ADD DL,37H ;大于9,显示ASCII字母MOV AH,02HINT 21HMOV DL,0DH ;加回车符,只显示一个符号 INT 21HJMP JUDGEJUDGE:MOV DL,0FFH ;有键按下回DOSMOV AH,06HINT 21HJZ READMOV AH,4CHINT 21HCODE ENDSEND START2、实验内容二程序:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0EC03H ;计数器0置控制字为工作方式3 MOV AL,00110110BOUT DX,ALMOV DX,0EC00HMOV AX,1000 ;向计数器0送初值OUT DX,AL ;先送低字节后送高字节MOV AL,AHOUT DX,ALMOV DX,0EC03H ;计数器1置控制字为工作方式3 MOV AL,01110110BOUT DX,ALMOV DX,0EC01H ;向计数器1送初值MOV AX,1000 ;先送低字节后送高字节OUT DX,ALMOV AL,AHOUT DX,ALNEXT: MOV DL,0FFH ;DOS 6号功能调用,按任意键返回 MOV AH,06HINT 21HMOV AH,4CH ;返回系统INT 21HCODE ENDSEND START六.实验总结这次实验我们做了可编程定时器/计数器,练习了对芯片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”,说明起始位出现,就开始接收所规定的数据位、奇偶校验位及停止位。
经过接收器处理,将停止位去掉,把数据位拼装成一字节数据,并且经奇偶校验无错误,才算是正确地接收到了一个字符。