文档库 最新最全的文档下载
当前位置:文档库 › 8251实验

8251实验

8251实验
8251实验

浙江工业大学计算机学院

实验报告四

实验名称 8251实验

教师雷艳静

日期 2014.12.18

一、实验内容与要求

1.1 实验内容

从键盘输入一个字符,将其ASCII码加3后串行发送出去,再从串行口接收回来在屏幕上显示,实现自发自收。将输入的字符ASCII码加3输出,假设输入的字符是A,那么加3后输出的就是D,以此类推,可以得出如1.1表:

表1.1

要注意的是输出到Z结束之后,A,B,C三个字母没有输出,所以此处实验应该循环到字母表开始,将A,B,C输出。

1.2 实验要求

实验效果:

(1)从键盘上随意输出一个字母,将其ASCII码加3后显示在屏幕上;

(2)大小写要一致;

(3)输入输出的字母要与表1.1一样;

(4)由8253A计数器产生发送和接收时钟;由8251A的芯片功能实现自发自收。

(5)8253A的计数初值设为52,计数器0。8251A的发送数据是1个停止位,8个数据位,波特率因子为16。

二、实验原理与硬件连线

2.1 实验原理

TCP-USB平台上有一块8251A串行接口芯片。它是一种可编程的通用同步/异步接收发送器,其基本性能如下:

①可以工作在同步或异步串行通信方式。工作在同步方式时,波特率为

0~64Kbout/s。工作在异步方式时,波特率为0~19.2Kbout/s。

②具有独立的发送器和接收器,能以单工、半双工和全双工方式进行通信。

③同步方式时,字符可选择为5~8位,可用内、外同步,自动插入同步字符。

④异步方式时,字符可选择5~8位,波特率因子可选为1、16、64.

⑤提供基本的控制信号,可方便的与Modem相连。

8251A的内部组成中有发送器和接收器。它们可以发生/接收控制电路和管理所有的发送/接收操作。数据总线缓冲器可以使8251A与CPU之间传送数据、状态和控制信息。读写控制逻辑可以接收CPU送来的控制信号。8251A的外部引脚包括发送引脚、接收引脚,读写控制逻辑引脚。发送引脚用来发送数据,接收引脚用来接收外部数据。读写控制逻辑来控制数据的读写,这里时钟信号输入端在异步和同步两种方式的下频率的大小与波特率会有变化。

上面是8251A的硬件结构功能,通过对8251A的初始化编程,可以进行各种应用。8251A的控制字:①方式控制字,用来决定8251A工作在同步还是异步方式,以及数据格式。②操作命令字,可是8251A工作在规定的状态。③状态字,放在8251A的状态寄存器中,可由CPU读出。

2.2 硬件连线

实验中需要将8251A的方式控制字,操作命令字送到控制端口,要连接8251A芯片的端口,8251A的复位信号连接实验板上的复位信号。而实验中要8253计数器用于产生8251的发送和接收时钟,所以连接的端口是280H~287H,发送器也要相应的连接到8253的OUT端。8253芯片的时钟控制端也要与8251的时钟控制端相连。电路8251的控制口地址为2B9H,数据口地址为2B8H。8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率为1MHz,波特率若选1200,波特率因子若选为16,则计数器初值为52。8253的GATE端输入高电平(高电平有效)。8251的VCC 接高电平,GND、CTS两端接地。硬件连接图如图2.2

图2.2

三、设计思路、步骤和程序流程图

3.1 设计思路

①首先写好数据项,将数据项送ds保存,然后设置8253A计数器0和工作方式送8253端口b(即283H)保存。给8253计数器0送初值,计数器初值为52,8253A初始化完成。

②初始化8251,8251端口b(即2B9H)送dx保存。将al清0,以便之后数据送入。向8251控制端口送3个0,完成8251初始化。

③写8251的发送程序:首先向8251控制端口送40H,使其复位。设置停止位,数据位,波特率因子。由实验要求可知设置为1个停止位,8个数据位,波特率因子为16。

④向8251发送控制字允许其发送和接收,调用子程序out发送数据。显示提示信息。(这里lds指令是从存储器取出32位地址.),out子程序:向外发送字节的子程序

⑤发送程序:从8251端口b读取设备状态。利用test指令检测发送是否准备好。(测试第0位是否为1,为1则从键盘上读取一个字符。否,则跳转进行test指令继续测试。这里从键盘上读入的字符的ASCII码和27(27是ESC的ASCII码)比较,如果相等,则跳出。如果不是,则将字符加3之后与5ah(Z的ASCII码)比较,如果相等,

则跳转到子程序ll,如果不是则字符的ASCII码减26,然后跳转ll子程序,然后发送该字符。这里ll子程序是将字符送al保存,然后输出。

⑥因为发送需要一段时间,所以这里添加一段延时程序。

⑦接收程序:从5251端口b读取发送的字符。用test指令检测接收是否准备好,如果没有,跳回继续检测。准备好,从8251端口a接收。接收到后保存在al中调用2号功能,将接收到的字符显示在屏幕上。跳回发送程序。

⑧退出程序。

3.2 实验步骤

①仔细阅读实验内容和预期所要达到的执行效果。参考8253A芯片的各种工作方式和计数器功能。8251的发送和接收功能,控制字等内容,然后根据实验内容写自发自收功能程序。

②熟悉各个硬件连接方式与8253A和8251芯片的连接。

③根据设计思路写好程序流程图,根据流程图编程。编程过程中可以根据程序适当的修改程序流程图。

④运行并观察实验结果,看是否与实验内容,预期效果一致,如果一致,实验完成。如果不一致,修改程序并再次运行。

⑤根据得到的实验结果了解8251芯片可以实现的各种功能,并考虑它可以实现其他功能

3.3 程序流程图

如图3.3

开始

初始化8253A

初始化8251

显示提示信息

从8251控制口读状态字

测试第0位是否为1

是,从键盘接收字符是,结束

是否ESC

将键入的字符ASCII码加3

是Z的ASCII5ah吗

不是,减去26

通过8251数据端口发送字符

延时,发送字符

从8251控制端口读入状态字

接收器是否为1准备好

是,从8251数据口接收数据

将字符显示在屏幕上

四、程序清单与执行结果

4.1 程序清单

data segment

mess db 'you can play a key on the keybord!',0dh,0ah,24h

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov dx,283h ;设置8253计数器0工作方式

mov al,16h

out dx,al

mov dx,280h

mov al,52 ;给8253计数器0送初值

out dx,al

mov dx,2b9h ;初始化8251

xor al,al

mov cx,03 ;向8251控制端口送3个0

delay: call out1

loop delay

mov al,40h ;向8251控制端口送40H,使其复位

call out1

mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1

mov al,27h ;向8251送控制字允许其发送和接收

call out1

mov dx,offset mess ;显示提示信息

mov ah,09

int 21h

waiti: mov dx,2b9h

in al,dx

test al,01 ;发送是否准备好

jz waiti

mov ah,01 ;是,从键盘上读一字符

int 21h

cmp al,27 ;若为ESC,结束

jz exit

add al,03h

cmp al,5ah

jl ll

sub al,26

jmp ll

out dx,al ;发送

mov cx,40h

ll: mov dx,2b8h

out dx,al

s51: loop s51 ;延时

next: mov dx,2b9h

in al,dx

test al,02 ;检查接收是否准备好

jz next ;没有,等待

mov dx,2b8h

in al,dx ;准备好,接收

mov dl,al

mov ah,02 ;将接收到的字符显示在屏幕上int 21h

jmp waiti

exit: mov ah,4ch ;退出

int 21h

out proc near ;向外发送一字节的子程序out dx,al

push cx

mov cx,40h

gg: loop gg ;延时

pop cx

ret

jmp start

out1 endp

code ends

end start

4.2 执行结果

执行后的结果要与表1.1字母对应一致。如下图4.2

五、程序调试说明和实验感想

5.1 调试说明

这次实验的代码有很多问题。首先,这次代码有几个子程序,在写代码之前没有理清楚,所以反反复复不知道应该从哪儿开始写。完成之后忘记测试接收器是否准备好接收,所以程序不断出错。通过向别人请教后发现要先测试。读入字符后也要先检查是否是ESC键,这里比较的是ASCII码,但是字符每次加3后计算结果需要经过ASCII 码转换,大小写的ASCII码不一样,所以后面加减的数值是不一样的,所以这里转换调试出了很多问题,最后查清楚了字母表的ASCII码转换值才写出来,还有就是这里不能调用INT 21H的9号功能,因为9号功能输出的是字符串,而我们这里显示输出的是字符。

5.2 实验感想与收获

8251A作为串行通信接口,时序是非常重要的,输入输出之间的时间差必须控制得合适,否则就不能正常收发,这可以通过软件编程实现,当时序不符合时,可插入等待时间,即软件延时。仔细了解异步通信和同步通信的不同功能,这样才能加深8251A芯片的功能。

5.3 实验特色

前面的8251A的初始化程序应该和大家的都差不多,最主要不同的是就是大家字母显示比较输出的是小写字母,而我的是大写字母,当然这里的不同仅仅是加减数值的不同而已,因为大小写的ASCII码不一样,解题思路和过程其实都是一样的,只是显示的时候有点变化而已。

5.4 展望

这里的实验是根据8251A的串行自发自收的形式进行的,如果有时间的时候希望可以实验接收器和发送器分开来做,然后增加一些其他功能,如可以用到8255A的锁存器和缓冲器功能,发送器发送的时候可以检测接收器是否已将数据接收完毕,如果没有接收完则先

锁存要发送的数据,等到接收器接收完后再发送。这样每次发送器发送完数据后就不用写延时程序了,可以用8255A完成该功能。

8251串行通讯实验

安徽师范大学数计学院实验报告 专业名称11计科 课程微机原理 实验名称串行通信实验姓名 学号110704012

8251 可编程串行口与PC 机通讯实验 一、实验目的 (1) 掌握8251 芯片的结构和编程,掌握微机通讯的编制。 (2) 学习有关串行通讯的知识。 (3) 学习PC 机串口的操作方法。 二、实验说明 1、8251 信号线 8251 是CPU 与外设或Mode 之间的接口芯片,所以它的信号线分为两组:一组是用于与CPU 接口 的信号线,另一组用于与外设或Mode 接口。 (1)与CPU 相连的信号线: 除了双向三态数据总线(D7~D0)、读(RD)、写(WR)、片选(CS)之外,还有: RESET:复位。通常与系统复位相连。 CLK:时钟。由外部时钟发生器提供。 C/D:控制/数据引脚。 TxRDY:发送器准备好,高电平有效。

TxE:发送器空,高电平有效。 RxRDY:接收器准备好,高电平有效。 SYNDET/BRKDET:同步/中止检测,双功能引脚。 (2)与外设或Mode 相连的信号线: DTR:数据终端准备好,输出,低电平有效。 DSR:数据装置准备好,输入,低电平有效。 RTS:请求发送,输出,低电平有效。 CTS:准许传送,输入,低电平有效。 TxD:发送数据线。 RxD:接收数据线。 TxC:发送时钟,控制发送数据的速率。 RxC:接收时钟,控制接收数据的速率。 2、8251 的初始化编程和状态字 8251 是一个可编程的多功能串行通信接口芯片,在使用前必须对它进行初始化编程。初始化编 程包括CPU 写方式控制字和操作命令字到8251 同一控制口,在初始化编程时必须按一定的顺序。如 下面的流程图:

串口通信实验报告全版.doc

实验三双机通信实验 一、实验目的 UART 串行通信接口技术应用 二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 三、系统硬件设计 (1)单片机的最小系统部分 (2)电源部分 (3)人机界面部分

数码管部分按键部分 (4)串口通信部分 四、系统软件设计 #include #define uchar unsigned char #define uint unsigned int void send(); uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的数码管显示 sbit H1=P3^6; sbit H2=P3^7;

sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; uint m=0,i=0,j; uchar temp,prt; /***y延时函数***/ void delay(uint k) { uint i,j; //定义局部变量ij for(i=0;i

{ m=1; //KEY1键按下 return(m); } if(H2==0) { m=4; //KEY4键按下 return(m); } } } if(L2==0) { delay(5); if (L2==0) { L2=0;H1=1;H2=1; if(H1==0) { m=2; //KEY2键按下 return(m); } if(H2==0) { m=5; //KEY5键按下 return(m); } } } if(L3==0) { delay(5); if (L3==0) { L3=0;H1=1;H2=1; if(H1==0) { m=3; //KEY3键按下

串行口通信实验 单片机实验报告

实验六串行口通信实验 一、实验内容 实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。 二、实验目的 掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。 三、实验原理 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于- 0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。 为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。 单片机串行接口有两个控制寄存器:SCON和PCON。串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。由软件置位串行控制寄存器(SCON)的REN位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。 单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。如果用户要进行串行通信,可以调用WINDOWS的API 应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。 四、实验电路 [参考学习板说明书P27]

数学实验的设计与实践

数学实验的设计与实践 一、数学实验的界定 “数学实验(Mathematics Experiment)”是指类似于物理实验、化学实验等的科学实验,结合数学学科的特点,“数学实验”可以界定为:为获得某种数学理论,检验某个数学猜想,解决某类实际问题,而运用一定的物质手段,在数学思维活动的参与下,在特定的时空环境下进行的探索、研究活动。初中数学实验的设计研究是对数学实验的方法、手段、媒体等要素设计的研究。初中数学实验的实践研究是对教师在数学实验过程中的组织教学、误差控制、干扰因素等实验操作问题的研究。数学实验与物理、化学实验、生物实验相比,不仅需要动手,更需要动脑,思维量大是数学实验的基本特征。 二、数学实验的发展 随着科学的发展,尤其是计算机的出现,改变了数学只用纸和笔进行研究的传统方式,给数学工作者带来了最先进的工具,丰富和发展了“数学实验”的内涵,各种先进的计算机软件为学生创新性学习提供了空间,学生可以利用这些软件进行数学实验、数学探究,“发现”数学规律。学生通过观察、实验、归纳进行合理的数学猜想;体验数学思想方法的真谛。应该说,信息技术给数学实验教学注入了新的生命,使传统的手工制作、实地观察、制作模型等数学实验手段得以更新,为实验教学提供了新的物质条件,数学正在成为一门“实验科学”。 在国外,数学实验已经成为常见的教学形式,美国的中学有专门的数学实验室,英国的中学教材中有许多实验材料。美国全美数学教师协会(NCT)在1989年颁布的《课程与评价标准》中还写道:“让每一个普通教室成为计算机教室,让每一个学生随时随地可以学习和探索数学”。美国2000年《学校数学的原则和标准》要求,在课堂教学中,教师有责任产生良好的智力环境,促进学生进行认真的数学思考。教师应该选择和使用合适的课程材料,恰当的工具,先进的教学技术,以便支持学生的数学学习,组织适当的实验,让学生在实验与操作的过程中理解数学。由此可见,世界上许多国家在数学实验课程的研究等方面均已广泛开展。 在国内,1996年教育部立项的面向21世纪非数学专业数学教学体系和内容改革的总体构想中,把“数学实验”列为数学基础课之一。其目标是,不将数学看成先验的逻辑体系,而是将它视为一门“实验科学”,从实际问题出发,借助计算机等辅助工具,通过学生亲自设计和动手,体验解决问题的过程,从实验中去学习、探索和发现数学规律。中科院院士、数学教育学家姜伯驹在一篇文章中指出,“应该组织数学实验课程,在教师指导下,通过自己动手计算、体验解决问题的过程,探索某些理论或应用的课题,使新鲜想法借助数学软件可以迅速实现,从而在失败与成功中得到真知。这种方式,变被动的灌输为主动的参与,有利于培养学生的独立工作能力和创新精神。”近年来,数学实验在国内许多高校开展了实践探索。1997年后,各高校相继开设数学实验课程,结合数学软件、数学建模开发了相应的教材体系。2001年8月在无锡马山召开的“全国数学科学方法论与数学创新教育学术交流会”上,中国社会科学院哲学所林夏水先生在《计算机实验》报告中建议,可以在中学开设数学实验。随后,在中学数学教学中开展数学实验,也成为众多一线教师的一种探索,在各类数学教学研究刊物上,不断有“数学实验”的提法。如北京四中李晋渊、刘坤《数

串口通信实验讲解

课程名称:Zigbee技术及应用实验项目:串口通信实验指导教师: 专业班级:姓名:学号:成绩: 一、实验目的: (1)认识串口通信的概念; (2)学习单片机串口通信的开发过程; (3)编写程序,使单片机与PC通过串口进行通信。 二、实验过程: (1)根据实验目的分析实验原理; (2)根据实验原理编写C程序; (3)编译下载C程序,并在实验箱上观察实验结果。 三、实验原理: 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干条控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3-1所示。 图2-1串行通信过程 串行通信制式: (1)单工制式 这种制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。 (2)半双工制式 这种制式是指通信双方都具有发送器和接收器,即可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。

(3)全双工制式 这种制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时能发送。 三种制式分别如图3-2所示 图3-2串行通信制式 3.1硬件设计原理 CC2530有两个串行通信接口USART0和USART1,两个USART具有同样的功能,可已分别运行于UART模式和同步SPI模式。 CC2530的两个串行通信接口引脚图分布如表3-1所示 表3-1 CC2530串行通信口引脚图分布 本实验CC2530模块使用的是USART1的位置2,P1_6和P1_7。

串行通信实验报告

串行通信实验报告 班级学号日期 一、实验目的: 1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的程序编写方法。 二、实验要求 1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。 三、实验说明 通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。 连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。 四、程序 甲方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H

MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI

北理工微机原理实验三 使用8251A的串行接口应用实验

本科实验报告 实验名称:实验三使用8251A的串行接口应用实验 课程名称:计算机原理与应用实验实验时间: 任课教师:实验地点: 实验教师: 实验类型:□原理验证■综合设计□自主创新 学生姓名: 学号/班级:组号:学院:同组搭档:专业:成绩:

1. 实验目的 1) 掌握串行通信原理及半双工和全双工的编程方法; 2) 掌握用8251A接口芯片实现微机间的同步和异步通信; 3) 掌握8251A芯片与微机的接口技术和编程方法。 2. 实验原理和内容 8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。 1) 8251A内部结构 8251A通过引脚D0~D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。读写控制逻辑用来接收CPU的控制信号、控制数据传送方向。CPU对8251A的读写操作控制表如表3-4所示。 表3-4 CPU对8251A的读写操作控制表 2) 8251A的方式控制字和命令控制字 方式控制字确定8251A的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如图3-10所示。 命令控制字使8251A处于规定的状态以准备收发数据,格式如图3-11所示。 方式控制字和命令控制字无独立的端口地址,8251A 根据写入的次序来区分。 CPU对8251A初始化时先写方式控制字,后写命令控制字。

3) 状态寄存器 8251状态寄存器用于寄存8251A的状态信息,供CPU查询,定义如图3-12所示。TXRDY位:当数据缓冲器空时置位,而TXRDY引脚只有当条件( 数据缓冲器空?/CTS?TXE)成立时才置位。 溢出错误:CPU没读走前一个字符,下一个字符又接收到,称为溢出错误。

8251串行通讯实验

8251串行通讯实验 一.基本实验内容: 实现二台PC机之间的双机通讯。即甲机输入的键值发送到乙机CRT上显示,反之亦然。二原理图及连线: 1.8251CS连208~20FH (波特率2400) 2.9芯电缆对接二机的RS-232口 三.参考程序 D8251 EQU 208H Z8251 EQU 20aH DATA SEGMENT MESS DB '按下!后返回DOS.',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW 32 DUP() TOP DW STACK ENDS

CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV DX,Z8251 ;初始化8251 MOV AL,40H OUT DX,AL MOV CX,1000h LOOP $ MOV AL,0CEH ;设置为8个数据位,两个停止位波特率因子为16 OUT DX,AL ;无奇偶校验位 MOV CX,1000h LOOP $ MOV AL,25H ;设为请求发送,允许发送,允许接收状态 OUT DX,AL MOV CX,1000h LOOP $ ;NIT 8251 END REC: MOV DX,Z8251 MOV AH,02H WAIT9: IN AL,DX ;有数据送到吗 AND AL,AH JZ SEND ;没有数据送到则跳转至发送 MOV DX,D8251 ;有数据送到则从数据缓冲区读入 IN AL,DX MOV DL,AL

MOV AH,02H ;显示在屏幕上 INT 21H CMP AL,'!' JE ED ;接收到结束符则返回DOS JMP REC ;不是结束符则继续接收 ED: MOV AX,4C00H INT 21H SEND: MOV CX,1000h LOOP $ MOV DX,Z8251 MOV AH,01H WAIT8: IN AL,DX AND AL,AH JZ WAIT8 ;发送缓冲器不空则等待 MOV DL,0FFH MOV AH,06H INT 21H JZ REC ;无键按下则跳回"接收"处 MOV DX,D8251 ;有键按下则发送相应字符 OUT DX,AL CMP AL,'!' ;是结束字符则返回DOS JE ED1 JMP REC ;不是结束字符则跳回"接收"处ED1: MOV AX,4C00H INT 21H MAIN ENDP CODE ENDS

单片机串行通信实验

单片机实验报告 实验名称:串行通信实验 姓名:高知明 学号:110404320 班级:通信3 实验时间:2014-6-11 南京理工大学紫金学院电光系

一、实验目的(四号+黑体) 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD\RXD口; 3、了解MAX232芯片的作用; 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。他有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H)。发送缓冲器只能写入,不能读出,接受缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器。SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号昨接受或发送移位寄存器的位移时钟。TI与RI分别为发送完数据的中断标志,用来想CPU发中断请求。 三、实验内容 1、发送信号 1)C51程序: #include void main(void) { SCON=0X40; //设置串口为接受,REN=0 PCON=0; //波特率不倍频 REN=1; TMOD=0X20; //启动定时器1的方式2 TH1=0XFD; TL1=0XFD; //初值:0XFD TR1=1; //启动定时器1 while(1) {SBUF='U'; while(!TI); TI=0; //发送中断清0 }} 2)硬件图:

2、接受装置: 1)C51程序: #include char s[32]; void main(void) { char a,b=0; SCON=0X40; //设置串口为接受,REN=0 PCON=0; //波特率不倍频 REN=1; TMOD=0X20; //启动定时器1的方式2 TH1=0XFD; TL1=0XFD; //初值:0XFD TR1=1; //启动定时器1 a=32; for(;b

串行通信实验报告

串行通信实验报告 班级姓名学号日期 一、实验目的: 1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的程序编写方法。 二、实验要求 1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。 三、实验说明 通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。 连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。 四、程序 甲方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H

— MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI

串行接口实验报告

课程实验报告实验名称:串行接口 专业班级: 学号: 姓名: 同组人员: 指导教师: 报告日期:

实验二 1. 实验目的 (3) 2. 实验内容 (3) 3. 实验原理 (3) 4. 程序代码 (6) 5. 实验体会 (13)

实验二 1.实验目的 1.熟悉串行接口芯片8251的工作原理 2.掌握串行通讯接收/发送程序的设计方法 2.实验内容 通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。具体过程如下: 1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。 2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。 3.实验原理 1.8251控制字说明 在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。 另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。 2.8251方式指令(端口地址2B9H)

3.8251工作指令(端口地址2B9H) 4.8251状态字(端口地址2B9H) 5.8253控制字(283H) 6.8253计数初值(283H) 计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz 波特率=1200 波特率因=16 计数初值= 1000000/1200*16=52

8251可编程通信实验

一、实验目的与要求 了解8251的内部结构,工作原理;了解8251与8088的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。 二、实验逻辑原理图与分析 2.1 画实验逻辑原理图 AD0~AD15 ALE WR# RD#数据锁 存器 地址锁 存器 地址译 码器 8086 8253 D0~D7 OUT0 GATE0 CLK0 CS# A0 A1 WR# RD# A0 A1 VCC 2M D0~D7 C/D# TxC# CS# RxC# WR# TXD RD# RXD 8251 RS- 232C COM1 PC RXD TXD 2.2 逻辑原理图分析 8251A是可编程的串行通信接口芯片,它的主要特点如下: ①可用于串行异步通信,也可用于串行同步通信。 ②对于异步通信,可设定停止位为1位、 1位半或2位,数据位可在5-8位之间选择。 ③对于同步通信,可设为单同步、双同步或者外同步,同步

字符可由用户自己设定。 ④异步通信的时钟频率可设为波特率的1倍、16倍或64倍。 ⑤可以设定奇偶校验的方式,也可以不校验。校验位的插入、检出及检错都由芯片本身完成。 ⑥在异步通信时,波特率的可选范围为0~19.2千波特;在同步通信时,波特率的可选范围为0~64千波特。 ⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。 ⑧接收、发送数据分别有各自的缓冲器,可以进行全双工通信。 8251A内除具有可读可写的数据寄存器外,还具有只可写的控制字寄存器和只可读的状态寄存器。控制字寄存器寄存方式控制字和命令控制字。 三、程序分析 3.1程序功能 实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。 3.2程序分析 INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H OUT DX,AL

嵌入式系统实验报告-串行通信实验-答案

《嵌入式系统实验报告》 串行通信实验 南昌航空大学自动化学院050822XX 张某某 一、实验目的: 掌握μC/OS-II操作系统的信号量的概念。 二、实验设备: 硬件:PC机1台;MagicARM2410教学实验开发平台台。 软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境。 三、实验内容: 实验通过信号量控制2个任务共享串口0打印字符串。为了使每个任务的字符串信息(句子)不被打断,因此必须引入互斥信号量的概念,即每个任务输出时必须独占串口0,直到完整输出字符串信息才释放串口0。 四、实验步骤: (1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。 (2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。 (3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程UART0_uCOSII。(本范例在ADS文件夹中操作) (4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。 (5)在src组中的main.c中编写主程序代码。 (6)选用DebugRel生成目标,然后编译链接工程。 (7)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。 注意:CZ11安装在MagicARM2410实验箱的机箱右侧。 (8)PC机上运行“超级终端”程序(在Windows操作系统的【开始】->【程序】->【附件】->【通讯】->【超级终端】),新建一个连接,设置串口波持率为115200,具体设置参考图3.5,确定后即进入通信状态。 (9)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 (10)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。 (11)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,在超级终端上观察任务0和任务1的打印结果。 五、实验结论与思考题(手写,打印无效): 1、如果任务0删除语句“OSSemPost(UART0_Sem);”,那么程序还能否完全正常无误运行? 答:OSSemPost (OS_EVENT *pevent),这个函数是释放资源,执行后资源数目会加1。在该函数中,删除对应语句则使串口资源UART0_Sem始终无法释放。

实验五:串行接口输入输出实验

实验五串行接口输入/输出实验 一、实验目的 1、学习TEC-XP+教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口芯片的设置和使用方法。 二、实验说明 1、TEC-XP+教学计算机的I/O结构 TEC-XP+教学计算机配置有COM1和COM2两个串行接口,其中COM1是TEC-XP+默认的标准接口,与PC终端相连接,监控程序负责对COM1进行初始化和使用管理。COM2预留给用户扩展使用,监控程序不能识别COM2,也不对COM2进行任何操作,用户需要对COM2进行初始化和使用管理。COM1和COM2均由可编程串行通信接口芯片intel8251芯片构成。 2、Intel8251的组成及控制和使用方法 可编程串行通信接口芯片Intel8251支持同步和异步两种通信方式。在异步方式下,波特率为0~19.2Kbps,数据位可为5、6、7或8位,可设1个奇偶校验位,1个起始位,1个、1.5个或2个停止位。Intel8251内部有7个功能模块负责实现与CPU的数据交换以及与I/O设备的数据通信功能,内部有6个寄存器,其中与异步通信方式的有关的寄存器有5个,即模式寄存器、控制寄存器、状态寄存器、数据发送寄存器和数据接收寄存器。 模式寄存器的功能是设定intel8251的工作模式,控制寄存器的功能是控制intel8251的数据发送和接收等工作过程,状态寄存器的功能是反映intel8251数据发送和接收等工作的状态,各寄存器的格式如图5-1、图5-2和图5-3所示。当CPU把需发送的数据写入数据发送寄存器后,intel8251将自动把数据组成帧并逐位发送出去。Intel8251能自动完成数据接收操作,并把接收到的数据存放在数据接收寄存器中,CPU 从中读取即可。 图5-1模式寄存器格式图5-2 控制寄存器格式 图5-3 状态寄存器格式 CPU对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。对状态寄存器和数据接收寄存器只能读出,不能写入。Intel8251使用2个地址来访问内部的寄存器,其中用偶地址访问数据发送寄存

单片机串口通讯实验报告

实验十单片机串行口与PC机通讯实验报告 ㈠实验目的 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制; 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议; 3.了解PC机通讯的基本要求。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 ㈢实验内容及要求 利用8051单片机串行口,实现与PC机通讯。 本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC 机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。 ㈣实验步骤 1.编写单片机发送和接收程序,并进行汇编调试。 2.运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定 为1200。 3.运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符), 检查PC机所接收的字符是否与发送的字符相同。 4.将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检 查实验板LED数码管所显示的字符是否与PC机发送的字符相同。

㈤ 实验框图

源程序代码: ORG 0000H AJMP START ORG 0023H AJMP SERVE ORG 0050H START: MOV 41H,#0H ;对几个存放地址进行初始化 MOV 42H,#0H MOV 43H,#0H MOV 44H,#0H MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示 MOV TMOD,#20H ;设置为定时器0,模式选用2 MOV TL1, #0E6H ;设置1200的波特率 MOV TH1, #0E6H SETB TR1 ;开定时器 MOV SCON,#50H ;选用方式1,允许接收控制 SETB ES SETB EA ;开中断 LOOP: ACALL SOUT ;键盘扫描并发送,等待中断 SJMP LOOP SERVE JNB RI,SEND ;判断是发送中断还是接收中断,若为发送中 断则调用 ACALL S IN ;发送子程序,否则调用接收子程序 RETI SEND: CLR TI ;发送子程序 RETI SIN: CLR RI ;接受子程序 MOV SCON, #00H MOV A, SBUF ;接收数据 LCALL XS ;调用显示子程序 RETI 子程序: SOUT: CLR TI ;清发送中断标志位 LCALL KEY ;调用判断按键是否按下子程序 MOV A,R0 ;将按键对应的数字存入A MOV SBUF,A ;输出按键数字给锁存 RET KEY: MOV P1,#0FFH ;将P1设置为输入口 MOV A, P1 CPL A ;将A内值取反

虚拟实验的教学与实践

虚拟实验的教学与实践 随着科技的不断发展,特别是计算机网络的普及,大学生的知识体系在广度上有了很大提升。为了进一步拓展大学生知识结构的深度,在理论教学构建了完整知识体系的基础上,实验教学显得尤为重要。但是由于各方面条件的限制,实验室的设备和规模都难以满足广大学生的实验需求,目前很多还是以小组或者演示的形式让学生熟悉具体实验过程,学生能独立参与实验的机会非常少,特别是很难接触到国际前沿的实验技术和方法。 虚拟实验是以虚拟仪器为基础,采用计算机数字化实验仪器编程来实现,通过接口设备,完成传统实验设备的功能,因此在教学活动中应用日益广泛。常用的虚拟仪器的开发软件包括美国国家仪器公司的Labview和LabWindows/CVI,美国Tektronis公司的Tek-TNS软件等,其中Labview和LabWindows/CVI软件采用图形化编程,学习操作简单,应用最为广泛,非常适合于本科生教学。目前虚拟实验系统已经在国内外高校的机械、电子、生物、物理等教学科研领域中发挥了重要作用。国外麻省理工学院微电子系的Alamo教授开发的Weblab虚拟实验系统较早投入教学使用,取得了很大成功。国内包括清华大学、上海交通大学等院校都开设了相关讨论课程。 通过虚拟实验教学,在有限的教学资源条件下,最大限度地发挥学生的创造力和能动性,培养科学研究兴趣。课题组结合热物性测量实验,探索了虚拟实验技术和应用,从而为今后的教学改革积累了一定的经验。 二、实验系统的主要内容 1.传统测量系统 图1(a)显示了该套系统的主要组成,包括样品、信号发生器、数字万用表、锁相放大器等仪器。传统实验条件下,学生操作顺序见图2所示。先调整信号发生器发生频率,等数值稳定以后,读取数字

实验1 串行通信实验

计算机通讯网络 随堂实验报告 学院计算机与电子信息学院 专业电子信息工程班级电信08 -1班 姓名程跃斌学号 08034030117 指导教师左敬龙 实验报告评分:_______

实验一串行通信实验 一.实验目的: 1.认识计算机具有串行通信的功能。 2.理解串行通信中数据位、校验位的关系。 3.能利用软件开发具有串行通信功能的程序。 二.实验原理: 计算机上的 机来说是发送数据,对另一台机就是接收数据,所以收、发数据线要换接。连接方法如下。 9芯对9芯串口 A机B机 2●←→●3 3●←→●2 5●←→●5 三.实验仪器: 计算机两台,串行通信电缆一条。 四.实验步骤: 步骤一:认识计算机上的串口,并将串口通信电缆正确的接在两台计算机上; 步骤二:通过windows已有的程序“超级终端”(打开方法:程序——附件——通信——超级终端)通过串行电缆初步认识计算机具有串行通信的功能; 步骤三:修改连接参数,测试建立的连接是否可以正常通信,如果出现异常,分析产生的原因; 步骤四:自己编程实现串口通信。在任何编程语言平台下都可以实现串口通信。同学们可根据自己熟悉的语言来编制串口通信程序。 实验程序流程图:

五.实验数据与分析: COM1参数设置:在这个对话框中,可以选择通信双方采用的通信速率、数据位的个数、奇偶校验位、停止位和可以使用的流量控制方法。不管设置什么参数,必须保证两台计算机的所有参数相同,而且数据传输速率不能超过115200bit/s。设置参数完毕后,单击“确定”按钮。 图1 COM1参数设置 通信双方可以互相发送一些字符。在缺省情况下,发送端发送的字符在本地不会显示。如果希望使用本地回显功能,则单击“文件”菜单,选择“属性”命令,在打开的窗口中选择“设置”选项卡,并单击“ASCII码设置”,打开如图2所示的对话框;选中“本地显示键 入的字符(E)”复选框,返回到超级终端窗口中,再发送一些字符,观察结果。

(仅供参考)微机原理实验三

实验三使用8251A的串行接口应用实验 一、实验目的 1) 掌握串行通信原理及半双工和全双工的编程方法。 2) 掌握用8251A 接口芯片实现微机间的同步和异步通信。 3) 掌握8251A 芯片与微机的接口技术和编程方法。 二、实验原理和内容 8251A 是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。 1)8251A 内部结构 8251A 通过引脚D0~D7 和系统数据总线直接接口,用于和CPU 传递命令、数据、状态信息。读写控制逻辑用来接收CPU 的控制信号、控制数据传送方向。CPU 对8251A 的读写操作控制表如表3-4 所示。 方式控制字确定8251A 的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如图3-10 所示。 命令控制字使8251A 处于规定的状态以准备收发数据,格式如图3-11 所示。 方式控制字和命令控制字无独立的端口地址,8251A 根据写入的次序来区分。 CPU 对8251A 初始化时先写方式控制字,后写命令控制字

3)状态寄存器 8251 状态寄存器用于寄存8251A 的状态信息,供CPU 查询,定义如图3-12 所示。 TXRDY位:当数据缓冲器空时置位,而TXRDY引脚只有当条件( 数据缓冲器空? /CTS?TXE)成立时才置位。 溢出错误:CPU 没读走前一个字符,下一个字符又接收到,称为溢出错误。 帧错误:在字符结尾没检测到停止位,称为帧错误。 4)PC 机寄存器的端口地址

其中:线路控制寄存器第七位:DLAB=0;线路控制寄存器第七位:DLAB=1。 5)波特率和除数因子对照表 232标准的机械、电气规范。 6)实验连接方法 按图连接好电路,其中8254 计数器用于产生8251 的发送和接收时钟,TXD 和RXD 连在一起。

串行通信实验16550

(一)实验名称 串行通信实验16550 (二)实验内容 1)串行通讯基础实验。编写程序,向串口连续发送一个数据(55H),将串口输出连 接到示波器上,用示波器观察数据输出产生的波形。 2)串口自发自收应用实验。编写程序,将一串数据发送至串口,再接收回来显示。(三)实验目的 1)学习和掌握有关串行通信的知识 2)学习和体会16550的工作原理、工作方式,利用其进行应用编程 3)学习和掌握PC机串口的操作方法 (四)实验日期、时间和地点 2011—1—4 6,7节 2011-1-7 1,节 微机高级实验室 (五)实验环境(说明实验用的软硬件环境及调试软件) PC机一台,PIT-B实验箱一套,TDPIT、td-debug软件环境一套 (六)实验步骤(只写主要操作步骤,要简明扼要,还应该画出程序流程图或实验电路的具体连接图) 一:

二:自发自收

(七)实验结果(经调试通过的源程序的所有代码,应包含必要的说明文字) MY_03F8 EQU 0E480H MY_03FB EQU 0E483H MY_03FD EQU 0E485H DATAS SEGMENT NUM DB 55H;此处输入数据段代码 DATAS ENDS STACKS SEGMENT DW 10 DUP(0);此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;初始化16550 MOV DX,MY_03FB ;16550控制寄存器地址送DX MOV AL,80H ;置DLAB=1,设置除数寄存器 OUT DX,AL CALL DALLY MOV DX,MY_03F8 ;除数寄存器地址送DX MOV AX,03C0H ;波特率为1200bit/s OUT DX,AL CALL DALLY MOV AL,AH INC DX OUT DX,AL CALL DALLY MOV DX,MY_03FB ;16550控制寄存器地址送DX MOV AL,0BH ;8位数据位,奇校验,1位停止位 OUT DX,AL CALL DALLY CALL GO MOV AH,4CH INT 21H GO PROC NEAR LOP1: MOV DX,MY_03FD ;通信状态寄存器地址送DX IN AL,DX CALL DALLY

实验7串行接口输入输出实验

北京林业大学 11学年—12学年第 2 学期计算机组成原理实验任务书 专业名称:计算机科学与技术实验学时: 2 课程名称:计算机组成原理任课教师:张海燕 实验题目:实验七串行接口输入输出实验 实验环境:TEC-XP+教学实验系统、PC机 实验内容 1.串行接口输入输出; 2.串行接口扩展。 实验目的 学习串行口的正确设置与使用。 实验要求 1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。 2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果; 3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 必要知识 串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲

寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。 串行接口用于执行数据的输入输出操作。一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。接口芯片与输入输出设备之间的数据传送过程无需另外管理,会自动完成。 教学计算机使用8位的IO端口地址,安排在IN和OUT指令的低位字节,指令的高8位用作指令操作码,16为的指令编码全部占满,已经不能再指定要使用的通用寄存器,最终决定用对IN和OUT指令默认使用运算器中的R0完成输入输出操作。IO地址端口的高4为(最高一位的值一定为1)用于通过译码电路产生接口芯片的8个片选信号,低4位用于选择一个芯片内最多16个寄存器。教学计算机中,只为每个串行口芯片地址分配了两个地址,第一路串行接口的端口地址为80H/81H,第二路串行接口的端口地址可以由用户从90/91~F0/F1这8对中选择,把译码器的一个输出连接到接口芯片的片选信号引脚。两个端口地址如何能够按照选择接口芯片内的4个寄存器呢?请注意,4个寄存器中的两个只用于输入,仅对IN 指令有用,另外两个只用于输出,仅对OUT指令有用。2个端口地址和2条输入输出指令有如下4种组合,分别实现如下4项功能: IN 80:完成从接口芯片输入数据缓冲器读出8位数据并传送到R0寄存器低位字节; OUT 80:完成把R0寄存器低位字节的8位数据写入到接口芯片的输出数据缓冲器; IN 81:完成从接口芯片状态寄存器读出8位接口状态信息并传送到R0寄存器低位字节; OUT 81:完成把R0寄存器低位字节的8位命令信息写入到接口芯片的命令寄存器。 可以看到,偶数地址用于输入输出数据,奇数地址用于输入输出状态或命令信息。 实验说明 1.TEC-XP+配置了两个串行接口COM1 和COM2,其中COM1 口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC 机或终端相连;而COM2 口,留给用户扩展用。

相关文档