51单片机的串口通信
来源:互联网 发布:地产网络推广 编辑:程序博客网 时间:2024/04/27 13:46
一、程序下载的不同方式
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();
}
0 0
- 51单片机的串口通信
- 51单片机串口通信
- 51单片机串口通信
- 51单片机 串口通信
- 51 单片机的串口通信与控制
- 51单片机串口通信的驱动程序
- 51单片机的串口通信实例
- 51单片机 串口通信 中断
- 51单片机串口通信实例
- 51单片机 UART串口通信
- 51单片机串口通信时遇到的问题
- 51单片机串口通信的发送与接收(转)
- 51单片机串口通信,网络上摘取的代码片段
- 51单片机串口通信的发送与接收(转)
- 51单片机串口通信的帧数据接收
- 51单片机串口通信的发送与接收(转)
- 51单片机串口2的RS485通信调试总结
- 51单片机串口通信的发送与接收(转)
- Spark上的决策树(Decision Tree On Spark)
- IEDA常用快捷键记录
- 【高并发简单解决方案】redis队列缓存 + 批量入库 + php离线整合
- 排序
- springMVC01-视图解析
- 51单片机的串口通信
- 判断101-200之间有多少个素数,并输出所有素数
- css3 以当前图片为中心点页面翻转效果
- 图像处理和计算机视觉中的经典论文
- 为啥jdbc问号占位符可以防注入
- 【跨进程】跨进程通信---Activity
- git问题
- ios离屏渲染-详解
- centos 6.5 yum 安装mysql 5.6