2019-05-03 21:16:03 weixin_41543617 阅读数 564
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

51单片机常用波特率初值表(11.0592M和12M)
在这里插入图片描述

2019-06-11 16:24:44 weixin_39520719 阅读数 502
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

网上找的还是不如课本上的呀,这些全试过,很好用
51单片机波特率常用设定值

2014-12-25 13:37:32 u010568345 阅读数 1913
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

http://blog.csdn.net/sjmping/article/details/8053301

 

为什么51单片机的晶振一般使用11.0592?
 
用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用
STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。 这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。 用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。

 

 

 

 

 

 

为什么51单片机的晶振一般使用11.0592?
 
用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用
STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。 这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。 用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。
2019-07-12 15:19:02 qq_31986663 阅读数 198
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

以串口1控制寄存器SCON为例,串口2控制寄存器S2CON同理。
SCON寄存器设置波特率的方法有四种,如下图:
在这里插入图片描述
SCON寄存器的BIT6-7位设置了4种方式。
我们常用的格式是数据位8位,波特率需要根据实际情况进行调整,所以是可变的,所以需要SCON寄存器的BIT6=1,BIT7=0。
另外,串口一般都是有发有收,所以也需要使能接收。
所以SCON寄存器的BIT4也需要置1。
在这里插入图片描述
关于寄存器的其他描述,https://wenku.baidu.com/view/91a925de31126edb6e1a1088.html 讲解的很清楚。

下面来说一下可变的波特率是怎么计算出来的。
在这里插入图片描述
需要先算出:溢出率,溢出率分为 定时器1的溢出率BRT独立波特率发生器的溢出率
公式如上:用到的参数有T1x12BRTx12SMOD

SMOD在PCON寄存器的BIT7位:
在这里插入图片描述
如果SMOD=1,波特率=(2^1)/32 * 溢出率,即溢出率/16
如果SMOD=0,波特率=(2^0)/32 * 溢出率,即溢出率/32

T1x12 、BRTx12在AUXR寄存器的BIT6和BIT2位。
在这里插入图片描述
这里有很重要的一个位BIT4,如要要使用BRT独立波特率发生器,一定要把AUXR寄存器的BIT4置1。
溢出率的计算:
SYSCLK为当前MCU使用的时钟频率,单位是HZ。
比如使用外部晶振8Mhz,计算时SYSCLK=8000000。
到了这里,我们只要在手动更改BRT的值,即可设置出不同的波特率了。

2019-12-25 15:07:52 qq_43581971 阅读数 26
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

单片机与PC机通信

在上位机上用串口调试助手发送一个字符,单片机收到字符后返回给上位机“I GET X”,串口波特率设为9600bps

 

一、实验目的

1.了解通信的基本原理

2.掌握串口通信的基本原理和不同方式

3.掌握波特率的设置和定时器初值的设置

4.掌握各种串口通信的设计方法

二、实验环境

   win7、Keil uVision4、stc-isp 

三、程序算法设计思想(或实验原理)

  介绍单片机计数器/定时器的原理和工作方式:

四、实验内容(或实验步骤)

(1)实验内容

  1. 设计并实现单片机与PC机的串口通信系统

        2.设计并实现单片机与单片机串口通信系统

        3.设计并实现单片机与多个单片机组网系统

        4.实现485串口通信程序的设计

 (2) 实验步骤

   1.连接开发板…..

   2.新建工程、建立文件、编译、调试,生成XX.hex文件……

   3.烧录文件到单片机…….

   4.单片机运行………

五、实验结果

 描写单片机运行效果

六、实验代码

//实验3 串口操作
//在上位机上用串口调试助手发送一个字符,
//单片机收到字符后返回给上位机“I GET X”,
//串口波特率设为9600bps


#include <reg52.h>    	
#define uchar unsigned char
#define uint unsigned int
unsigned char flag,a,i;
uchar code table[]="I get ";
//uchar code table[]={'I',' ','g','e','t',' '};

void init()
{
	TMOD=0x20;	 //定时器1 工作方式2 自动装载,用于串口设置波特率
	TH1=0xfd;  	// 波特率 9600   向TH1高8位写入初值
	TL1=0xfd;  	//向TL1低8位写入初值
	TR1=1;    	//启动定时器T1
	REN=1;  	//REN=1,允许串行口接收数据
	SM0=0;
	SM1=1;		//串行口工作方式1
	EA=1;		//总中断允许
	ES=1;		//允许串行口中断
}

void main()
{
	init();
	while(1)		//无限循环,等待中断
	{
		if(flag==1)
		{
			ES=0;
			for(i=0;i<6;i++)
			{
				SBUF=table[i];
				while(!TI);
				TI=0;      //已发送完,把TI清零
			}
			SBUF=a;
			while(!TI);
			TI=0;       //已发送完,把TI清零
			ES=1;
			flag=0;
		}
	}
}
 
void ser() interrupt 4 //中断函数
{
	RI=0;
	a=SBUF;
	flag=1;
}

 

七,补充说明

--   TH1 = ( 65536 - a ) / 256 ;
     TL1  = ( 65536 - a ) % 256 ;
      其中a为定时计数的脉冲数

--   REN:允许串行接受位,由软件置“1”或清零。
           REN=0,禁止串行口接收数据。
           REN=1,允许串行口接收数据。

--   TI:发送中断标志位. 
           TI=1,1帧数据发送结束
           TI=0,已发送完,把TI清零

-- 【51单片机】常用波特率初值表

原博主https://blog.csdn.net/weixin_38239856/article/details/70477181?utm_source=app

 

·

 

常用波特率初值表

博文 来自: weixin_38239856

我常用的波特率表

阅读数 4675

没有更多推荐了,返回首页