【单片机实验】串口通信实验

实验三:串口通信实验

内容:

(1)利用电脑串口与实验台串口进行连接;

(2)根据帧格式定义、波特率定义,编程配置串口,并编写控制程序;

(3)实现从电脑上输入控制字符,由单片机通过串口接收,并控制LED显示的功能;

(4)对所编程序进行调试及验证。

要求:

(1)掌握波特率的概念、学会编程设置波特率和工作方式;

(2)掌握串口通信的编程控制方法;

(3)理解解MAX232串口通信的硬件电路结构。 注意实验三,需要同学们自己编写程序,实现从电脑串口助手(利用单片机下载软件提供的串口调试助手),发送一个字符给单片机,单片机通过中断方式接收,或通过查询方式接收后,把该字符的值送到8个LED显示 你的任务:编写主程序,串口初始化(要启动定时器),编写中断接收程序,和查询接收程序,接收到数据后,还要回送电脑显示,并驱动LED,当接收到的数据是88H时,驱动一个8个LED轮流点亮,当接收到的数据是99H时,停止8LED流水亮。当接收到的数据是11H时,LED全亮。当介绍到的数据是FFH时,全灭。 编程实现,明天实验课直接去调试。一定要提前编写程序,实验课只是去验证你的程序是否正确。

 1 #include <reg51.h>
 2 #include <intrins.h>
 3 unsigned char NewData,led,Count;
 4 bit NewFlag ;
 5 void main( void ){
 6     TMOD = 0x21 ;
 7     TH0 = ( 65536 - 10000 ) / 256 ;
 8     TL0 = ( 65536 - 10000 ) % 256 ;
 9     Count = 0 ;
10     led = 0xFE ;
11     TH1 = 0xFD ;
12     TL1 = 0xFD ;
13     TR1 = TR0 = 1 ;
14     SCON = 0x50 ;
15     ES = EA = ET0 = 1 ;
16     NewFlag = 0 ;
17     while ( 1 ){
18         if( NewFlag ){
19             if( NewData == 0x88 ){
20                 ET0 = 1 ;
21             }
22             if( NewData == 0x99 ){
23                 ET0 = 0;
24             }
25             TI = 0 ;
26             SBUF = NewData ;
27             while ( TI == 0 );
28             NewFlag = 0 ;
29         }
30     }
31 }
32 void set0 ( void ) interrupt 4 {
33     if( TI ) TI = 0 ;
34     if( RI ) {
35         RI = 0 ;
36         NewData = SBUF ;
37         NewFlag = 1 ;
38     }
39 }
40 void T0_INT () interrupt 1 {
41     TH0 = ( 65536 - 10000 ) / 256 ;
42     TL0 = ( 65536 - 10000 ) % 256 ;
43     Count ++  ;
44     if( Count >= 50 ){
45         Count = 0 ;
46         led = _crol_(led , 1 );
47         P1 = led ;
48         if( NewData == 0x11 ) P1 = 0 ;
49         if( NewData == 0xFF ) P1 = 0xFF ;
50     }
51 }

原文地址:https://www.cnblogs.com/Osea/p/11083538.html

时间: 2024-10-08 01:17:00

【单片机实验】串口通信实验的相关文章

51单片机学习笔记【六】——串口通信实验

一.串口通信基础 1.串行通信 串行通信将数据字节分成一位一位的形式在一条传输线上逐个传送.单片机采用串行通信.特点是:传输线少,长距离传送成本低,但数据传送控制复杂. 串行通信的传输的传输方向:单工(数据传输只能沿一个方向),办双工(传输数据和接受数据分布进行),全双工(传输和接受同步进行). 单片机采用异步通信,发送和接受设备使用各自的时钟频率,容易实现,但传输效率不高,数据格式 2.MAX232 实验通过MAX232电平转换芯片,可把计算机串口电平(-12V~+12V)转换为单片及TTL电

51单片机之串口通信(三)

51单片机之串口通信(三) 已有 47 次阅读2015-12-29 00:21 |个人分类:51单片机| 单片机, 通信 用串口实现发送和接收同时可操作: 电脑显示结果如图: 源程序: /*项目名称:串口发送接收实验项目内容:串口发送接收同时进行,计算机发送数据给单片机控制P0口,从而控制LED灯的亮灭,单片机发送数据到计算机,计算机显示出来时间:2015年12月23日项目负责人:YUAN*/#include <reg52.h>typedef unsigned char uChar8;type

51单片机之串口通信(一)

一.基础知识 1.串行通信和并行通信:目前用的比较多的是串行通信.串行通信优点是连接简单,传输距离远:缺点是传输速度慢. 2.串行通信:分为同步通信和异步通信:异步通信是指发送和接收设备利用各自的时钟控制数据的发送和接收. 3.串行通信的传输方向:单工,半双工,全双工. 4.波特率:每秒钟传输2进制代码的位数,如1个字节为10位,每秒传输240个字节,则波特率为10*240=2400bps,单位是bps: 5.RS-232C:25个管脚,我们用到的是PGND(保护接地).TXD(发送数据),RX

单片机的串口通信

单片机串行口通信有4种不同的方式: 方式0:移位寄存器输入/输出方式:波特率:fosc/12; 方式1:10位UART(通用异步接口电路),一帧数据的格式为:1位起始位,8位数据位,1位停止位.其波特率是可变的(由公式): 方式2和方式3:这两种方式都是由11位UART组成,一帧数据格式为:1位起始位,9位数据位,1位停止位. 其中方式2的波特率固定为:fosc/32,fosc/64,由SOMD决定. 方式3的波特率与方式1相同.  单片机串口调试方法: 1.单片机+虚拟终端(作为串口输入设备)

zju(8)串口通信实验

1.实验目的 1.学习和掌握linux下串口的操作方法以及应用程序的编写: 二.实验内容 1.编写EduKit-IV实验箱Linux操作系统下串口的应用程序,运行时只需要将串口线的一端连接到开发板的com2口,另一端用一根导线将RSD1和TXD1短接,然后以自发自收的形式查看收发的数据. 三.主要仪器设备 1.Ubuntu12.04系统. 2.英培特eduk4-s3c2410试验平台 四.操作方法和实验步骤 1. 添加环境变量 source /usr/local/src/EduKit-IV/Mi

arduino nano 配合 as32-tll-100串口通信实验 --基础串口通信

Arduino Nano 超小封装的 Arduino开源系统.玩起来挺爽的. 作为最小单片机系统,首先功耗是没得说,很低很低,并且还有休眠模式,采用电池供电非常理想的功耗. 其次,由于社区完整强大,扩展很方便,无论串行并行,编程接口丰富. 再次,价格很感人,RMB:10-20元.依然是首选. AS32-TTL-100是一款基于Semtech原装SX1278射频芯片而开发,工作频段为410-441MHz,功率为100mW直插式串口数传模块.该模块采用LORA扩频传输,接收灵敏度高,功耗低,距离远.

奶爸业余单片机学习之:UART串口通信学习笔记(二)

/************************************** 串口通信实验* 晶振11.0592MHz* 波特率9600bps* 中断方式实现:单片机接收电脑数据,加1后发送回电脑***************************************/ #include<reg52.h> unsigned char dat; /**********串口通信配置*******************/void UART_CONFIG(unsigned long baud

51单片机串口通信时的定时器设置的相关问题

51单片机在串口通信时需要有一个定时器去调节与计算机通信的波特率,而定时器设置时需要中断寄存器(IE), 定时器控制寄存器(TCON) ,还有T/C控制寄存器共同配合作用, 但在启动定时器功能时,这三个寄存器的配置顺序十分重要,因为在数据传输时的高速情况下,一点点的数据误差就会导致传输的数据出现错误.而在51单片机的串口通信时必须将配置TCON放在配置这三个寄存器的最后,因为在TCON中含有启动定时器的TR1和TR0位,若先启动后对工作方式和溢出率进行配置,就会导致启动时定时器根本无法像预先设定

奶爸业余单片机学习之:UART串口通信学习笔记(一)

UART串口通信,全名:异步串口通信 UART的四种工作模式:(0,1,2,3) 模式1:SM0 = 0; SM1 = 1;REN = 1  //由SCON(串行口控制寄存器)控制,可位寻址.10位异步收发(8位数据),波特率可变(由定时器1的溢出率控制) 模式1功能:以TXD为例,平时没数据时,TXD为高电平,需要发送数据时,先发送一个起始位0,然后发送八位数据位(一个字节),最后发送一位停止位1: REN位为允许串行接收位:REN = 1:允许串行口接收数据:REN = 0:禁止串行口接收数