51微控制器自學筆記

2021-09-25 17:57:03 字數 3740 閱讀 8813

中斷tmod:定時器工作方式暫存器

tcon:定時器控制暫存器

thx,tlx計算方法

定時器/計數器高階應用

52微控制器特有的定時器2

計數功能的應用

數碼管按鍵

序列口通訊

i^2^c通訊

spi通訊

數模轉換

esp8266wifi模組

目前正在準備寫乙個51微控制器庫,希望能實現51的大多數功能,此部落格對應**已存在碼雲, 希望大家多多指正。

sfr–特殊功能暫存器的資料宣告,宣告8為暫存器

sfr–宣告16位

sbit–特殊功能位宣告,也宣告某特殊功能暫存器某一位

bit–位變數宣告

oe–gnd

le :高點平:鎖死

低電平: 跟隨輸入端

agnd與dgnd區別

為了提高控制精度,可以數字地與模擬地分開,最後通過一點連線

晶元說明與數模轉換原理

位符號1

意義ea

開全域性中斷

et2開

定時器2

et1開

定時器1

et0開

定時器0

ex1開

外部1ex0

開外部0es開

序列口優先級別

預設:外部0–int0

定時器0–t0

外部1–int1

定時器1–t1

序列口–ti/ri

定時器2–t2

位符號意義ps

序列口pt1

定時器1

pt0定時器0

px1外部1

px0外部0

tmod不能位定址,所以必須用十六進製制表示

位序號d7d6

d5d4

d3d2

d1d0

位符號gate

c/t``

m1m0

gate

c/t`

m1m0

定時器1

定時器0

位符號意義gate

門控制器

c/t`

定時器與計數器選擇

m1,m0

工作模式選擇 m1

m0工作方式解釋0

0013位定時器/計數器01

116位10

28位初值自動重灌的定時器/計數器11

3僅用於t0,分為兩個8位計數器,t1停止計數

位符號意義

定時器/計數器

tf(0/1)

溢位標誌位

tr(0/1)

執行控制位

外部中斷

ie(0/1)

中斷請求標誌

it(0/1)

觸發方式選擇位

一般的定時器工作方式為1:16位包含thx,tlx兩個八位暫存器

方式0對25取模因為第八位只用了5位

方式2

方式3t1不計數,因為th0占用了tf1;t0分為兩個八位計數器。但此時t1仍然可以用於串列埠中斷

位序號d7

d6d5

d4d3

d2d1

d0位符號

tf2exf2

rclk

tclk

exen2

tr2c/t2』

cp/rl2

意義定時器2溢位標誌位

定時器2外部標誌

接收時鐘標誌

傳送時鐘標誌

外部使能標誌

定時器2啟動/停止控制位

t2的定時器/計數器選擇位

捕獲/重灌標誌

3種工作模式

rclk+tclk

cp/rl2

tr2模式00

116位自動重灌01

116位捕捉1x

1波特率發生器xx

0關閉每根管對應一位,直接用十六進製制表示

先段選顯示數字,再位選。

段選時候可以加鎖存器防止閃爍,位選時候用38解碼器選擇八位,各個位之間不能同時亮,可以延時加交替實現。

根據按鍵連線方式不同需單獨處理

兩次檢測,消抖

加while();,直到按鍵抬起時標記按下。

16鍵的話,行列對應高低四位。

先傳送0xf0當檢測到不是該值時說明該行有被按下的。

再傳送0x0f當檢測到不是該值時說明該列有被按下的。

座標確定。

opendev對spi,iic,uart的講解

方式波特率

0晶振頻率/12

12smod /32 * (t1溢位率)

22smod /64 * 晶振頻率

32smod /32 * (t1溢位率)

其中方式1,3波特率可變。

smod屬於電源管理暫存器pcon的首位,值為0時波特率正常 ,1時波特率為2倍。

由波特率計算初值類似於中斷計算,不過選用t1且工作方式為2,八位計數。

溢位率為t1溢位一次用時間的倒數

通常用11.0592mhz晶振為了計算出來初值為整數,減少傳輸丟失

可以位定址

d7d6

d5d4

d3d2

d1d0

sm0sm1

sm2ren

tb8rb8

tiri

多機通訊控制位

允許接收

方式2,3傳送第9位

方式2,3接收第九位

傳送中斷標誌位

接收中斷標誌位

sm0sm1方式說明0

00同步移位寄存方式01

110位非同步收發(8位資料),波特率可變10

211位(9位資料),波特率固定11

311位(9位資料),波特率可變

方式0同步移位寄存方式,並不是同步串列埠通訊方式,用於拓展並行輸入輸出口。

波特率固定為頻率/12

此處可以結合74hc165,74hc595晶元進行io口擴充套件(該擴充套件也可以直接while(1)裡,只是為了更有時序性)

編碼時,只需要設定scon方式0,注意ren,ri,ti。(傳送或就收乙個位元組後就會觸發中斷,此時ti或ri為1,中斷標誌成立)

方式2,3

最大不同就是資料位變為11位

scl:時鐘線

sda:資料線

正常情況下scl高電平時讀取sda,低電平時sda0,1資料變化

傳送啟動訊號:scl高,sda出現下降沿 0

1主機對從機寫

主機對從機讀

接收裝置傳送應答訊號:scl高電平,接收裝置將sda拉低

傳輸資料,類似於傳送位址,接收器接到1個位元組也要傳送應答訊號

當主機變為接收方時,主機對最後乙個位元組不應答,告訴從機傳送結束

當主機為傳送方時,傳送停止訊號表示傳送結束:scl高,sda上公升沿。

51沒有硬體i2c匯流排控制單元,軟體控制時需嚴格遵循時序圖

iic時序助記

參考鏈結

解析度:數碼訊號位數決定

轉換誤差:一般小於最低位的一半

轉換精度

轉換時間

該微控制器採用xpt2046晶元,用spi傳輸

參考對於該晶元,根據控制暫存器資訊:

如果要檢測轉換電位器模擬訊號,控制字命令暫存器值為0x94或者0xb4.

如果要檢測轉換熱敏電阻模擬訊號,控制字命令暫存器值為0xd4.

如果要檢測轉換光敏電阻模擬訊號,控制字命令暫存器值為0xa4.

如果要檢測轉換ain3通道上模擬訊號,控制字命令暫存器值為0xe4.

非常不錯的參考

另一篇部落格單獨介紹

51微控制器的自學筆記

必備了解 微控制器需要運用到數位電路的知識。數位電路中只有兩種電平 高和低 定義微控制器為 ttl電平 高 5v 低 0v rs232電平 計算機的串列埠 高 12v 低 12v 所以計算機與微控制器之間通訊時需要加電 平轉換晶元max232 實驗板上左下角 ttl電平訊號被利用的最多。且資料採用二...

51微控制器學習筆記(1) 初識微控制器

微控制器是一種整合在電路晶元,是採用超大規模積體電路技術把具有資料處理能力的 處理器cpu 隨機儲存器ram 唯讀儲存器rom 多種i o口和中斷系統 定時器 計數器等功能 可能還包括顯示驅動電路 脈寬調變電路 模擬多路轉換器 a d轉換器等電路 整合到一塊矽片上構成的乙個小而完善的計算機系統。微控...

51微控制器

數碼管顯示幾乎是每次藍橋杯微控制器設計與開發組競賽的必考部分,相對於使用lcd1602作為顯示裝置,使用數碼管來顯示能夠更好的考察參賽選手的微控制器基本功,因為ct107d開發平台的設計使得數碼管的顯示不僅牽扯到數碼管顯示的 基本內容,還涉及到74hc573鎖存器,74hc02異或門,74hc138...