MCS-51单片机串口通信
三、四种工作方式:
方式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的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。
四、连接
由于串口用的是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系列单片机结构化程序设计探讨(04-20)
- 基于MCS-51的嵌入式Internet接入技术(09-02)
- MCS-51单片机的定时器/计数器应该掌握的知识(10-19)
- MCS-51系列单片机的结构(12-02)
- MCS-51单片机汇编指令详解(12-01)
- MCS-51单片机的存储器结构---单片机基础(11-29)