8251串行通信实验
8251串行通信实验
一、实验目的
1. 掌握8251串行通讯方式的硬件接口电路及软件编程设计
二、实验设备
PC机器一台,TDN86/88+教学实验系统一台。
三、实验原理:
本实验需用两台TDN-86/51(TDN86/88)教学实验系统,并通过排线将两台仪器相连,其中1号机用做接收机,2号机用做发送机。实验目的是将2号机中的3000-3009H十个单元中的代码传送到1号机的3000-3009H单元中。
硬件连接线路图
1.8251的基本性能
8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能:
(1)通过编程,可以工作在同步方式,也可以工作在异步方式。
(2)同步方式下,波特率为0,64K,异步方式下,波特率为0,19.2K。
(3)在同步方式时,可以用5,8位来代表字符,内部或外部同步,可自动插入同步字符。
(4)在异步方式时,也使用5,8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。
(5)具有奇偶、溢出和帧错误检测能力。
(6)全双工,双缓冲器发送和接收器。
2.8251的内部结构及外部引脚
8251的内部结构图如图1-1所示,可以看出,8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。
8251的外部引脚如图1-2所示,共28个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。
D7,D0数据总线发送并?串TxD缓冲器缓冲器转换
TxRDRESETY发送控制电路TxECLK读/写控制TxCC/D#逻辑电路RD#
WR#接收串?并RxD内部总线缓冲器转换CS#
DSR#RxRDYDTR#调制/解调RxC接收控制电路控制电路CTS#SYNDETRTS#
图1-1 8251内部结构图
D2128D0D3D1RxDVccGNDRxC#D4DTR#D5RTS#8251D6DSR#D7RESETTxC#CLKWR#TxDCS #TxEC/D#CTS#RD#SYNDET/BD1RxRDY14TxRDY5
图1-2 8251外部引脚图
3. 8251在异步方式下的TXD信号上的数据传输格式
图1-3示意了8251工作在异步方式下的TXD信号上的数据传输格式。数据位与停止位的位数可以由编程指定。
D0D1???Dn由8251产生
发送器输出
TXD启动位数据位校验位停止位
图1-3 8251工作在异步方式下TXD信号的数据传输格式
四、实验内容:
1.串口自收发实验
根据第一个实验的两个程序设计出8251串口自发自收实验的实验程序,可参
考双机通讯实验的两个程序的格式。对于串行传输的数据格式,本实验有如下规定:一个字有一个逻辑“1”
起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为
9600baut。程序设计提示:可以用4000H,400AH十个单元作为需要发送数据的存贮单元,可以用3000H
,300AH十个单元作为接收数据的存贮单元。
程序代码如下:
1号机程序:
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,76H ;01110110,计数器1,先读低8位,再读高8位,模式
3,
二进制
OUT 43H,AL ;写入8253的控制字
MOV AL,0CH ;写入时间常数,低字节
OUT 41H,AL
MOV AL,00H ;写入时间常数,高字节
OUT 41H,AL
CLI ;关总中断,IF=0
CALL INIT ;8251复位操作
CALL DALLY ;调用延时
MOV AL,7EH ;8251方式字,一个停止位,偶校验,波特率因子16
OUT 81H,AL
CALL DALLY
MOV AL,34H ;8251控制字 bit2接收允许
OUT 81H,AL
CALL DALLY
MOV AX,0152H ;显示‘R’
INT 10H
MOV DI,3000H ;指针初值
MOV CX,000AH ;接收数据个数
A1: IN AL,81H ;读入8251状态字
AND AL,02H ;接收到一个数据了吗,00000010--检验RxRED 是否为1
JZ A1 ;否,继续检测数据是否接收
IN AL,80H ;是,从8251数据口读入数据
AND AL,7FH ;7位ASC?码最高位清零
MOV [DI],AL ;存内存
INC DI
LOOP A1
MOV AL,00H ;数据结尾,填00H
MOV SI,300AH
MOV [SI],AL
MOV AH,06H
MOV BX,3000H ;显示接收到的数据串
INT 10H ;显DS:BX开始的字符串直到00H STI ;开总中断 A2: JMP A2
INIT: MOV AL,00H
OUT 81H,AL ;放入8251的控制寄存器
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 80H,AL ;8251的数据口
CALL DALLY
OUT 80H,AL s
CALL DALLY
MOV AL,40H ;01000000,bit6为内不复位OUT 81H,AL ;复位操作
RET
DALLY : PUSH CX ;延时子程序调节传输速度MOV CX,3000H A3: PUSH AX
POP AX
LOOP A3
POP CX
RET
CODE ENDS
END START
2号机实验程序: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS
CODE SEGMENT ASSUME CS:CODE START: MOV AL,76H OUT 43H,AL
MOV AL,0CH
OUT 41H,AL
MOV AL,00H
OUT 41H,AL
CALL INIT
CALL DALLY
MOV AL,7EH
OUT 81H,AL
CALL DALLY
MOV AL,34H
OUT 81H,AL
CALL DALLY
MOV DI,3000H
MOV CX,000AH A1: MOV AL,[DI] CALL SEND ;调用SEND子程序CALL DALLY
INC DI
LOOP A1
A2: JMP A2
INIT: MOV AL,00H
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 80H,AL
CALL DALLY
OUT 80H,AL
CALL DALLY
MOV AL,40H ;复位操作
OUT 81H,AL
RET
DALLY : PUSH CX
MOV CX,3000H A4: PUSH AX
POP AX
LOOP A4
POP CX
RET
SEND: PUSH AX
MOV AL,31H ;00110001 RTS输出低电平,三个出错位复位
OUT 81H,AL ; TxEN为1,发送允许
POP AX
OUT 80H,AL A3: IN AL,81H
AND AL,01H ;00000001 TxRED是否为1,是则发送缓冲器内容,
可以发送
JZ A3
RET
CODE ENDS
END START
调试提示:
(1) 分析程序,画出相应的流程图,并写出8251的工作特征。
(2) 按图8,1将1、2号机连接起来。
(3) 两台机上电后,均输入程序,并要求2号机用E命令在3000-3009H十个单元中填入十个
ASC?码,如:3000:30 31 32 33 34 35 36 37 38 39
(4) 先使1号机程序运行,等待串行接收数据,然后再运行2号机程序,发送字串到串口,
当数据发送、接收完毕时,1号机显示相应的ASC?码字符串,如:R 0 1 2 3 4 5 6 7
8 9,用CTRL+C可使程序中断,返回监控状态。
(5) 检查1号机的3000-3009H单元,应和2号机一致。
2. 双机通讯实验。
本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将3000H,3009H内存单元中共10个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。
六、结果分析:
根据实验结果,分析如下:
1) 实验一中自发自收通信,有时收到乱码,可能因为波特率太高,且没有奇偶校
验,所以能收到数据,但收到不准确。
2) 乱码的改进方法可以是降低波特率,要降低波特率,可以令计数器分频大些。指导教师批阅意见:
成绩评定:
预习操作及记录数据处理结果与讨论思考题总分 (20分) (40分) 20分10分 10分
1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
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 同一控制口,在初始化编程时必须按一定的顺序。如 下面的流程图:
嵌入式系统实验报告-串行通信实验
《嵌入式系统实验报告》 串行通信实验 南昌航空大学自动化学院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);”,那么程序还能完全正常无误运行么?如果发生异常会出现什么现象?
UART串口通信设计实例
2.5 UART串口通信设计实例(1) 接下来用刚才采用的方法设计一个典型实例。在一般的嵌入式开发和FPGA设计中,串口UART是使用非常频繁的一种调试手段。下面我们将使用Verilog RTL编程设计一个串口收发模块。这个实例虽然简单,但是在后续的调试开发中,串口使用的次数比较多,这里阐明它的设计方案,不仅仅是为了讲解RTL编程,而且为了后续使用兼容ARM9内核实现嵌入式开发。 串口在一般的台式机上都会有。随着笔记本电脑的使用,一般会采用USB转串口的方案虚拟一个串口供笔记本使用。图2-7为UART串口的结构图。串口具有9个引脚,但是真正连接入FPGA开发板的一般只有两个引脚。这两个引脚是:发送引脚TxD和接收引脚RxD。由于是串行发送数据,因此如果开发板发送数据的话,则要通过TxD线1 bit接着1 bit 发送。在接收时,同样通过RxD引脚1 bit接着1 bit接收。 再看看串口发送/接收的数据格式(见图2-8)。在TxD或RxD这样的单线上,是从一个周期的低电平开始,以一个周期的高电平结束的。它中间包含8个周期的数据位和一个周期针对8位数据的奇偶校验位。每次传送一字节数据,它包含的8位是由低位开始传送,最后一位传送的是第7位。
这个设计有两个目的:一是从串口中接收数据,发送到输出端口。接收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态(见图2-10)。我们知道,串口中出现信号,是没有先兆的。如果出现了串行数据,则如何通知到输出端口呢?我们引入“接收有效”端口。“接收有效”端口在一般情况下都是低电平,一旦有数据到来时,它就变成高电平。下一个模块在得知“接收有效”信号为高电平时,它就明白:新到了一个字节的数据,放在“接收字节”端口里面。
8086接口实验
接口实验部分 实验1 简单I/O口扩展实验 一、实验目的 1、熟悉74LS273,74LS244的应用接口方法。 2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。 五、实验步骤 1、实验接线:(?表示相互连接) CS0 ?CS244; CS1?CS273;平推开关的输出K1~K8 ? IN0~IN7(对应连接); O0~O7?LED1~LED8。 2、编辑程序,单步运行,调试程序 3、调试通过后,全速运行程序,观看实验结果。 4、编写实验报告。 六、实验提示 74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如: K2置于L位置,则对应的LED2应该点亮。 八、程序框图(实验程序名: T244273.ASM)
九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start
实验2 存储器读写实验 一、实验目的 1.掌握PC机外存扩展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8086十六位数据存储的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。 四、实验原理介绍 本实验用到存储器电路 五、实验步骤 1、实验接线:本实验无需接线。 2、编写调试程序 3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。 六、实验提示 1、RAM区的地址为02000H,编程时可将地址设为01000H,则偏移地址为1000H。 2、如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。 3、626 4、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。本实验所进行的内存置数在程序中经常用到。计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。 七、实验结果 在断点1处内存区02000H~020FFH单元为00H;在断点2处偶地址为AAH,奇地址为55H 八、程序框图(实验程序名:RAM.ASM)
串口通信实验讲解
课程名称: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。
串行口通信实验 单片机实验报告
实验六串行口通信实验 一、实验内容 实验板上有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]
微机实验_可编程串行通信(8250)
学生实验报告
3FFH ×不用1.传输线路控制寄存器LCR(3FBH)如图10-1所示。 图10-1 2.除数寄存器DLL、DLH(3F8H,3F9H) 常用波特率及除数对照表如表10-2所示。 表10-2 除数寄存器 波特率(BIT/S) 高字节低字节 04H 17H 110 03H 00H 150 01H 80H 300 00H C0H 600 00H 60H 1200 00H 30H 2400 00H 18H 4800 00H 0CH 9600 3.中断允许寄存器IER(3F9H)如图10-2所示。 图10-2 4.MODEM控制寄存器MCR(3FCH)如图10-3所示。
图10-3 5.9针串口插座(DB-9)外形如图10-4所示,引脚说明如表10-3所示。 图10-4 表10-3 RS-232C信号说 9芯引脚号引脚名称 明 1 空 2 RXD 接收数据 3 TXD 发送数据 4 DTR 数据终端就绪 5 GND 信号地 6 DSR 数据装置就绪 7 RTS 发送请求 8 CTS 发送允许 9 保护地6.编程提示 (1)程序流程图如图10-5所示。
图10-5 程序流程图 四、实验参考程序 STACK SEGMENT PARA STACK 'STACK' DB 256 DUP(?) STACK ENDS CODE SEGMENT PARA PUBLIC 'CODE' ASSUME CS:CODE START PROC FAR PUSH DS ;保存PSP 地址 XOR AX,AX PUSH AX ;初始化8250为7位数据位,1位停止位,奇校 ;验,波特率1200,并设定为内部连接方式MOV DX,3FBH MOV AL,80H OUT DX,AL ;设传输线控制寄存器D7为1 MOV DX,3F8H ;设波特率为1200 MOV AL,60H OUT DX,AL MOV DX,3F9H MOV AL,0 OUT DX,AL MOV DX,3FBH ;设奇校验,1位停止位,7位数据位 MOV AL,0AH OUT DX,AL MOV DX,3FCH ;设MODEM控制寄存器发DTR和RTS信号,
单片机串行通信实验
单片机实验报告 实验名称:串行通信实验 姓名:高知明 学号: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