#include //51標頭檔案
#include // 迴圈標頭檔案
#define uchar unsigned char
//定義uchar為無符號字元型
#define uint unsigned int
//定義uint為無符號整型
#define ulong unsigned long int
// 定義ulong為無符號長整型
//,利用移位暫存器實現串列埠資料傳送,資料傳送通過寫sbuf暫存器完成,寫入sbuf的8位資料通過rxd逐位傳送,移位脈衝則通過ttxd傳送。
//,即移位暫存器輸入/輸出模式,序列資料通過rxd輸出,txd則用於輸出移位時鐘脈衝
sbit mr = p2^0;
sbit led_dir_pressed = p2^1;
sbit led_amount_pressed = p2^2;
uchar dir_flag = 0; //流水燈的方向
uchar led_count = 1; // 流水燈的數目
uchar led_count_flag = 0;//按鍵按下的標誌
void delay_ms(uint m);
//延遲函式
void usart_init(void);
//串列埠初始化函式
void send_char(uchar cdata); //傳送函式
void button_scan(void);
//按鍵掃瞄函式
uchar dir_flag;
//方向標誌
uchar led_count;
//流水燈數目
uchar led_count_flag;
//流水燈數目標誌位
//毫秒級函式
void delay_ms(uint m)
}//串列埠方式0初始化 可以不使用中斷,即查詢方式,此處使用了中斷方式
void usart_init(void)
//資料初始化
//傳送位元組資料
void send_char(uchar cdata)
//中斷初始化
void usart_hander() interrupt 4
//按鍵掃瞄函式
void button_scan(void)
while(!led_dir_pressed);
}if(led_amount_pressed == 0)
while(!led_amount_pressed);
//等待按鍵釋放}}
int main()
for(i = 4; i>0; i--) //分成4個位元組依次傳送
if(dir_flag == 0)
cdata = _lror_(cdata,1);
else
cdata = _lrol_(cdata,1);
delay_ms(200);
mr = 0; //消除164本身沒有鎖存的閃爍問題
} }
串 並行口針腳的定義
串 並行口針腳的定義 並行口與序列口的區別是交換資訊的方式不同,並行口能同時通過8條資料線傳輸資訊,一次傳輸乙個位元組 而序列口只能用1條線傳輸一位資料,每次傳輸乙個位元組的一位。並行口由於同時傳輸更多的資訊,速度明顯高於序列口,但序列口可以用於比並行口更遠距離的資料傳輸。1 25針並行口插口的針腳...
串 並行口針腳的定義
串 並行口針腳的定義 並行口與序列口的區別是交換資訊的方式不同,並行口能同時通過8條資料線傳輸資訊,一次傳輸乙個位元組 而序列口只能用1條線傳輸一位資料,每次傳輸乙個位元組的一位。並行口由於同時傳輸更多的資訊,速度明顯高於序列口,但序列口可以用於比並行口更遠距離的資料傳輸。1 25針並行口插口的針腳...
串 並行口針腳的定義
並行口和序列口是計算機中經常使用的通訊埠。並行口與序列口的區 別是交換資訊的方式不同,並行口能同時通過8條資料線傳輸資訊,一次傳輸 乙個位元組 而序列口只能用1條線傳輸一位資料,每次傳輸乙個位元組的一位。並行口由於同時傳輸更多的資訊,速度明顯高於序列口,在pc中常用於作打 印埠 而序列口可以比並行口...