微控制器學習筆記 串列埠通訊程式

2021-09-26 14:04:49 字數 2387 閱讀 8626

通過前面對串列埠通訊原理的了解,就可以開始看程式啦。

一、變數定義

#include

#include

#define uchar unsigned char

#define uint unsigned int

/*---------巨集定義---------*/

#define cstfocs 11059200l

//晶振頻率

#define cstbaud1 9600

//波特率

#define cstkeymaxnum 100

//按鍵抖動次數

/*---------引腳別名定義---------*/

sbit sbtkey1 = p3 ^2;

//啟動傳送

sbit sbtkey2 = p3 ^3;

//數字減少

sbit sbtkey3 = p1 ^7;

//數字增加

sbit sbtledsel = p2 ^3;

/*---------變數定義---------*/

uchar uct100ustimes;

uint uikey1cnt;

//按鍵1計數

uint uikey2cnt;

//按鍵2計數

uint uikey3cnt;

//按鍵3計數

uint uikeyallcnt;

//按鍵總的抖動次數

bit btt1msflag;

//1ms的標誌

bit btkey1current;

/*key1當前的狀態*/

bit btkey1past;

/*key1前乙個狀態*/

bit btkey2current;

/*key2當前的狀態*/

bit btkey2past;

/*key2前乙個狀態*/

bit btkey3current;

/*key3當前的狀態*/

bit btkey3past;

/*key3前乙個狀態*/

/*收發顯示資料相關*/

bit btuart1sendbusy =0;

uchar ucdatetmp;

//傳輸資料暫存

uchar ucdatedigstate;

uchar arrsegselect=

;//顯示0-f

二、初始化函式

void

init()

三、中斷函式

void

t0_process

() interrupt 1

ucdatedigstate++;if

( ucdatedigstate ==2)

ucdatedigstate =0;

p0 =0;

switch

( ucdatedigstate )

}

四、串列埠相關函式

/*---------串列埠1初始化函式--------*/

void

uart1_init

(void

)/*---------傳送資料函式--------*/

void

senddata

(unsigned

char dat )

/*---------串列埠1中斷處理函式--------*/

void

uart1_process

() interrupt 4

using1if

( ti )

//傳送完資料後 ri自動置1

}

五、主函式

void

main()

}if( uikey1cnt >=

0x80)if

( uikey2cnt <

0x80)}

if( uikey2cnt >=

0x80)if

( uikey3cnt <

0x80)}

if( uikey3cnt >=

0x80

)/*新一輪的判斷*/

uikey1cnt =

0x80

+ cstkeymaxnum /3*

2;uikey2cnt =

0x80

+ cstkeymaxnum /3*

2;uikey3cnt =

0x80

+ cstkeymaxnum /3*

2;uikeyallcnt = cstkeymaxnum;

}}

微控制器學習 串列埠通訊

通訊有並行通訊和序列通訊 並行通訊 將資料位元組的各位用多條資料線同時進行傳送。特點 控制簡單,傳輸速度快。但傳送線較多。成本高 序列通訊 將資料位元組分成一位一位的形式,在一條傳輸線上逐個傳送。特點 傳輸線少,長距離傳送時成本低。且可以利用 網等執行緒裝置,但資料的傳送控制比並行通訊複雜 序列通訊...

微控制器學習筆記 串列埠通訊原理

一 串列埠通訊電路 電路圖 說明 當rxd txd為低電平時,對應的led燈會亮起 下圖為80c51序列口的結構 scon serial control register 序列口控制暫存器 bit765 4321 0sm0 sm1sm2 rentb8 rb8t1 r1sm0 sm1 工作方式選擇位 ...

微控制器串列埠通訊

微控制器串列埠通訊 通常的usb序列通訊方式為全雙工,即兩條資料線 rxd和txd,一條用於傳送資料,一條用於接收資料。在序列通訊前,需要對序列通訊進行配置。對於微控制器 ri為接受中斷標誌位,未通訊時ri 0 當電腦傳送第乙個位元組幀a0到微控制器時,sbuf a0,中斷標誌位ri 1,微控制器呼...