使用51微控制器進行串列埠通訊的學習記錄之查詢方式:
所謂查詢方式,簡單來說,就是利用軟體(**)去判斷、查詢ti和
ri標誌位的狀態,然後依據其狀態去執行各種操作。
1.scon 是乙個特殊功能暫存器,用以設定序列口的工作方式、接收
/傳送控制以及設定狀態標誌:
sm0和
sm1為工作方式選擇位,可選擇四種工作方式:
2.有關波特率的計算方法:
在序列通訊中,收發雙方對傳送或接收資料的速率要有約定。通過軟體可對微控制器序列口程式設計為四種工作方式,其中方式0和方式
2的波特率是固定的,而方式
1和方式
3的波特率是可變的,由定時器
t1的溢位率來決定。
序列口的四種工作方式對應三種波特率。由於輸入的移位時鐘的**不同,所以,各種方式的波特率計算公式也不相同。
方式0的波特率
= fosc/12
方式2的波特率 =(
2smod/64
)· fosc
方式1的波特率 =(
2smod/32
)·(t1
溢位率)
方式3的波特率 =(
2smod/32
)·(t1
溢位率)
當t1作為波特率發生器時,最典型的用法是使
t1工作在自動再裝入的
8位定時器方式(即方式2,且
tcon
的tr1=1
,以啟動定時器)。這時溢位率取決於
th1中的計數值。
t1 溢位率
= fosc /
注:pcon中只有一位
smod
與序列口工作有關,
smod
(pcon.7
) 波特率倍增位。在序列口方式
1、方式
2、方式
3時,波特率與
smod
有關,當
smod=1
時,波特率提高一倍。復位時,
smod=0。
在微控制器的應用中,常用的晶振頻率為:12mhz和
11.0592mhz
。所以,選用的波特率也相對固定。常用的序列口波特率以及各引數的關係如表所示。
3.80c51序列口的工作方式1:
方式1是
10位資料的非同步通訊口。
txd為資料傳送引腳,
rxd為資料接收引腳,傳送一幀資料的格式如圖所示。其中
1位起始位,
8位資料位,
1位停止位。
(1)方式1輸出
(2)方式
1輸入
用軟體置ren為
1時,接收器以所選擇波特率的
16倍速率取樣
rxd引腳電平,檢測到
rxd引腳輸入電平發生負跳變時,則說明起始位有效,將其移入輸入移位暫存器,並開始接收這一幀資訊的其餘位。接收過程中,資料從輸入移位暫存器右邊移入,起始位移至輸入移位暫存器最左邊時,控制電路進行最後一次移位。當
ri=0
,且sm2=0
(或接收到的停止位為
1)時,將接收到的
9位資料的前
8位資料裝入接收
sbuf,第9
位(停止位)進入
rb8,並置
ri=1
,向cpu
請求中斷。
4.定時
/計數器的結構與原理
定時/計數器的實質是加
1計數器(
16位),由高
8位和低
8位兩個暫存器組成。
tmod
是定時/
計數器的工作方式暫存器,確定工作方式和功能;
tcon
是控制暫存器,控制t0、
t1的啟動和停止及設定溢位標誌。
加1計數器輸入的計數脈衝有兩個**
,乙個是由系統的時鐘振盪器輸出脈衝經
12分頻後送來;乙個是t0或
t1引腳輸入的外部脈衝源。每來乙個脈衝計數器加
1,當加到計數器為全
1時,再輸入乙個脈衝就使計數器回零,且計數器的溢位使
tcon
中tf0
或tf1置1
,向cpu
發出中斷請求(定時
/計數器中斷允許時)。如果定時
/計數器工作於定時模式,則表示定時時間已到;如果工作於計數模式,則表示計數值已滿。
可見,由溢位時計數器的值減去計數初值才是加1計數器的計數值。
設定為定時器模式時,加1計數器是對內部機器週期計數(1個機器週期等於
12個振盪週期,振盪週期也叫時鐘週期,
時鐘週期
即晶振的單位時間發出的脈衝數,如12mhz=12×10的
6次方,即每秒發出
12000000
個脈衝訊號
,那麼發出乙個脈衝的時間就是時鐘週期,即1/12
微秒;如11.0592mhz=11.0592×10的
6次方,即每秒發出
11059200
個脈衝訊號
,那麼發出乙個脈衝的時間就是時鐘週期,即1/11.0592
微秒)。計數值n乘以機器週期
tcy就是定時時間t 。
5.定時
/計數器的控制
80c51微控制器定時
/計數器的工作由兩個特殊功能暫存器控制。
tmod
用於設定其工作方式;
tcon
用於控制其啟動和中斷申請。
(1)工作方式暫存器
tmod
工作方式暫存器tmod用於設定定時
/計數器的工作方式,低四位用於
t0,高四位用於
t1。其格式如下:
m1m0:工作方式設定位。定時
/計數器有四種工作方式,由
m1m0
進行設定:
6.控制暫存器tcon
tcon的高
4位用於控制定時
/計數器的啟動和中斷申請。其格式如下:
tf1(
tcon.7
):t1
溢位中斷請求標誌位。
t1計數溢位時由硬體自動置
tf1為1。
cpu響應中斷後
tf1由硬體自動清0。
t1工作時,
cpu可隨時查詢
tf1的狀態。所以,
tf1可用作查詢測試的標誌。
tf1也可以用軟體置1或清
0,同硬體置1或清
0的效果一樣。
tr1(
tcon.6
):t1
執行控制位。
tr1置1時,
t1開始工作;
tr1置0時,
t1停止工作。
tr1由軟體置1或清
0。所以,用軟體可控制定時
/計數器的啟動與停止。
tf0(
tcon.5
):t0
溢位中斷請求標誌位,其功能與
tf1類同。
tr0(
tcon.4
):t0
執行控制位,其功能與
tr1類同。
7.定時器
1的工作方式
2
方式2為自動重灌初值的
8位計數方式。此時m1m0=10,即tmod=0x20;
計數個數與計數初值的關係為:x = 2
8- n
其中:x為要裝的初值
n為要定時
/記數的次數。
注:工作方式2特別適合於用作較精確的脈衝訊號發生器。所以在進行串列埠通訊時一般選用定時器
1工作在方式
2 這種經典模式。
/*51微控制器採用查詢方式的串列埠通訊程式分析:
接收資料時 先查詢ri->然後接收資料
傳送資料時 先傳送資料->然後查詢ti*/
#include#define uchar unsigned char
uchar temp,riflag,tiflag;
//串列埠初始化函式
void serialportinit()
//定義資料傳送函式
void senttemp()
void main()
}}
51微控制器
數碼管顯示幾乎是每次藍橋杯微控制器設計與開發組競賽的必考部分,相對於使用lcd1602作為顯示裝置,使用數碼管來顯示能夠更好的考察參賽選手的微控制器基本功,因為ct107d開發平台的設計使得數碼管的顯示不僅牽扯到數碼管顯示的 基本內容,還涉及到74hc573鎖存器,74hc02異或門,74hc138...
51微控制器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 1.供電電源 一般開發板上提供兩種供電方式,usb供電和專用電源供電。使用usb供電你只要用一根usb線將開發板usb電源介面與電腦的usb...
51微控制器
設計包含乙個矩陣式鍵盤電路和動態顯示電路的微控制器應用系統,通過根據按下不同的數字按鍵 0 9 在數碼管上顯示出自己學號的後8位。各位大神幫忙挑挑錯,或者問題太大了可以幫忙寫乙個新的麼!萬分感謝!好著急 a 8255 equ 7cffh a口 b 8255 equ 7dffh b口 c 8255 e...