资源描述
实验六 8051 单片机串行口实验一 实验目的:理解 8051单片机串行口工作原理和方式。学习和掌握8051 单片机实现通讯的环境和程 序编写。了解PC机通讯的基本要求。二 实验原理:在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间 的通信一般都是串行方式。所以串行接口是微机应用系统常用的接口。所谓“串行通信”是指 外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信 号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。如图6-1所示。这种 通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传 输慢。|D0|Dl|D2|D3|D4:|D5|D6|D7 |Tt le图6-1在串行通讯时, RS-232C 接口是目前最常用的一种串行通讯接口, RS-232C 使用-3 到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态。 8051单片机上有UART用于串行通信,发送时由TXD端送出数据,接收时则由RXD端输 入数据。它是一个可编程的全双工串行口。SCON是串行口控制和状态寄存器,其格式如下:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI表 6-1其中, SM0,SM1 为串行口工作方式控制位,具体的工作方式如下表(表6-2)所示SM0SM1工作方式说明波特率00方式0同步移位寄存器fosc/1201方式110位异步收发由定时器控制10方式211位异步收发fosc/32 或 fosc/6411方式311位异步收发由定时器控制SM2为多机通信控制位,当SM2=1时,只有接受到RB8为1, RI才置位,当SM2=0时, 接受到字符RI就置位。REN为串行口接收允许位。工作在方式2和3时,TB8为发送的第9 位数据,也可以用作奇偶校验位,RB8为接受到的第9位数据,而方式1时,RB8为接受到 的停止位。 TI, RI 分别为发送接受中断标志位,均由硬件置位,软件清0 。PCON 是电源控制寄存器,其格式如下:D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL表 6-3其中,SMOD为串行口波特率加倍位。当SMOD=1时,方式1,3波特率=定时器1溢出率 /16,方式2波特率为fosc/32;当SMOD=0时,方式1,3波特率=定时器1溢出率/32,方 式2波特率为fosc/64。三 实验内容: 单片机与微机相连,微机键入一个字符后发送至单片机,单片机收到后又将此字符发送 回微机,在微机屏幕上回显。要求在11.0592MHZ下,串行口的波特率为9600,方式1。四 实验电路图:图 6-2VCCC1+rJ+Cl-rJ-C2+i资IDC2-T10TJTTIDTT2OUTT2D-TRIOTR10TJTR2IHJL20UTPIO-TVCCP11.CPi:n:iP12P01P1Z:P02P1+詹 P03P15囂P04P16POJP17P06P07RESETEA/VPP2-JLDTR Cii孑EXDTKDPSEtTINTOn-mTOP26T1P23WRP24RDP23KTAL2P22KTAL1P21EHDP2039383736353433323130” 2827262524232221实验方法:1. 根据如上电路图6-2连接好实验电路。自己接线请注意,DB9的2脚与MAX232的R2IN 相连,DB9的3脚与MAX232的T2OUT相连。DB9用针型插座,这样,单片机与PC 通信时,两者是同等地位, PC 可以作为主机向单片机发送数据,单片机也可以作为主 机向PC发送数据。2. 如果用他实验板就比较简单了,因为板上本来已经接好,只要用串行数据线将J9与PC 的串行口相连即可进行通信。3. 按照实验要求编写实验程序,建立新工程,保存为 COMMU。4. 调试程序。5 将 keilC51 产生的 commu.hex 文件通过在线下载 ISP 或商用编程器写入芯片。在进行硬 件调试时,可以使用专用的串口通讯软件。这种软件种类很多,可以很方便得从网上下 载。使用串口通讯软件,如下图所示,当然也可以设置通信的参数,进行串口通信的调 试。图 6-3六 软件调试1. 我们所用的KEIL C51也可以用软件来模拟串口调试此类软件。 操作步骤:a) 按照实验要求编写实验程序,建立新工程,保存为 serial。b) 编译程序通过后,点击工具栏上的“调试” 按钮,进入调试状态。图 6-4c) 单击“View”,单击“Serial #1”,打开串口 1窗口,如下图所示。图 6-5d) 点击程序界面的最大化按钮,使程序窗口和串口窗口同时可见。如下图所示。图 6-5e)单击“开始”按钮,使程序开始运行。翡區)內予呼弋图 6-6f) 在键盘上输入任意字符,根据程序的功能,此时会把接收到的字符发出,显示在串 口的窗口上。如下图所示:图 6-7g) 单击“停止”按钮,使程序结束运行。如下图所示图 6-8h) 检查程序运行情况。ifi# i nc 1 l.ide void main(vo1d)串行口初始代while(RI=0); RI = 0;a=SBUF;SBUF=a; | while(TI=0);TI = 0;unsigned char aTMOD=0k20;TLl=0Kfd;THl=0Kfd;SCON=0k50;PCON=OkOO;TR1=1;while(1)图 6-9其中绿色部分表示程序已经运行过了。参考程序:1汇编源程序ORG0000HSTART:MOVTMOD,#20HMOVTL1,#0FDHMOVTH1,#0FDHMOVSCON,#50HCLRAMOVPCON,ASETBTR1NEXT:JNBRI,NEXTMOVR7,SBUFMOVSBUF,R7AGAIN:JNBTI,AGAINCLRTILJMPSTARTEND;设置串行口 9600 波特率,方式 1;接收数据;发送数据2C 语言源程序/kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk串/行/ 口初始化/单片机接收数据/单片机发送数据* 文件名: commu.c* 描 述: 微机发送数据到单片机,单片机接收后又发还至微机, 并在微机屏幕上显示kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk#include void main(void)unsigned char a;TMOD=0x20;TL1=0xfd;TH1=0xfd;SCON=0x50;PCON=0x00;TR1=1;while(1)while(RI=0);RI=0; a=SBUF; SBUF=a;while(TI=0);TI=0;思考题:1. 用串口连接单片机和PC,用单片机发出一串字符,让PC显示2. 用串口连接单片机和PC, PC上输入字母L时,让单片机点亮一个LED, PC上输入字 母 B 时,让单片机熄灭这个 LED。3. 尝试在此软件的基础上,加入实验二发光二极管闪烁的内容。
展开阅读全文