文档库 最新最全的文档下载
当前位置:文档库 › 实验四 串并转换与串行通信

实验四 串并转换与串行通信

实验四 串并转换与串行通信
实验四 串并转换与串行通信

单片机实验报告

题目: 实验四串并转换和串行通信班级:0310405 姓名:左立刚

学号: 031040522 指导老师:高林

时间: 2013年6月8日

实验四(一)串并转换实验(2学时)

一、实验目的

⑴掌握8031串行口方式0工作方式及编程方法。

⑵掌握利用串行口扩展并行I/O通道的方法。

二、实验内容

(1)在实验箱上完成:

利用8031串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个共阳极数码显示器,在数码显示器上循环显示8031串行口输出的0~9这10个数字。

(2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。

所用元器件:单片机AT89C51、串入并出移位寄存器74LS164、数码管

7SEG-COM-CAT-GREEN(BLUE)

三、实验步骤

⑴将串并单元DATA插孔接P3.0插孔。

⑵将串并单元CLK插孔接P3.1插孔。

⑶将串并单元CLR插孔接地址线A9下方CLR插孔。上电时对164复位。

⑷执行程序

⑸在串并单元数码管上循环显示0~9这10个数字。

四、程序框图

五、proteus 仿真图

data clk

clk

data data a

h

a g

b c d e f b c d e f g XTAL2

18

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C51

SRG8R

C1/->

&1D

13

2

456108

1112913

U2

74LS164

六、程序清单:

#include

#define uchar unsigned char #define uint unsigned int uint num,i=0; //全局变量定义

uchar code Table[]={0x03,0x9F,0x25,0x0D,0x99,

0x49,0x41,0x1F,0x01,0x09}; //共阳数码管字段 void main()

{ TMOD=0x01; //定时器T0方式1 TH0=(65536-50000)/256;//定时器赋初值,定时100ms ,(12MHz 晶振)

TL0=(65536-50000)%256;

EA=1; //总中断打开

ET0=1; //开定时器0中断

TR0=1; //启动定时器0

SCON=0x00;

while(1); //程序停在此处,等待下一次中断

}

void T0_() interrupt 1 //中断服务子程序

{

TH0=(65536-50000)/256; //定时器重赋初值

TL0=(65536-50000)%256;

num++;

if(num==10) //定时1S时间到

{

num=0;

i++;

if(i==10) i=0; //数码管反复扫描

SBUF=~Table[i]; //取反,送数码管显示数字

}

}

实验四(二)单片机与PC机串行通信实验(2学时)一、实验目的

⑴掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。

⑵了解实现串行通信的硬环境,数据格式的协议,数据交换的协议。

⑶了解PC机通信的基本要求。

二、实验内容

(1)在实验箱上实现:

利用8031单片机串行口,实现与PC机通信。将“PC机发送程序”上的字符(0~F)显示到实验仪的数码管上。

(2)用Proteus软件参照实验电路连线并仿真运行,得出与实验箱上相同的软件仿真结果。

所用元器件:单片机AT89C51、8位锁存器74LS273或74LS373、3-8译码器74LS138、排阻或电阻RESPACK-8(RES)、或非门74LS02、共阳极六合一数码管7SEG-MPX6-CA以上是“时钟显示实验”电路。

另外增加:TTL和RS232电平转换芯片MAX232、RS232串口COMPIM、串口通信仿真器VIRTUAL TERMINAL

三、实验电路及连线

实验时需将8032串行接收信号线P3.0(RXD)连到实验仪右上角RX0插孔;8031的P3.1(TXD)连到实验仪右上角TX0插孔上;使用通信电缆连接PC机与实验仪。

四、程序流程图

五、实验步骤

注意:进行本实验时请把通信选择开关拨至最左面一位。

(1) 若在联机状态,请先装载程序代码至实验系统(生成HEX文件后,点击“start/stop debug session”按钮将程序装载到实验箱中);

(2) 装载完毕后,点击“start/stop debug session”按钮,此时将退出Debug环

境,并结束对实验箱串口的占用,将实验系统的通信选择开关拨至最左边(波特率2400bps)并按复位;

(3) 开始运行程序,在实验系统键盘上按下[EXEC]键(实验箱键盘右上角);

(4) 打开Dais软件工作目录(如:C:\Dais),找到并运行“PC发送程序”,选择

与实验仪相连的串口(本实验使用的是默认波特率2400bps),单击“打开串口”

按钮;

(5) 从“PC发送程序”单击0~F按钮发送相关字符,相应的数字会显示在实验系统的数码管上。

六、参考仿真电路图:(显示字符的ASCII码值)

P00P07

P00P07A0A7

A0A5P00P07P00P071A H

A H

6

1

TXD RXD RST ALE ALE

CLK

B C D E F G WR

CLK VCC V C C

G N D P01P02P03P04P05P06P01P02P03P04P05P06A1A2A3A4A5A6A1A2A6A5CS1CS2

WR CS1WR

CS2CLK1

CLK2

P01P02P03P04P05P06P01P02P03P04P05P06B C D E F G 23456

CLK1VCC CLK2VCC 5432RXD

RXD TXD XTAL2

18

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C51

D0

3D14D27D38D413D514D617D718CLK 11MR 1

Q02Q15Q26Q39Q412Q515Q616Q7

19

U3

74LS273

A

1B 2C

3E16E24E35

Y015Y114Y213Y312Y411Y510Y69Y7

7

U7

74LS138

ERROR TXD 3RXD 2CTS 8RTS 7DSR 6DTR 4DCD 1RI

9

P1

COMPIM

T1IN 11R1OUT 12T2IN 10R2OUT

9

T1OUT 14R1IN 13T2OUT 7R2IN

8C2+4

C2-5

C1+

1C1-3VS+2VS-6

U2

MAX232

2

3

1

U1:A

74LS02

2

3

1U3:A

74LS02

2

3

1

U2:A

74LS02

D0

3D14D27D38D413D514D617D718CLK 11MR 1

Q02Q15Q26Q39Q412Q515Q616Q7

19

U4

74LS273

D0

3D14D27D38D413D514D617D718CLK 11MR 1

Q02Q15Q26Q39Q412Q515Q616Q7

19

U5

74LS273

R1

10k

C1

1u

C2

1u

C3

1u

C4

1u

RXD RTS TXD CTS

RXD RTS TXD CTS

特别注意:在进行仿真电路图的参数设置时,TTL 和RS232电平转换芯片MAX232、RS232串口COMPIM 、串口通信仿真器VIRTUAL TERMINAL 的波特率Baud Rate 都要设置为2400;另外,用于发送信息的串口通信仿真器VIRTUAL TERMINAL 中的Advanced properties 改为inverted 。

易知:数字0的ASCII值为48,显示在熟管管上,因为proteus仿真时,只能显示对应字符的ASCII值,所以一定要进行数位分解后送入数码管显示,并且数码管显示要注意“消影”。

七、程序清单

1.从“PC发送程序”单击0~F按钮发送相关字符,相应的数字0—15会显示在实验系统的数码管上。

#include

#include //访问外部存储器时,必须用到此头文件

#define uint unsigned int

#define uchar unsigned char

#define ZX XBYTE[0xffdc] //字形口端口地址宏定义

#define ZW XBYTE[0xffdd] //字位口端口地址宏定义

uchar value,n;//全局变量定义

uchar buffer[6]={0,0,0,0,0,0};

uchar code table[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc0,0xa1,0x86

,0x8e}; //共阳数码管字段

uchar code table2[]={0x20,0x10,0x08,0x04,0x02,0x01}; //数码管字位

void display(uchar n); //数码管显示子函数声明,并且带参数返回

void delay(uint); //延时子函数的声明

void main()

{

SCON=0x40; //串口方式1,未开REN

PCON=0x80; //SMOD=1

TMOD=0x20; //T1方式2(8为可重装)

TH1=243; //计数初值

TL1=243; //240032

2*)256(12fosc =-=SMOD

N 波特率

TR1=1; //打开定时器1

while(1) //一直执行 {

SCON=0x50; //开REN while(!RI) display(n);

RI=0; //RI 需要手动清0 n=SBUF;

SCON=0x40; //关REN }

}

void delay(uint x) //延时子函数的定义

{

uint i,j; for(i=x;i>0;i--) for(j=10;j>0;j--); }

void display(uchar n) //数码管显示子函数定义,并且带参数返回 { buffer[0]=n/10;//0—15数位分解,送给数码管显示

buffer[1]=n%10;

ZX=table[buffer[0]]; //显示十位,先送字形

ZW=table2[0]; //再送字位 delay(10); //延时一小段时间

ZX=0xff; //数码管消影

ZX=table[buffer[1]]; //显示个位

ZW=table2[1];

delay(10);

//延时一小段时间

ZX=0xff; //数码管消影

}

当然也可以不进行数位分解,直接在实验箱上的数码管上显示0—F 。

2.在proteus 仿真软件里运行的程序代码:

#include

#include //访问外部存储器时,必须用到此头文件 #define uint unsigned int #define uchar unsigned char

#define ZX XBYTE[0xffdc] //字形口端口地址宏定义 #define ZW XBYTE[0xffdd] //字位口端口地址宏定义 uchar value,n;//全局变量定义 uchar buffer[6]={0,0,0,0,0,0}; uchar code table[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc0,0xa1,0x86 ,0x8e}; //共阳数码管数字

uchar code table2[]={0x20,0x10,0x08,0x04,0x02,0x01};

void display(uchar n);//数码管显示子函数的声明,并且带参数返回 void delay(uint); //延时子函数的声明 void main() { SCON=0x40; //串口方式1,未开REN PCON=0x80; //SMOD=1

TMOD=0x20; //T1方式2(8为可重装) TH1=243; //计数初值

TL1=243; //240032

2*)256(12fosc =-=SMOD

N 波特率

TR1=1; //打开定时器1

while(1) //一直执行

{

SCON=0x50; //开REN

while(!RI)

display(n);

RI=0; //RI需要手动清0

n=SBUF;

SCON=0x40; //关REN

}

}

void delay(uint x) //延时子函数的定义

{

uint i,j;

for(i=x;i>0;i--)

for(j=10;j>0;j--);

}

void display(uchar n) //数码管显示子函数的定义,并且带参数返回{ //z字母的ASCII值为127,下面数位分解

buffer[0]=n/100; //百位

buffer[1]=n%100/10; //十位

buffer[2]=n%10; //个位

ZX=table[buffer[0]]; //显示ASCII的百位,先送字形ZW=table2[0]; //再送字位

delay(10); //延时一小段时间

ZX=0xff; //数码管消影

ZX=table[buffer[1]]; //显示ASCII值的十位

ZW=table2[1];

delay(10);

ZX=0xff;

ZX=table[buffer[2]]; //显示ASCII值的个位

ZW=table2[2];

delay(10);

ZX=0xff; //数码管消影

}

注意:可以显示大写字母,小写字母,0—9的ASCII值。

八、心得体会

1. 做完此次的单片机的串并转换实验和单片机与PC机串行通信实验后,不仅加深了对电平转换芯片、串口仿真器、74LS273锁存器、串入并出移位寄存器74LS164和74LS138译码器的工作原理,51单片机的串行口通信原理的理解,而且掌握了用C语言实现串并转换和串行通信的编程方法以及用proteus画出硬件电路的方法(包括VIRTUAL TERMINAL参数的设置和波特率的设置),最重要的是,培养了自己独立调试程序的动手能力和解决实际问题的能力;

2. 掌握以单片机为核心的电路基本画法,通过实际程序设计和调试,逐步掌握了51单片机C程序设计方法和调试技术,为今后调试程序,设计一般的系统打下了一点基础;

3. 另外,注意串并转换实验中的数码管是共阴极的,而所给字符是共阳极的,所以在编程中显示数码管时,要取反;数码管也要注意消影;串行通信过程中,发送方和接收方的波特率一定要一直,都为2400.

总之,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。亲历亲为才是硬道理。希望这样的实验机会能够继续下去,并不断地前进,同时也感谢老师热心与耐心的指导,帮助更多的学生更好地学习单片机,并能够在使用中发现它的无穷魅力!

实验四-串口通信实验

姓名:彭嘉乔 学号:3130104084 日期:2015.05 地点: ___________ 指导老师:弓 ________________ 成绩: 实验类型: 同组学生姓名:吴越 、实验内容和原理(必 填) 四、操作方法和实验步骤 六、实验结果与分析(必 填) 七、讨论、心得 一、实验目的 1、掌握80C51串行口工作方式选择、理解串行口四种通讯模式的区别、波特率发生器的作用及通讯过程屮的时 序关系。 2、 掌握串口初始化的设置方法和串行通信编程的能力。 3、 了解PC 机通讯的基本要求,掌握上位机和下位机的通讯方法。 4、 编写简单的通信协议(如串行口工作方式、波特率、校验方式、出错处理等) 二、 实验器材 1、 Micetek 仿真器一台。 2、 实验板一块。 3、 PC 机电脑一台。 4、 九针串口线一条。 別f 尹丿占实验报告 课程名称:彳 — 实验名称:实验四 串口通信实验 、实验目的和要求(必 填) 三、主要仪器设备(必 填) 五、实验数据记录和处理

三、实验原理 串口通讯对单片机而言意义重大,不但可以实现将单片机(下位机)的数据传输到PC端(上位机),

便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232电平的,而单片机的 串口是TTL 电平的,两者Z 间必须有一个电平转换电路,本实验采用专用芯片 也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 3. 1 RS232九针串口基本功能简介 九针串口即RS-232接口,是个人计算机上的通讯接口之一,由电子工业协会 Industries Association , EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组 RS-232接口,分别称为COM1和COM2。该接口分 为公头子和母头子。九针串口(母头)的功能如下,请见图 1 : 9 / \ 6 Ov 3v Ov Ov 图1 RS232九针串口母头功能说明 分别为1 :载波检测 (DCD) ; 2 :接收数据(RXD) ; 3 :发送数据(TXD) : 4 :数据终端准备 好(DTR) ; 5 :信号地(GND) ; 6 :数据准备好(DSR) ; 7 :发送请求(RTS) ; 8 :发送清除(CTS) ; 9 :振铃 指示(RI)接法。 本实验采用三线制连接串口,也就是说和电脑的 9针串口只需连接其屮的3根线:第5脚的GND 、 第2脚的RXD 、第3脚的TXD 。这是最简单的连接方法, 但是已满足本实验硬件需求, 电路如图2所示, MAX232的第11脚和单片机的11脚连接,通过MAX232芯片的电平转换,将T1OUT 输出连接板子上9针串口(母头)MAX232进行转换,虽然 (Electronic

DA转换实验

实验九 D/A转换实验 一、实验目的 1、熟悉D/A转换的基本原理; 2、掌握AD7303的技术指标和常用方法; 3、熟悉DSP的SPI的应用方法; 4、掌握并熟练使用DSP和AD7303的接口及其操作。 二、实验设备 计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,F2812CUP板,示波器。 三、实验原理 DA转换芯片采用Analog Devices公司的AD7303。该芯片是单极性、双通道、串行、8位DA转换器,操作串行时钟最快可达30M,DA转换时间1.2μs采用SPI串行接口和DSP连接。DA 输出通过放大电路,可以得到0~5V的输出范围。DA输出接口在“CPLD单元”的左上角,两个2号孔“D/A输出1、D/A输出2”分别对应AD7303的“OUTA、OUTB”。下面是AD7303的功能框图: 引脚说明: 1、VOUTA:模拟输出A 2、电源 +2.7~+5.5V 3、地 4、REF:参考电压 5、SCLK:数字接口位时钟 6、DIN:数字接口数据 7、SYNC:数字接口片选 8、VOUTB:模拟输出B 接口时序:

输入的数字量和输出电压的关系: 四、实验步骤与内容 1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;运行CCS软件,加载示 范程序; 2、按F5运行程序,用示波器检测“D/A转换单元的的2号孔接口“输出1”输出一个 正弦波;

3、填写实验报告。 4、样例程序实验操作说明 启动CCS 2.0,打开EXP4_09_da目录下面的工程文件“Example_281x_da.pjt”,并加载Example_281x_da.out文件,双击“Source”,可查看源程序。 5、在源文件中“SpiaRegs.SPITXBUF=curve1[p];”处设断点,点击RUN运行程序;

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

《嵌入式系统实验报告》 串行通信实验 南昌航空大学自动化学院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);”,那么程序还能完全正常无误运行么?如果发生异常会出现什么现象?

实验四-串口通信实验

. 实验报告 课程名称:微机原理与接口技术 指导老师:张军明 成绩:__________________ 实验名称:实验四 串口通信实验 实验类型:________________同组学生姓名:吴越 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的 1、掌握80C51串行口工作方式选择、理解串行口四种通讯模式的区别、波特率发生器的作用及通讯过程中的时序关系。 2、掌握串口初始化的设置方法和串行通信编程的能力。 3、了解PC 机通讯的基本要求,掌握上位机和下位机的通讯方法。 4、编写简单的通信协议(如串行口工作方式、波特率、校验方式、出错处理等)。 二、实验器材 1、Micetek 仿真器一台。 2、实验板一块。 3、PC 机电脑一台。 4、九针串口线一条。 三、实验原理 串口通讯对单片机而言意义重大,不但可以实现将单片机(下位机)的数据传输到PC 端(上位机), 专业:电子信息工程 姓名:彭嘉乔 学号:3130104084 日期:2015.05 地点:东3-409

而且也能实现PC对单片机的控制,51单片机有一个全双工的串行通讯口,所以单片机和PC之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,本实验采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 3.1 RS232九针串口基本功能简介 九针串口即RS-232接口,是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常RS-232 接口以9个引脚(DB-9) 或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组RS-232接口,分别称为COM1和COM2。该接口分为公头子和母头子。九针串口(母头)的功能如下,请见图1: 图1 RS232九针串口母头功能说明 分别为1:载波检测(DCD);2:接收数据(RXD);3:发送数据(TXD);4:数据终端准备好(DTR);5:信号地(GND);6:数据准备好(DSR);7:发送请求(RTS);8:发送清除(CTS);9:振铃指示(RI)接法。 本实验采用三线制连接串口,也就是说和电脑的9针串口只需连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是已满足本实验硬件需求,电路如图2所示,MAX232的第11脚和单片机的11脚连接,通过MAX232芯片的电平转换,将T1OUT输出连接板子上9针串口(母头)第2脚的RXD;板子上9针串口(母头)第3脚的TXD与MAX232芯片的第13脚相连,通过RS232电平转换为TTL电平后,将MAX232芯片的第12脚和单片机的10脚连接,同时9针

实验四基于单片机的串行通信

实验四基于单片机的串行通信 一、 实验目的 1.了解串行通信的基本知识; 2.掌握用单片机串行口实现串行通信的方法。 二、 实验器材 微机、示波器、万用表、电源、AEDK仿真开发系统,面包板一块,MAX202C芯片一块,电容、电阻、导线若干。 三、 实验原理 此处仅介绍与本实验内容密切相关的串行通信基本知识,其它有关基本知识介绍请见本讲义实验七。 1.串行通信的异步和同步传送方式 CPU与其外部设备之间的信息交换或计算机之间的信息交换均可被称为“通信”。 通信的基本方式可分为并行通信和串行通信两类。并行通信是指数据各位同时并行传送的通信方式,而串行通信是指数据逐位顺序串行传送的通信方式(如图4.1所示)。 在并行通信中,由于有多根传输线并行传送数据,因此传送速度快、通信速率高。但当多位数据远程传输时,传输线路的开销就成为突出问题。由于串行通信只需一对传输线,并且可以利用电话线等现有通信信道作为传输介质,因而可以大大降低传输线路的成本。一般而言,串行通信的传送速度明显低于并行通信。 (a)并行通信 (b)串行通信 图4.1 通信方式示意图

串行通信分为异步传送和同步传送两类。异步通信是一种字符再同步的通信方式,而同步通信是靠识别同步字符来实现数据的发送和接收的。 (1) 异步传送方式 异步传送的特点是:①数据以字符方式随机且断续地在线路上传送(但在同一字符的内部的传送是同步的)。各字符的传送依发送方的需要可连续,也可间断。②通信双方用各自的时钟源来控制发送和接收。③通信双方按异步通信协议传输字符。 异步通信格式如图4.2所示,每个字符由起始位、数据位、奇偶校验位和停止位四个部分顺序组成。这四个部分组成异步传输中的一个传输单元,即字符帧。 z 起始位:为“ 0”信号,占1位。起始位的作用有两个:①表示一个新字符帧的开始。 即线路上不传送字符时,应保持为“1”。接收端检测线路状态连续为“1”后或在停止位后有一个“0”,就知道将发来一个新的字符帧。②用以同步接收端的时钟,以保证后续的接收能正确进行。 z 数据位:紧接于起始位后面,它可以占5、6、7或8位不等,数据的位数依最佳传送 速率来确定。如所传数据为ASCII 码字符,则常取7位。数据位传输的顺序,总是最低位(LSB )D 0在先。 z 奇偶校验位:在数据位之后,占1位。它用来检验信息传送否有错。它的状态常由发 送端的奇偶校验电路确定。奇偶位的值取决于校验类型,若为偶校验,则数据位和校验位中逻辑“1”的个数必须是偶数;若为奇校验,则数据位和校验位中逻辑“1”的个数必须是奇数。也可以规定不用奇偶校验位,或用其它的校验方法来检验信息传送过程是否有错。 z 停止位:用“1”来表征一个字符帧的结束。停止位可以占1位、1.5位或2位不等。 接收端收到停止位时,表明这一字符已接收完毕,也表明下一个字符帧可能到来。若停止位以后不是紧接着传送下一个字符帧,则让线路上保持为“1”,即空闲等待状态。图4.2既表示一个字符紧接一个字符传送的情况,又表示两个字符间有空闲位的情况。 串行通信的一个重要指标是波特率。它定义为每秒钟传送二进制数码的位数(亦称波特率),以“位/秒”(bps )为单位。在异步通信中, 波待率=(每个字符帧的位数)×(每秒传送的字符数) 常用的波特率有600、1200、2400、4800、9600、19200(bps )等。 由于异步通信双方各用自己的时钟源,若时钟频率等于波特率,则频率稍有偏差就会产生接收错误。时钟频率应比波特率高,时钟频率与波特率的比一般选16:1或者64:1。采用较高频率的时钟,在一位数据内就有16或64个时钟,就可以保证捕捉正确的信号。 空闲位 起校停起校停空闲位 第n 个字符帧 第n +1个字符帧 图4.2异步通信的字符帧格式

串口通信实验讲解

课程名称: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

一、题意分析及解决方案 1、课程设计名称及内容 应用STAR ES598PCI单板开发机系列接口芯片设计一个串转并转换器,熟悉串转并转换原理,掌握使用串并转换芯片扩展I/O口的实现方法。设计编写程序,循环点亮8个指示灯瞬间只有一个灯亮。观察实验结果,验证串并转换数据的正确性。 2、题意需求分析 根据题目给定的内容与要求可得:本实验需要用到的主要是控制数据输入的芯片、实现串并转换的芯片和用于显示的发光管。 本实验的核心部分是8位移位寄存器74HC164,它可以实现数据的串行输入和并行输出,达到数据从串行转换为并行的目的。为了方便控制74HC164的输入,考虑运用可编程接口芯片8255连接CPU和74HC164,实现数据的串行输入和CP脉冲的变化。同时,为了方便观察实验结果,使用74HC164移位寄存器输出接口连接8位发光二极管,显示并行输出结果。 3、解决问题的思路与方法 (1)硬件部分 程序用到的硬件芯片有8255、74HC164、发光二极管: 使用8255作为CPU和移位寄存器之间的接口电路来控制8位串行数据的输入,其本身的接口就可以支持输出的操作。而且8255的可编程并行接口,具有传输速度快效率高等优点,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。 74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B) 可完全控制输入数据。一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。时钟控制发生在时钟输入由低电平到高电平的跃变上。为了减小传输线效应,所有输入端均采用二极管钳位。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的

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

实验六串行口通信实验 一、实验内容 实验板上有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]

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

单片机串并口转换实验定稿版

单片机串并口转换实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能 #include 本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。

#include #include< intrins.h > #define uchar unsigned char #define uint unsigned int #define ulong unsigned long code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit SO=P1^0; //定义165的输出 sbit STCP=P1^1; sbit DS=P1^2; sbit SHCP=P1^3; sbit SHLD=P1^4; sbit CLK=P1^5; sbit cs573=P1^6; /**************************************************/

void delay(ulong X) //延时函数,采用了形参传递函数{ while(X--); } /**************************************************/ void LED(); //函数声明 /**************************************************/ void main() //主函数 { while(1) { LED (); } }

串口通信实验

实验报告(附页) 一、实验内容 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"

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

《嵌入式系统原理与实验》实验指导 实验三调度器设计基础 一、实验目的和要求 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次清零。

串行通信实验报告

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

实验四串口接收模块电路设计

实验四串口接收模块电路设计 一、实验目的: 1、熟练使用ISE设计工具。 2、理解串口传输协议。理解采用“自顶向下”设计思路,分解模块的方法。 3、在ISE使用Verilog HDL设计串口接收模块,完成仿真、下载。 二、原理分析 (一)串口传输协议概述 设计完成异步串口通信通用异步收发是一种典型的异步串口通信,简称UART。串口通信时序如图1所示。 图1 通用异步收发时序图 由图1可以看出,在没有数据传送时,通信线会一直处于高电平,即逻辑1状态;当有数据传送时,数据帧以起始位开始,以停止位结束。起始位为低电平,即逻辑0状态;停止位为高电平,即逻辑1状态,其持续时间可选为1位、1.5位或2位(本次设计选择持续时间1位)。接收端在接收到停止位后,知道一帧数据已经传完,转为等待数据接收状态;只要再接收到0状态,即为新一帧数据的起始状态。 数据帧的数据位低位(LSB)在前,高位(MSB)在后,根据不同的编码规则,数据位可能为5位、6位、7位或者8位(本次设计数据位定位8位)。校验位也可根据需要选择奇校验、偶校验或者不要校验(本次设计不要校验位)。 (二)串口时序分析 串口通讯常用“波特率”表述串口传输速率,常用的参数有9600 bps 和115200 bps等。在硬件传输角度看,波特率表征了传输一位数据所需要的时间。例如:波特率是9600 bps,传输一位数据的时间是1/9600= 0.000104166666666667秒。如果FPGA系统时钟是20MHZ,则一位数据传输时间相当于(1/9600)/(1/20M)=2083个20MHZ时钟周期。 设一帧数据位数=1(开始位)+8(数据位)+1(校验位)+1(结束位)=11位,所以传输一帧数据的时间是11*1/9600=0.00114583333333333333333333333333秒。 为了稳定采集串口数据帧的数据,需要在每位数据的“中间时刻”采样,由此,需要在每位数据开始时刻对时钟进行计数,若系统时钟是20MHZ,则在计数至2083/2=1042时采样此时刻的数值。 三、系统分析: 为实现串口接收电路,FPGA应该完成: 1、及时发现数据传输的开始,并判断每一位的开始。 2、按照“在数据位中间采样”的要求,确认采样时刻。 3、将采样得到串行数据转换为并行数据。

实验四AD转换与串行通信实验(2016)

实验四、A/D转换与串行通信实验 1、实验目的 熟悉Freescale 68HC08的程序设计和调试方法,掌握CodeWarrior IDE、ProEmulator、DP-01多MCU实验平台等开发工具的使用,理解微控制器 A/D转换模块、异步串行通信接口(SCI)的基本原理和应用方法。 2、实验环境 PC机 DP-01多MCU实验平台 CodeWarrior 集成开发环境 ProEmulator模拟软件 3、硬件接线 (1)PTA0-7接LED1-8指示灯,即用8位排线把实验平台A2区J61插口(B0-B7)与D1区J52插口相连。 (2)拔下B3区LCD模块。D2区10K电位器右端接C1区VCC(+5V),左端接GND,中间端用专用实验导线连接到B3区J106插座的第14引脚(从右端倒数第3引脚,PTB7)作为模拟量输入口,PTC0(A11)接开关SW1。 (3)DP-01实验平台串行口与微机串行口相接(已连好)。 4、实验内容 完成硬件连线,用Freescale 68HC08汇编语言编写程序完成以下功能: (1)通过开关SW1的闭合与断开控制A/D采样的开始和停止,当开始A/D转换后,每秒对PTB7脚的模拟量采样一次,采样结果求反后送指示灯LED1-8显示。 (2)采样结果同步通过SCI串行接口发送到PC机(19200bps,N,8,1),在PC端用超级终端或串口调试助手查看收到的数据(16进制),看是否与LED显示的内容一致。 (3)调节D2区10K电位器旋扭,观察采样值的变化。 5、实验要求 (1)通过CW IDE、ProEmulator调试程序并查看运行结果。(预习时完成) (2)利用CW IDE Mon08接口把程序下载到DP-01多MCU实验平台,通过单步、断点、全速等多种调试方式运行程序并查看运行结果。 (3)掌握HC08模块串行接口的调试方法,程序下载时跳线分别设置为JP4(MON)、COM_SEL1(RD-M)、COM_SEL2(TD-M),下载后断电。跳线需设置为JP4(RUN)、COM_SEL1(TXD)、COM_SEL2(RXD),上电复位全速运行程序进行串行通信。 (4)完成实验报告的撰写。 6、思考题(选做内容) (1)如何实现开关SW1合上后,MCU与PC先建立握手信号,如握手信号为$AB(MCU端发送)、$CD(PC端回送),当握手成功后再开始A/D转换和串口发送工作? (2)如何把采样结果转换成对应电压值并通过SCI送到PC显示(ASCII码),格式为“My Sample is x.xx V”? (3)如何用C语言编程完成上述实验内容? (4)如何实现每秒对模拟量采样三次,进行简单中值滤波处理后再送指示灯和SCI? (5)如何在MSP430、MCS-51和PIC16F87x MCU上实现实验内容? (6)如何使用Proteus仿真调试实验内容? 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

串口通讯实验报告

网络编程与实践实验报告 实验内容:串口通信编程 学号:S201502189 姓名:职荣豪 日期:2015-9-28 一、实验要求 使用VS2010编写基于对话框得MFC应用程序,两个窗口分别使用两个串口,使得这两个窗口可以进行通信,包括数据得发送与接收。 二、实验原理 本实验使用Microsoft munications Control控件,利用这个ActiveX控件,只需要编写少量代码即可轻松进行通信。 该控件相关得函数如下: put__mPort:设置串口号 put_Settings:以字符串得形式设置波特率、奇偶校验位(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数 put_InputMode:设置接收数据得类型(0-文本类型,1-二进制类型) put_InputLen:设置从接收缓冲区读取得字节数,0表示全部读取 put_InBufferSize:设置接收缓冲区大小 put_OutBufferSize:设置发送缓冲区大小 put_RThreshold:设定当接收几个字符时触发Onm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件 put_SThreshold:设定在触发Onm事件前,发送缓冲区内所允许得最少得字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生Onm事件 put_PortOpen:打开或关闭串口,传入参数为true时打开串口,传入参数为false时关闭串口 get_mEvent:获得串口上刚发生得事件,事件值为2表示接收到数据 get_InBufferCount:获得缓冲区中得数据位数 get_Input:获取缓冲区数据,返回类型为VARIANT put_Output:发送数据 三、设计思路 需要添加一个Microsoft munications Control控件,用于进行串口通信。 由于要求同一程序可运行两个窗口进行相互通信,需要两个窗口开启两个不同串口,故需

实验八 串转并与并转串实验

贵州大学实验报告纸 实验八串转并与并转串实验 一、实验目的 1.掌握使用74LS164扩展输出的方法。 2.掌握使用74LS165扩展输入的方法。 二、实验内容 1、使用74LS165扩展输入数据,使用74LS164扩展输出数据。74LS165的并行口 接八位逻辑电平输出(开关),CPU使用P1.0、P1.1和P1.2串行读入开关状态;74LS164的并行口接一只数码管,CPU使用P1.3和P1.4串行输出刚读入的开关状态,使之在数码管上显示出来。 2、拨动开关,在数码管显示0~9,A~F。 三、实验要求 1、根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)74LS165为8位移位寄存器,其引脚功能如下: S/L:移位/置数端,低电平有效。 P0~P7:并行数据输入端。 QH:串行数据输出端。 CLK、CKLINH:时钟信号输入端。 2)74LS164为串行输入并行输出移位寄存器,其引脚功能如下: A、B:串行输入端; Q0~Q7:并行输出端; MR:清零端,低电平有效; CLK:时钟脉冲输入端,上升沿有效。 3)用P1端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。 4)本实验需要用到CPU模块(F3区)、八位逻辑电平输出模块(E4区)和静态数码管显示模块(B4区)。74LS165电路原理图参见图8-1,74LS164电路原理图参见图8-2。 注:74LS164集成电路芯片在主板反面。

图8-1 74LS165电路 五、实验程序 ;//**************************************************************** ;//*文件名:164165 串转并,并转串实验程序 ;功能:把开关量通过74**165串行输入到内存,并通过74**164串行输出到数; 码管上显示。 ;接线:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD, ; P1.3、P1.4接静态数码显示的DIN、CLK。 ;//**************************************************************** QH165 BIT P1.0 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H

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

相关文档
相关文档 最新文档