郑州上街网站建设公司,北京工商登记,贵阳市城乡建设厅网站,做分销网站基于STC12C5A60S2系列1T 8051单片机串口通信应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表基于STC12C5A60S2系列1T 8051单片… 基于STC12C5A60S2系列1T 8051单片机串口通信应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表基于STC12C5A60S2系列1T 8051单片机串口通信用到的特殊功能寄存器STC12C5A60S2系列1T 8051单片机辅助寄存器AUXRSTC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1串口1控制寄存器SCON串口电源控制寄存器PCON串口数据缓冲寄存器SBUF串口辅助寄存器AUXR串口中断寄存器 基于STC12C5A60S2系列1T 8051单片机串口1通信工作模式串口1通信模式0串口1通信模式1串口1通信模式2串口1通信模式3 串口通信波特率设置基于STC12C5A60S2系列1T 8051单片机通过串口通信接收计算机用串口助手发送的数据并返回给计算机串口助手显示出来 STC12C5A60S2系列1T 8051单片机管脚图
# STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置# STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
STC12C5A60S2系列1T 8051单片机串口通信介绍 STC12C5A60S2系列1T 8051单片机串口通信的结构
基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能寄存器列表 基于STC12C5A60S2系列1T 8051单片机串口通信用到的特殊功能寄存器
STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信类型、波特率
STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信引脚切换
串口1控制寄存器SCON 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信以下功能 1、设置串口通信工作模式 2、设置串口方式2或方式3多机通信 3、设置串口通信允许接收 4、设置串口通信在方式2或方式3下发送第9位数据 5、设置串口通信通信在方式2或方式3下接收第9位数据 6、设置串口通信发送中断请求 7、设置串口通信接收中断请求
串口电源控制寄存器PCON 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信以下功能 1、设置串口通信波特率选择 2、设置串口通信帧错误检测有效控制
串口数据缓冲寄存器SBUF 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信发送或接收数据
串口辅助寄存器AUXR 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信类型、波特率
串口中断寄存器 作用用来设置STC12C5A60S2系列1T 8051单片机串口通信中断允许、中断优先级
基于STC12C5A60S2系列1T 8051单片机串口1通信工作模式
串口1通信模式0 串口1通信模式1 串口1通信模式2 串口1通信模式3 串口通信波特率设置 基于STC12C5A60S2系列1T 8051单片机通过串口通信接收计算机用串口助手发送的数据并返回给计算机串口助手显示出来
#include stc12c5a60s2.h
#include uart.h
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
bit ReceiveDataFlag;//声明收到数据标志位变量
uchar ReceiveData;//声明收到数据变量
/*****关于8051系列单片机定时器溢出率、波特率和定时器初值(定时计数初值)之间计算的知识点*****/
/****
一、定时器溢出率计算公式
1、定时器溢出率定时器每秒溢出的次数
2、定时器溢出率计算公式表定时方式 分频方式 公式
方式116位定时器 12分频即12T 默认值 Ft晶振频率/12/(65536-定时器初值)
方式28位定时器 12分频即12T 默认值 Ft晶振频率/12/(256-定时器初值)
方式116位定时器 1分频即1T Ft晶振频率/1/(65536-定时器初值)
方式28位定时器 1分频即1T Ft晶振频率/1/(256-定时器初值)
二、波特率计算公式
1、波特率每秒传输二进制位数的多少
2、波特率计算公式表定时方式 分频方式 公式
方式116位定时器T1 12分频即12T 默认值 波特率晶振频率/12/(65536-定时器初值)/4
方式28位定时器T1 12分频即12T 默认值 波特率晶振频率/12/(256-定时器初值)*2^SMOD/32
方式116位定时器T2 12分频即12T 默认值 波特率晶振频率/12/(65536-定时器初值)/4
方式116位定时器T1 1分频即1T 波特率晶振频率/1/(65536-定时器初值)/4
方式28位定时器T1 1分频即1T 波特率晶振频率/1/(256-定时器初值)*2^SMOD/32
方式116位定时器T2 1分频即1T 波特率晶振频率/1/(65536-定时器初值)/4
三、根据波特率计算定时器初值(定时器定时计数)定时方式 分频方式 公式
方式116位定时器T1 12分频即12T 默认值 定时器初值(定时计数)65536-晶振频率/(48*波特率)
方式28位定时器T1 12分频即12T 默认值 定时器初值(定时计数)256-晶振频率*2^SMOD/(384*波特率)
方式116位定时器T2 12分频即12T 默认值 定时器初值(定时计数)65536-晶振频率/(48*波特率)
方式116位定时器T1 1分频即1T 定时器初值(定时计数)65536-晶振频率/(4*波特率)
方式28位定时器T1 1分频即1T 定时器初值(定时计数)256-晶振频率*2^SMOD/(32*波特率)
方式116位定时器T2 1分频即1T 定时器初值(定时计数)65536-晶振频率/(4*波特率)
*****/void Uart1Init()//串行口1工作模式1的8位串行口波特率可变初始化函数 波特率为9600bps 晶振为22.1184MHz
{AUXR 0x00;//设定定时器1的12分频定时作为串行口1的波特率发生器PCON 0x7f;//波特率不加倍SCON 0x50;//工作模式1的8位串行口波特率可变TMOD 0x0f;//定时器/计数器工作模式清0TMOD | 0x20;//设定定时器/计数器为定时器 工作模式为8位自动重装定时器1模式2TH1 0xfa;//设定定时器1高八位初值TL1 0xfa;//设定定时器1低八位初值ET1 0;//禁止定时器1中断ES 1;//允许串行口1中断EA 1;//开总中断TR1 1;//打开定时器1}void PortChange()//端口切换函数
{AUXR1 0xf3;//单片机P1端口切换到单片机P4端口AUXR1 | 0x04;//设定ADRJ1}void PortModeSet()//端口模式设置函数
{P0M1 0x00;P0M0 0x00;P1M1 0x00;P1M0 0x00;P2M1 0x00;P2M0 0x00;P3M1 0x00;P3M0 0x00;P4M1 0x00;P4M0 0x00;}void main()//主函数
{PortModeSet();//端口模式设置函数Uart1Init();//串行口1工作模式1的8位串行口波特率可变初始化函数 波特率为9600bps 晶振为22.1184MHzPortChange();//端口切换函数while(1)//主循环{}}void Uart1() interrup 4//串口1通信中断函数
{if(RI)//判断单片机串行口数据缓存器是否接收到数据{ReceiveData SBUF;//读取单片机串行口数据缓存器中的数据赋给接收数据变量 即单片机串行口缓存寄存器通过串行口通信接收计算机用串口助手发送来的数据RI 0;//单片机串行口接收数据标志位清0SBUF ReceiveData;//把接收数据变量包含的数据赋给单片机串行口数据缓存器 即单片机通过串行口通信把来自从单片机SPI数据寄存器发送来的数据发送给计算机串口助手显示出来if(TI 0)//等待单片机串行口发送完数据{TI 0;//单片机串行口发完数据标志位清0}}}