51单片机最全入门总结
上一篇:實驗室單片機知識點(一)
單板機
將CPU芯片、存儲器芯片、I/O接口芯片和簡單的I/O設備(小鍵盤、LED顯示器)等裝配在一塊印刷電路板上,再配上監控程序(固化在ROM中),就構成了一臺單板微型計算機(簡稱單板機)。
單片機
在一片集成電路芯片上集成微處理器、存儲器、I/O接口電路,從而構成了單芯片微型計算機,即單片機。
Intel公司推出了MCS-51系列單片機:集成 8位CPU、4K字節ROM、128字節RAM、4個8位并口、1個全雙工串行口、2個16位定時/計數器。尋址范圍64K,并有控制功能較強的布爾處理器。
CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;
RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;
ROM : 用以存放程序、一些原始數據和表格;
I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;51單片機在一上電時,如果我們沒有認為的控制其I/O口的狀態,它所有未控制的I/O口都將默認為高電平。
T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
·一個全雙工UART(通用異步接收發送器)的串行I/O口,用于實現單片機之間或單片機與微機之間的串行通信;
· 片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最高振蕩頻率取決于單片機型號及性能。
單片機總結:
無論哪種芯片,觀察其表面,大都會有凹進去的小圓坑,或者是用顏色標識的小標記(圓點或小三角或其他小圖形),這個標記所對應的引腳就是這個芯片的第1引腳,然后逆時針方向數下去,即1 到最后一個引腳。
40個引腳暗器功能類別將其分為三類:
·電源和時鐘引腳。如Vcc、GND、XTAL1、XTAL2
·編程控制引腳。
·I/O口引腳。如P0、P1、P2、P3,4組8位I/O口
//Vcc(40腳)、GND(20腳)——單片機電源引腳,常壓為+5V,低壓為+3.3V。
//XTAL1(19腳)、XTAL2(18腳)——外接時鐘引腳。XTAL1為片內振蕩電路的輸入端,XTAL2為輸出端
//RST——單片機的復位引腳,當輸入連續兩個機器周期以上高電平時為有效,復位后程序計數器PC=0000H。
//ALE/PROG(Pin30):地址鎖存允許信號
//PSEN(Pin29):外部存儲器讀選通信號
//EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。
P0口——內部沒有上拉電阻,為高阻狀態,所以不能正常的輸出高/低電平,因此改組I/O口使用時必要外接上拉電阻,一般我們選擇接入10千歐的上拉電阻。
關于電平特性:
數字電路中只有兩種電平:高和低
(本課程中)定義單片機為TTL電平:
高 +5V 低 0V
RS232電平:計算機的串口
高 -12V 低+12V
所以計算機與單片機之間通訊時需要加電平轉換芯片max232
或者轉換器(USB轉TTL串口線)。
最小系統能夠運行起來的必要條件。
1.電源 2.晶振 3.復位電路
對單片機任意IO口的隨意操作
1.輸出控制電平高低 2.輸出檢測電平高低。
定時器:重點掌握幾種常用的方式
中斷:外部中斷、定時器中斷、串口中斷
串口通信:單片機之間、單片機與計算機間
C51數據類型擴充定義:
Sbit——特殊功能位聲明,也就是聲明某一個特殊功能寄存器中的某一位。
由電阻標號認知阻值:
例如:103表示阻值大小為10 * 10^3歐,即10千歐
150表示15 * 10^0歐即15歐
發光二極管:
具有單向導電性,通過5mA左右電流即可發光,電流越大,亮度越強。一般控制在3~20mA之間。當發光二極管發光時,測量其兩端電壓,這個電壓又叫做發光二極管的“導通壓降”。
74HC573鎖存器
OE(低電平有效)通常叫做輸出使能端,在設計電路時必須將OE接低電平,因此將其全部接地。因此當他為低電平的時候, 鎖存器開始工作。
VCC和GND為電源和地端。
LE為鎖存端,當LE為高電平的時候,Q0~ Q7都跟D0~ D7狀態一樣,當LE為低電平的時候,Q0~ Q7都鎖存數據,無論D0~ D7怎么變化,Q0~Q7都保持鎖存之前的那個狀態。
單片機的幾個周期介紹:
PSW寄存器
寄存器是中央處理器內的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數器(PC)。在中央處理器的算術及邏輯部件中,寄存器有累加器(ACC)。
全稱為程序狀態字標志寄存器。
循環左移右移函數
_ crol _(a,b);循環左移函數,a是左移的值,b是左移的位數。包含在instrins.h庫函數里面。
_ cror _(a,b);循環右移函數,a是右移的值,b是右移的位數。包含在instrins.h庫函數里面。
數碼管
數碼管內部有8個小的發光二極管,最后還有一個公共端。而他們的公共端又可分為共陽極和共陰極。對共陰極數碼來說,其8個發光二極管的陰極在數碼管內部全部連接在一起,所以稱為“共陰”,而他們的陽極是獨立的。
在數碼管程序中,在每次送完段選數據后,在送入位選數據之前,需要加上一句“P0 = 0xff”,這條語句的專業名詞叫做“消影”。在送完段選數據后,P0口仍然保持著上次的段選數據,加上“消影”后,在開啟位選鎖存器后,P0口數據全為高電平,所以哪個數碼管都不會亮,因此這個“消影”動作是很重要的。
按鍵
鍵盤分為編碼鍵盤和非編碼鍵盤,非編碼鍵盤又分為獨立鍵盤和行列式(矩陣式)鍵盤。
單片機檢測按鍵的原理:單片機的I/O口既可以作為輸入也可以作為輸出使用,當檢測按鍵時用的是它的輸入功能,我們把按鍵的一端接地,另一端與單片機的某個I/O口相連,開始時先給該I/O口賦一高電平,然后讓單片機不斷的檢測該I/O口是否變為低電平,當按鍵閉合時,即相當于該I/O口通過按鍵與地相連,變成低電平,程序一旦檢測到I/O口變為低電平則說明按鍵被按下,然后執行相應的指令。
什么是中斷?暫停正在進行的程序去處理內部隨機發生的事件。因規定時間已到,或者計數已滿引起的中斷。
定時器:51定時器的定時原理就是二進制加一計數器,利用計數周期相同的脈沖(時鐘脈沖)實現定時。
計數器:當輸入的外部脈沖信號發生從1到0的負跳變時,計數器的值就自動加1。檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。
脈沖來源:系統的時鐘振蕩器輸出脈沖經12分頻,T0或T1引腳輸入的外部脈沖源。
中斷
51單片機內部有五個中斷源的中斷控制系統;
52單片機一共有6個中斷源,他們的符號,名稱及產生的條件分別解釋如下:
·INT0——外部中斷0,由P3.2端口線引入,低電平或下降沿引起。
·INT1——外部中斷1,由P3.3端口線引入,低電平或下降沿引起。
·T0——定時器/計數器0中斷,由T0計數器記滿回零引起。
·T1——定時器/計數器1中斷,由T1計數器記滿回零引起。
·T2——定時器/計數器2中斷,由T2計數器記滿回零引起。
·TI/RI——串行口中斷,串行端口完成一幀字符發送/接收后引起。
以上6個中斷源中,T2是52單片機特有的。
單片機在使用中斷功能時,通常需要設置兩個與中斷有關的寄存器:中斷允許寄存器IE和中斷優先級寄存器IP。
中斷允許寄存器用來設定各個中斷源的打開與關閉,IE在特殊功能寄存器中,字節地址為A8H,該寄存器可以進行按位尋址,單片機復位時IE全部被清0。
中斷優先級寄存器在特殊功能寄存器中,字節地址為B8H,IP用來設定各個中斷源屬于兩級中斷中的哪一級,該寄存器可以進行按位尋址,單片機復位時IE全部被清0。
在51單片機系列中,高優先級中斷能夠打斷低優先級中斷以形成中斷嵌套,同優先級中斷之間或低級對高級中斷則不能形成中斷嵌套。若幾個同級中斷同時向CPU請求中斷響應,在沒有設置中斷優先級情況下,按照默認終端級別響應中斷,在設置中斷優先級后,則按設置順序確定響應的先后順序。
單片機的定時器中斷:
51單片機內部共有兩個16位可編程的定時器/計數器,即定時器T0和定時器T1。52單片機多一個T2
定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時器/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0,T1的啟動和停止及設置溢出標志。
定時/計數器實質上是一個加1計數器。它隨著計數器的輸入脈沖進行自加1,也就是每來一個脈沖,計數器就自動加1,當加到計數器為全1時,再輸入一個脈沖就使計數器回零,且計數器的溢出使相應的中斷標志位置1,向CPU發出中斷請求(定時/計數器中斷允許時)。如果定時/計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。
可見,由溢出時計數器的值減去計數初值才是加1計數器的計數值。
51單片機定時/計數器最大可計 2^16=65536個數。(0——65535)
定時/計數初始值的確定:
定時器/計數器計滿之后溢出,向CPU申請中斷。因此定時器的初值X為計數器計數的最大值(65536)與需要計幾個數N之間的差值。
時鐘周期:晶振振蕩周期 T時鐘=1/f晶振
機器周期:計數器/定時器加一的時長
機器周期=12*時鐘周期(12M晶振單片機T機器=1us)
計數狀態 X=65536-N
定時狀態 X=65536-需要定的時間/機器周期。
所以定50ms,定時器初值應為65536-50000。
設置為定時器模式時,加1計數器是對內部機器周期計數(一個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12).計數值N乘以機器周期Tcy就是定時時間t。
單片機在使用定時器或計數器功能時,通常需要設置兩個與定時器有關的寄存器:定時器/計數器工作方式寄存器TMOD與定時器/計數器控制寄存器TCON。
TMOD(不能位尋址):
TMOD的高四位用于設置定時器1,低4位用于設置定時器0。
·GATE:門控位。用于控制定時器的啟動是否受外部中斷源信號的·影響。
·GATE=0時,只 要軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數器工作;
·GATE=1時,TR0或TR1為1,同時外部中斷引腳INT0/1也為高電平時,才能啟動 定時/計數器工作。
·C/T :定時/計數模式選擇位。C/T =0為定時模式;C/T =1為計數模式。
·M1M0:工作方式設置位。定時/計數器有四種工作方式。
TMOD=0X00; //T0工作方式為0,定時模式
TMOD=0X01; //T0工作方式為1,定時模式
TMOD=0X02; //T0工作方式為2,定時模式
TMOD=0X03; //T0工作方式為3,定時模式
方式1:計數初值與計數個數的關系為:N(初始值)=216-X(計數個數)
方式2:計數個數與計數初值的關系為:X=28-N
工作方式2特別適合于用作較精確的脈沖信號發生器。
方式3只適用于定時/計數器T0,定時器T1處于方式3時相當于TR1=0,停止計數。
TCON
TF1,TR1,TF0,TR0位用于定時器/計數器;IE1,IT1,IE0,IT0位用于外部中斷。
終端服務程序的寫法
中斷函數不能返回任何值,所以最前面用void;后面緊跟函數名,加Interrupt后面跟中斷號,中斷號是指單片機中幾個中斷源的序號,最后面的”using工作組”是指這個中斷函數是用單片機內存中4組工作寄存器中的哪一組。
在寫單片機的定時器程序是,在程序開始處需要對定時器及中斷寄存器做初始化設置,通常定時器初始化過程如下:
*對TMOD賦值,以確定T0和T1的工作方式。
*計算初值寫入TH0,TL0或TH1,TL1.
*中斷方式時,則對IE賦值,開放中斷。
*使TR0或TR1置位,啟動定時器/計數器定時或計數。
下一篇:實驗室一輪培訓考核筆試題
總結
以上是生活随笔為你收集整理的51单片机最全入门总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark Spare pi 测试报错
- 下一篇: 正向查找区域和反向查找区域的操作教程(内