MCS-51单片机串口通信

发布者:小牛队最新更新时间:2013-01-17 来源: 51hei关键字:MCS-51  单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

   串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如你可以把写入单片机的数据码显示在电脑上,如可以使用一个按键,当按下它时使某一个字母如:AA,通过单片机的串口将它发送到电脑上显示,起到仿真器的某些功效,站长在开发数据采集设备时就是通过串口来检查数据正确与否的。

   MCS-51内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。

   在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。

   51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。本网站的提供的实验板上已经装配好了全部硬件。

点击浏览下一页

串口通讯的硬件电路如上图所示

    为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察单片机串口通信,这里我们利用一个免费的电脑串口调试软件。

   点击浏览下一页

    点击这里可以下载并运行这个串口调试软件这是一个绿色的软件,无需安装,可以直接在当前位置运行这个软件。软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源,这时只要按下K1一次,在串口调试助手软件的接收区界面中就会增加一个“AF”字符,表示单片机向电脑发送“AF”字符成功。串口实验的源程序如下所示:[page]

;这是一个AT89C51单片机实验开发板向PC机的串口单向发送数据AF的演示程序
;采用MAX232专用芯片作RS232/TTL电平转换.
;通讯波特率为4800KBPS,只要按下一次K1(就是P3.6引脚变成低电平)
;就发送一个16进制的AF字符

ORG 0000H
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置

WRIT:JB P3.6,$;判断K1是否按下,如果没有按下就等待
ACALL DELAY10;延时10毫秒消触点抖动
JB P3.6,WRIT;去除干扰信号
JNB P3.6,$;等待按键松开

MOV A,#0AFH;将16进制的字符AF发送到串口去
MOV SBUF,A;将AF通过串口发送出去

AJMP WRIT

;10毫秒延时子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET

END

===============单片机串口通信=========================

一、发送和接收的过程如下:

    串行口的发送过程由指令MOV  SBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。

    串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。CPU响应中断,用一条指令(MOV  A,SBUF)把接收缓冲器SBUF(收)的内容读入累加器。
 
   TI和RI是由硬件置位的,但需要用软件复位。
 
二、相关的寄存器
   1、SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工。
   2、SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。
   3、PCON中的SMOD用来控制波特率加倍。
   4、TMOD设置定时器1的工作方式,用来产生波特率
   5、如果用到中断,则还需要用到中断相关的寄存器IE,IP等

三、四种工作方式:
方式0:
      同步移位寄存器方式,其波特率是固定为振荡频率fosc的1/12。在这种工作方式下,发送和接收串行数据都通过RXD(P3.0)进行,从TXD(P3.1)输出移位脉冲,控制外部的移位寄存器移位。1帧信息为8位,没有起始位,停止位。
方式1:
       8位UART,1帧信息为10位,其中一位起始位“0”、八位数据位(先低位后高位)和一个停止位“1”,波特率可变,根据定时器1的溢出率计算。
方式2:
       9位UART,1帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率为振荡频率的1/64或1/32
方式3:
       9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率可变,根据定时器1的溢出率计算。
     附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。[page]

四、连接     
      由于串口用的是TTL电平,和RS232电平不同,因此,单片机和PC通信时需要进行电平转换,常用的IC是MAX232,连接图如图所示,其中MAX232供电脚为+5V,中间连接的电解电容取50V 1UF。

 点击浏览下一页
MAX232内部框图
        点击浏览下一页
单片机和PC通信连接图

即所谓的三线连接法。

===================================================

用VC来做个上位机软件,用单片机来做下位机显示,数据从PC机发送过来,经过单片机处理显示。

首先你想把它学好,就一定要下苦功夫,因为这个不是一下子就能学好的,要经过不断的实践努力。

学习也有一段时间了,用的书是(《Visual C /Turbo C串口通信编程实践》 龚建伟)但是发现自己可能毅力不够,经常被一些困难所吓倒。碰到问题时不能够想方设法去解决。可能是可以学习例子太少了,网上的资源也不是很多。。。。。。

发现假如用MSCOMM控件来编的话,就是那个变量VARIANT,这个不好弄懂。学VC首先要有一定的C语言基础,和C 基础,可能是C 还没学完,基础不扎实,导致继续下去有点困难。

先实现一个简单的功能吧,用VC做个界面,当按下相应的键时,发送相应的数据到单片机中,然后将数据送到P0口来显示。

呵呵,一定要把那个变量给弄懂了,这样一切都好办了

在后面的学习中,我将把学习的心得写出来,与大家交流交流

关键字:MCS-51  单片机  串口通信 引用地址:MCS-51单片机串口通信

上一篇:基于STC89C52单片机的温度检测系统设计
下一篇:基于单片机的LED智能路灯控制系统设计方案

推荐阅读最新更新时间:2024-03-16 13:16

基于Atmega16单片机的智能太阳能充电器设计
随着经济的发展、社会的进步,人们对能源提出越来越高的要求,寻找新能源成为当前人类面临的迫切课题。现有电力能源的来源主要有3 种,即火电、水电和核电。其中,火电需要燃烧煤、石油等化石燃料。一方面这些燃料蕴藏量有限、越烧越少,正面临着枯竭的危险。另一方面燃烧燃料将排出二氧化碳和硫的氧化物,因此会导致温室效应和酸雨,恶化地球环境。而水电有可能导致生态环境破坏,一个国家的水力资源也是有限的,而且还要受季节的影响。核电在正常情况下固然是干净的,但万一发生核泄漏,后果非常严重。在这种条件下就迫使人们去寻找新能源。新能源要同时符合两个条件:一是蕴藏丰富不会枯竭;二是安全、干净,不会威胁人类和破坏环境。目前找到的新能源主要有:太阳能,风能和燃料电
[单片机]
基于Atmega16<font color='red'>单片机</font>的智能太阳能充电器设计
用STc15f104e单片机做了个学习型红外遥控开关程序
用STc15f104e做了个学习型红外遥控开关、 是上电学习的不带按键的,=上电学习指示灯闪烁,按遥控器,指示灯灭了下, 学习开机键成功。 指示灯继续闪,再按遥控器,指示灯灭了,学习关机键成功,进入待机状态。 上电2秒不学习退出,进入待机状态。 电路原理图如下: 这个是上电学习型红外遥控开关,须要学习开,和关,须要学习两只按键, 单片机源程序如下: #include STC15F104E.H #include intrins.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define CPU_Fos
[单片机]
用STc15f104e<font color='red'>单片机</font>做了个学习型红外遥控开关程序
51单片机控制八个DS18B20温度传感器显示
单片机源程序如下: #include reg51.h #include Intrins.h #define DATA P1 //1602驱动端口 //ROM操作命令 #define READ_ROM 0x33 //读ROM #define SKIP_ROM 0xCC //跳过ROM #define MATCH_ROM 0x55 //匹配ROM #define SEARCH_ROM 0xF0
[单片机]
51<font color='red'>单片机</font>控制八个DS18B20温度传感器显示
卷积神经网络控制巡线智能车的技术方案
简介 Michal Nand 在网站 HACKADAY.IO 上通过博文 Motoku Uprising Deep Neural Network 介绍了他利用 卷积神经网络 来帮助控制巡线 智能车 更加平稳快速运行的技术方案。特别是对神经网络的结构、训练、部署等方面进行了详细的介绍。 智能车的任务相对比较简单,就是在平面赛道上,沿着彩色导引线(大部分是黑色)从出发点运行到终点并折返到出发点。其中赛道上一段有一块砖头作为障碍物。 ▲ 利用神经网络控制的巡线智能车 在作者的方案中,智能车运行大部分 控制算法 都采用了常规的 PID、逻辑判断都算法。他使用了 CNN 根据车模运行过程中,通过传感器搜集到的二维路面数
[汽车电子]
卷积神经网络控制巡线智能车的技术方案
PC机与单片机串行通信中实现命令批处理
    摘要: 介绍PC机与MCS-51单片机通信批处理命令的实现思想、方法、通信协议和C51程序平台。为PC机与单片机间串行通信程序设计提供一种方法上的新思路。     关键词: 批处理 MCS-51单片机 通信协议 在PC机与MCS-51单片机之间进行串行通信时,基本是一对一的,即用PC机向单片机每发1条命令,就等待单片机的1条返回信息。这样可能把大量时间浪费在PC机与单片机的通信过程中了。为此笔者经过实践,设计出可以批处理执行PC机发给单片机的命令,就像DOS操作系统中的批处理命令一样,可连续批处理信息,结果当然提高了系统速度。文中提供了部分平台式C51软件源代码,以供大家参考。 1 通信协议
[工业控制]
基于单片机的井场仪表参数无线传输系统的设计
1引 言 目前,全国油田钻井现场基本都是有线数据传输。有线传输有很多缺点,现场布线复杂而且存在安全隐患,钻井是流动作业,每钻一口井就要重新布一次线,这样既费时又费力,有时还会由于布线走向的问题导致线路被碰断。一般说来,数据线都是空中架设,风吹日晒使数据线老化的较快,这样就带来直接的经济损失。钻井现场有很多公司在作业,有些参数各公司是共用的,同一个参数每个公司都要读取一次,就需要在同一个测量点上安装两台甚至更多的变送器,这样既造成了浪费又使得现场变送器安装位置紧张。 本系统采用无线通信技术,一点发射多点接收,可以实现信息共享,避免了布线的麻烦,而且流动作业时可以方便地安装和拆卸,很好地提高了工作效率。 2系统硬件设计 如图1
[单片机]
基于<font color='red'>单片机</font>的井场仪表参数无线传输系统的设计
51单片机基础(1) -外部中断
中断的基本概念 中断 CPU与外设并行工作,当外设数据准备好或者有某种突发事件发生时,向CPU提出请求,CPU暂停正在进行的工作,转而为该外设服务(或者是处理紧急事件),处理完毕后再回到原断点继续执行原程序。这个过程称为中断。中断实例图示: 中断可以分为 外部中断 定时器中断 串口中断 中断系统 CPU处理某件事的时候外界发生了紧急事件,要求CPU暂停转而去处理紧急事件,处理完之后回到被中断的地方,继续原来的工作,这个工作过程叫中断,实现这个功能的部件称为中断系统。请示CPU中断的请求源称为中断源。当几个中断源同时申请CPU中断的时候,CPU会根据中断优先级来确定响应哪一个中断,CPU总是根据优先级的高低来解决中断请求。
[单片机]
51<font color='red'>单片机</font>基础(1) -外部中断
基于C8051f020单片机和UDP/IP协议实现地震勘测传感器网络的设计
随着地震勘测技术向着精细测量方向发展,有必要对频带宽、灵敏度高、失真度小的地震检波技术进行深入的研究。同时,在勘测现场要按一定方式放置一组检波器,将这一组检波器的数据进行综合分析,从而得出相应的勘测结果。 本文根据地震勘测原理,提出一种构建地震勘测传感器网络的方案:将各节点信息传输到监控PC机,采用虚拟仪器技术,使用Labview编写运行在PC机上的测控软件,进行相应的数据分析和处理;基于全光纤迈克尔逊干涉系统,采用交流相位跟踪零差检测技术(PTAC),实现对待测信号的精确检测和误差信号的补偿,减小信号漂移对系统的影响;采用C8051f020单片机对解调后的信号进行采样,并将相关数据通过UDP/IP协议进行网络传输。方案实现了
[单片机]
基于C8051f020<font color='red'>单片机</font>和UDP/IP协议实现地震勘测传感器网络的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved