8251串行通信实验

8251串行通信实验
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 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

串口通信实验报告全版.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键按下

实验报告-实验一IAR串口通信

实验报告-实验一IAR串口通信 以下是为大家整理的实验报告-实验一IAR串口通信的相关范文,本文关键词为实验,报告,IAR,串口,通信,实验,平台,使用,串口,通信,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。 实验一平台使用及串口通信 本次实验报告在下课后3天内上交!一、实验目的 (1)了解物联网实验 (2)箱熟悉IAR开发平台

(3)能够读懂原理图中有关传感器的接口电路(4)能够建工程项目并编写程序(5)掌握串口通信 二、实验设备 仿真器1台,gec_cc2530板1块,usb连接线1根。 三、实验内容 使用cc2530通过uART接收控制命令,完成LeD的控制。 四、实验代码 完善红色注释部分代码: #include#include #defineuintunsignedint#defineucharunsignedchar #defineRLeDp1_0#definegLeDp1_1#defineYLeDp1_4 voidinituART0(void); ucharRecdata[3]=%ucharRxTxflag=1; uchartemp; uintdatanumber=0;uintstringlen; /*******************************@brief串口(uART0)初始化******************************/voidinituART0(void){ cLKconcmD//设置系统时钟源为32mhZ晶振while(cLKconsTA//等待晶振稳定 cLKconcmD//设置系统主时钟频率为32mhZpeRcFg=0x00;//位置1p0口p0seL=0x3c;//p0用作串口

硬件接口应用实验

微机原理与接口技术 实验报告 实验内容:硬件接口应用实验 组别:x 姓名:xxx 班级:xxxxxx 学号:xxxxxx

实验一 8259中断控制器实验 一、实验目的 1、掌握8259的工作原理。 2、掌握编写中断服务程序的方法。 3、掌握初始化中断向量的方法。 二、实验内容 用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。 1、实验设备 微机实验教学系统实验箱、8086CPU模块 2、连接线路 3、编辑程序,编译链接后,调试程序。 4、调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序 停在中断服务程序内的断点处。 三、实验方法 1、设计思路 连线图:

2、程序流程图 图1 8259初始化流程图 四、实验源程序 CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H ;程序初始化 MOV AX,13H OUT DX,AX ;写ICW1 :上升沿触发,单片8259,要写ICW4 MOV DX,4A2H MOV AX,80H OUT DX,AX ;写ICW2 MOV AX,01 OUT DX,AX ;写ICW4 MOV AX,0 OUT DX,AX ;写OCW1 MOV AX,0 MOV DS,AX MOV SI,200H MOV AX,OFFSET HINT

MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI ;开中断,设置IF=1 JMP $ HINT: ;中断服务程序 XOR CX,0FFH MOV DX,4B0H MOV AX,CX OUT DX,AX ;输出高低电平控制LED等的亮灭 MOV DX,4A0H MOV AX,20H OUT DX,AX IRET ;中断返回 CODE ENDS END START 五、实验结果 每按一次单脉冲发生器,发光二极管点亮、熄灭交替进行。 六、思考题 1、将P+连线连接到IR1—IR7任意一个;重新编写程序。 思路:将P+接在IR1上,只要在源程序的基础上,把写ICW2的控制字改为81H,再把向量的入口地址改为0204H即可。 实验现象:每按一次单脉冲发生器,发光二极管点亮、熄灭交替进行。 2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。 思路:将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断 无法得到响应。 CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H ;写ICW1 MOV AX,13H ;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H ;写ICW2 MOV AX,80H ;IR0的中断向量码为80H OUT DX,AX MOV AX,01 OUT DX,AX ;一般嵌套,非缓冲方式,非自动EOI MOV AX,01H ;写中断屏蔽字OCW1 OUT DX,AX ;屏蔽IR0中断中断向量存放在(0000H:0204H)

单片机串行通信实验报告(实验要求、原理、仿真图及例程)

《嵌入式系统原理与实验》实验指导 实验三调度器设计基础 一、实验目的和要求 1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。 2.掌握Keil与Proteus的联调技巧。 3.掌握串行通信在单片机系统中的使用。 4.掌握调度器设计的基础知识:函数指针。 二、实验设备 1.PC机一套 2.Keil C51开发系统一套 3.Proteus 仿真系统一套 三、实验内容 1.甲机通过串口控制乙机LED闪烁 (1)要求 a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时 闪烁,关闭所有的LED。 b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。 i.甲机发送“A”,控制乙机LED1闪烁。 ii.甲机发送“B”,控制乙机LED2闪烁。 iii.甲机发送“C”,控制乙机LED1,LED2闪烁。 iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。 c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。两机的程序要 分别编写。 d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下: i.设置串口模式(SCON) ii.设置定时器1的工作模式(TMOD) iii.计算定时器1的初值 iv.启动定时器 v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。

(2)电路原理图 Figure 1 甲机通过串口控制乙机LED闪烁的原理图 (3)程序设计提示 a.模式1下波特率由定时器控制,波特率计算公式参考: b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。 2.单片机与PC串口通讯及函数指针的使用 (1)要求: a.编写用单片机求取整数平方的函数。 b.单片机把计算结果向PC机发送字符串。 c.PC机接收计算结果并显示出来。 d.可以调用Keil C51 中的printf来实现字符串的发送。 e.单片机的数码港显示发送的次数,每9次清零。

8250串口

一、实验目的 1、熟悉串行通信的一般原理和8250的工原理。 2、了解RS--232串行接口标准及连接方法。 3、掌握8250芯片的编程方法。 二、实验内容 在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,如通讯正确则下位机返回一个同样的字符,如果不正确,则无返回或不相同。 三、实验原理介绍 实验原理图见8250串行接口电路。由MAX232完成RS232电平和TTL 电平的转换,由8250完成数据的收发。8250内部有10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。 四、实验步骤 1、实验接线 利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2) 2、编写程序。 3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。 4、实验箱退出86编译系统,启动实验六的上位机驱动程序 T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。欲退出T6UP.EXE,按回车键。 五、实验提示 实验中,通讯波特率选用9600bps。上下位机均采用查询方式。8250的端口地址为0480起始的偶地址单元。 实验中,上位机向下位机发送一个字符,下位机将接收到的字符返回。事实上这就实现了串口通信的基本过程。掌握了此实验中的编程方法再编制复杂的串行通信程序也就不难了。 串行通信和并行通信是计算机与外围设备进行信息交换的基本方法,二者有不同的特点。简而言之,前者电路及连线简单,最少用三根线就可以实现串口通信,但通信速率慢,适用于长距离慢速通信;后者电路及连线复杂,成本较高,但通信速率快,适用于短距离高速通信。 六、程序框图8250.ASM

串口通信实验

实验报告(附页) 一、实验内容 1、串口通信设置: 波特率为115200bps, 数据位为8位,停止位为1位; 2、按键传输数据到串口助手显示; (1)按1,串口显示:“This is Key 1”; D5亮 (2)按2,串口显示:“This is Key 2”; D6亮 (3)按3,串口显示:“This is Key 3”; D7亮 (4)按4,串口显示:“This is Key 4”; D8亮 (5)按“*”Key ,串口显示“All LEDs is Closed” ; 灯全灭; (6)按其它Key,串口显示:”Wrong Key” 3、通过串口小肋手,向实验设备发送信息: 发送字符:”D5”、”D6”、”D7”、”D8” ,则对应的D5、D6、D7、D8亮;若发送“5”、“6”、“7”、“8”则对应的D5、D6、D7、D8灭,如发送其它字符,则在串口助手中显示:“Error Code”; 二、实验方法 (1)利用参考代码构建工程。 (2)编写实验要求的实现实验要求的功能。 (3)连接实验箱,写入程序,测试代码。 三、实验步骤 1)正确连接JLINK 仿真器到PC 机和stm32 板,用串口线一端连接STM32 开发板,另一端连接PC 机串口。 2)用IAR 开发环境打开实验例程:在文件夹05-实验例程\第2 章\2.3-uart 下双击打开工程uart.eww,Project->Rebuild All 重新编译工程。 3)将连接好的硬件平台通电(STM32 电源开关必须拨到“ ON”),接下来选择Project->Download and debug 将程序下载到STM32 开发板中。4)下载完后可以点击“Debug”->“Go”程序全速运行;也可以将STM32 开发板重新上电或者按下复位按钮让刚才下载的程序重新运行。 5)通过串口小助手检验实验结果 四、实验结果 Main函数 #include"stm32f10x.h"

UART串口通信实验报告

实验四 UART 串口通信 学院:研究生院 学号:1400030034 姓名:张秋明 一、 实验目的及要求 设计一个UART 串口通信协议,实现“串 <-->并”转换功能的电路,也就是 “通用异步收发器”。 二、 实验原理 UART 是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实 现全双工传输和接收。在嵌入式设计中,UART 用来主机与辅助设备通信,如汽 车音响与外接AP 之间的通信,与PC 机通信包括与监控调试器和其它器件,如 EEPROM 通信。 UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一 位接一位地传输。 其中各位的意义如下: 起始位:先发出一个逻辑” 0的信号,表示传输字符的开始。 资料位:紧接着起始位之后。资料位的个数可以是 4、5、6、7、8等,构成 一个字符。通常采用ASCII 码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“ 1的位数应为偶数(偶校验)或奇数 (奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是 1位、1.5位、2位的高电 平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能 在通信中两台设备间出现了小小的不同步。 因此停止位不仅仅是表示传输的结束, 并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步 的容忍程度越大,但是数据传输率同时也越慢。 空闲位:处于逻辑“ 1状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol )。 一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为 120 字符/秒,传输使用256阶符号,每个符号代表8bit ,则波特率就是120baud,比 特率是120*8=960bit/s 。这两者的概念很容易搞错。 三、 实现程序 library ieee; use ieee.std 」o gic_1164.all; end uart; architecture behav of uart is en tity uart is port(clk : in std_logic; rst_n: in std 」o gic --系统时钟 --复位信号 rs232_rx: in std 」o gic rs232_tx: out std 」o gic --RS232接收数据信号; --RS232发送数据信号;); use ieee.std_logic_ un sig ned.all;

串行通信实验报告

串行通信实验报告 班级学号日期 一、实验目的: 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

UART串口通信实验报告

实验四UART串口通信 学院:研究生院学号:1400030034姓名:张秋明 一、实验目的及要求 设计一个UART串口通信协议,实现“串<-->并”转换功能的电路,也就是“通用异步收发器”。 二、实验原理 UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。 UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。 其中各位的意义如下: 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。 资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为120字符/秒,传输使用256阶符号,每个符号代表8bit,则波特率就是120baud,比特率是120*8=960bit/s。这两者的概念很容易搞错。 三、实现程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity uart is port(clk : in std_logic; --系统时钟 rst_n: in std_logic; --复位信号 rs232_rx: in std_logic; --RS232接收数据信号; rs232_tx: out std_logic --RS232发送数据信号;); end uart; architecture behav of uart is

实验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)”复选框,返回到超级终端窗口中,再发送一些字符,观察结果。

最新串行通信实验报告整理

串行通信实验报告 班级姓名学号日期 一、实验目的: 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

实验六 双PC机串口通信

实验六双PC机串口通信 一、实验目的和要求: 1、熟悉串口通信的基本原理,掌握RS-232接口标准以及DB9的主要引脚功能。 2、初步掌握可编程串行接口芯片的使用方法。 3、掌握用汇编语言进行串口编程的方法。 4、熟悉汇编语言程序的上机过程。 二、实验环境 1、硬件:PC机和RS-232接口连线。 2、软件:(1)汇编语言程序开发平台:Win2000/WinXP+集成开发工具VisualASM 1.0。 (2)汇编语言程序测试平台:Win98/DOS。 三、实验内容 甲机:接收键盘上输入的字符并通过串口发送到乙机。 乙机:接收甲机发送来的字符并显示到屏幕上。 四、实验原理 1、异步串行通信 串行通信是CPU与外部设备之间进行信息交换的基本方法。采用串行通信时,构成一个字符或数据的各位按时间先后,从低位到高位一位一位地传送,与并行通信相比,它占用较少的通信线,因而使成本降低,而且适合较远距离的传输。串行通信常作为计算机与低速外设或计算机之间传输信息用。当传输距离较远时,可采用通信线路(如电话线、无线电台等)。由于它占用的通信线路较少,所以应用较广泛。在使用时,发送及接收端必须具备并行-串行转换电路。图1是串行通信的示意图。 图1 串行通信示意图 串行通信包括异步通信和同步通信两种通信方式。一般情况下使用串行异步通信,本实验采用的就是这种通信方式。在异步串行通信中,每个字符作为一个独立的整体进行发送,字符之间的时间间隔可以是任意的。为了实现同步,需要在每个字符的第一位前加1位起始位(逻辑1),并在字符的最后一位后加1位、1.5位或2位停止位(逻辑0)。异步通信格式如图2所示。 图2 异步通信格式 2、RS-232-C接口标准 EIA RS-232-C是一种串行异步通信接口标准,其常用的连接器有两种:DB-25型和DB-9

相关文档
最新文档