1. 程式人生 > >51微控制器的串列埠通訊

51微控制器的串列埠通訊

一、程式下載的不同方式 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(); }