一、程序下载的不同方式
1、程序传送和电平接口:
由于两个电平无法通信,所以需要转换电平
1、转换电平可以装驱动(CH340)
2、可以使用转电平芯片
一般采用第一种方式
二、通信方式
(一)、并行通信
(二)、串行通信
三、串行通信传输方向
四、串行通信的分类
(一)、异步通信
异步通信的数据格式
(二)、同步通信
同步通信要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步(时钟线)
80C51为串行异步通信
C51的传输格式可概括为:“8N1”:8个数据位,N:NO没有校验位,1个停止位
三、80C52串行口结构:
四、80C52寄存器
SCON各位释义:
五、波特率设置
其中X为初值,fosc为晶振频率
六、常用波特率
以下晶振频率均为1.0592M
1、X = 253(0xfd),波特率= 9600
2、X = 250(0xfa),波特率= 4800
3、X = 0xf4,波特率= 2400
#include <reg52.h>
unsigned char ch;
void uart_init()
{
SCON = 0x50; //设置串口工作方式
TMOD |= 0x20;//设定定时器工作方式
TH1 = 0xFD;//设置波特率为9600
TR1 = 1;//打开定时器1
//中断服务法
ES = 1;//打开串口服务中断
EA = 1;
}
void uart_send_char(unsigned char ch)
{
SBUF = ch;
while(!TI);//等待TI为1
TI = 0;//TI置0
}
void uart_send_str(unsigned char *str)
{
while(*str != '\0')
{
uart_send_char(*str++);
}
}
void uart_isr() interrupt 4
{
ES = 0;
if(RI)
{
uart_send_str("I receieve is:");
uart_send_char(SBUF);
uart_send_char('\n');
RI = 0;
}
}
void main()
{
uart_init();
}