计算机以两种不同的方式传输数据:
串行传输
:在串行传输中, 数据被传输到位于数米之外的设备中, 此方法用于长距离数据传输。
让我们看一下串行数据传输的框图:
文章图片
【使用8051单片机的串行通讯计算和编程】并行传输
:在并行传输中, 数据以8行或更多行传输。在此导线中, 导线用于将数据传输到仅几英尺远的设备。
让我们看一下并行数据传输的框图:
文章图片
串行通信主要用于发送和接收信号。 8051微控制器由用于串行通信的通用异步接收器发送器(UART)组成。信号通过微控制器的Rx和Tx引脚发送和接收。
UART接收数据的各个字节, 并按顺序发送各个位。寄存器用于收集数据并将其存储在内存中。 UART基于半双工协议。半双工意味着传输和接收数据, 但不能同时进行。
让我们看一下显示闪存和8051微控制器之间的串行通信的框图表示:
文章图片
让我们看一下使用串行窗口以9600的波特率传输字符“ S”的程序:
考虑28800是8051微控制器的最大波特率。要获得9600作为波特率, 计时器值为:
文章图片
该波特率“ 3”存储在计时器内部。
#include<
reg51.h>
void main(){SCON=0x50;
//starting of a serial communication//TMOD=0x20;
//selected the timer mode//TH1=3;
// load the baud rate//TR1=1;
//Timer is ON//SBUF='S';
//store the character inside a register//while(TI==0);
//check the interrupt register//TI=0;
TR1=0;
//OFF the timer//while(1);
//continuous loop//}
让我们看一下用于从超级终端接收数据并将该数据以9600波特率发送到微控制器的PORT 0的程序:
考虑28800是8051微控制器的最大波特率。要获得9600作为波特率, 计时器值为:
文章图片
该波特率“ 3”存储在计时器内部。
#include<
reg51.h>
void main(){SCON=0x50;
//starting of a serial communication//TMOD=0x20;
//selection of a timer mode//TH1=3;
// load the baud rate//TR1=1;
//Timer is ON//PORT0=SBUF;
//send the data from SBUF to port0//while(RI==0);
//checking of an interrupt register//RI=0;
TR1=0;
//OFF the timer//while(1);
//stop the program when character is received//}
推荐阅读
- 嵌入式系统工具和外围设备
- 嵌入式系统项目
- 嵌入式系统项目(基于RFID的考勤系统)
- 嵌入式系统项目(火灾探测与控制系统)
- 嵌入式系统处理器
- 使用8051单片机的LED闪烁
- 使用8051单片机进行LCD编程
- 使用8051微控制器进行键盘编程
- 8051单片机中断