單片機:在一片集成電路芯片上集成微處理器、存儲器、I/O接口電路,從而構成單芯片微型計算機,即單片機。MCS-51系列單片機:集成8位CPU、4K字節ROM、128字節RAM、4個8位的并口、1個全雙工串行口、2個16位定時/計數器。尋址范圍64K,并有控制功能較強的布爾處理。 預備知識:對各種器件有一定的了解 1、電平: 電平特性 :高和低 定義單片機為TTL電平:高+5V(或3.3V取決于單片機的電源) 低+0V RS232(計算機串口的電平)電平:計算機的串口 高-12 低+12V 電平轉換芯片max232——用單片機與電腦通信時需要將單片機的電平轉換為計算機能夠識別的電平才能和電腦進行通信。 2、二進制: 3、二進制的邏輯運算: “與”運算 運算符號“·” 單片機中“&” “或”運算 運算符號“+”單片機中“|” “非”運算 運算符號“”(求反) “異或” 00=0 4、51單片機的系列 、STC 89C2RC40C-PDIP 0721CV4336 STC(公司)89(系列)C52(5-系列2-2*4K=8K 內部存儲空間)RC40(運行的工作速度40MHZ)C(商業級或I-工業級 差別在溫度范圍 )-PD(封裝型號PD 雙列直插式的)IP0721(07年第21周生產)CV4336(該批的型號) AT89C51(可到55)S(可以串行下載)LV(低電壓3V即可) 5引腳封裝 
8位為一個總線 /后面為第二功能 


機器周期 指令周期 
理論的基礎知識,做工程項目積累經驗。 C51知識: C語言用于單片機的編程,方便移植,C提供了很多數學函數效率高。 
一個字節占8位,char和int型用的最多 數據類型選擇不恰當,可能會導致程序變復雜。 
位變量:bit某一數據類型的一位, Sbit OV=PSW^2 表示PSW一個寄存器^2表示第二位 sbit ov 就是把PSW的第二位聲明為OV 
不標unsignt默認為符號型, 
Math.h可以直接調用里面的東西, 
位右移或位左移 01010010 右移整體移一位 循環左移和循環右移 按位與即 一位一位的與0101和0010 0101 0010 If 選擇語句 ;while 循環語言 ; for 語句 循環語言 switch/case 分支選擇語言 ; do-while 循環語句言 中斷服務程序 I/O口定義 
要達到寫出程序控制開發板上的東西能夠運行,控制單片機的L管腳 




自己動手需要硬件材料 杜邦線 排針 方便接線用
Ds12c887可在網站申請 焊錫 KEIL的使用實驗板的使用: 發光二極管 3mA的電流通過 壓降是1.7V 選擇與發光二極管串聯的電阻阻值的計算 限流電阻 上拉電阻 下拉電阻 去耦濾波電容 (對電源起到穩壓的作用) 電腦USB插口使用的是開關電源(USB是5V電壓,但壓值不會太穩定) 鎖存器(起到擴展的作用) D端 Q端 LE 真值圖L表示低; H表示高 Z表示數字電路中的一種高阻狀態(介于高低電平的一種狀態)。 表示這個管腳只在低電平時芯片才能有效工作,OE低電平有效(相當于芯片的一個控制器) LE即表示鎖存器的鎖存端 
鎖存器的作用是在做A/D實驗時不讓LED燈閃爍。 
51單片機上電之后默認是高電平 對某一個口進行操作時必須對這個口進行定義,否則會出現錯誤。 電亮第一個LED燈 總線操作方法使發光二級管電亮(沒有搞懂) 流水燈設計的知識點 單片機閃爍 即讓某一個口高低電平不斷變換 用到while表達 Keil中的rst是指針返回 操作單片機實際上就是對寄存器進行操作。全空和滿的意思。 
機器周期和指令周期 開發板的晶振頻率為11.0592MHZ,則周期為11.0592分之一秒。 一個機器周期是十二個時鐘周期,也就是晶振震動12次才是一個機器周期, C語言中不考慮時序周期 蜂鳴器 
此處的“有源蜂鳴器”的“源”并非電源的意思,時是否含有振蕩器的意思 壓電式蜂鳴器即無源蜂鳴器。 有源蜂鳴器可以通過控制單片機的高低電平,來發聲。 蜂鳴器的驅動應用廣泛,工作開始或結束時發聲,故障時發聲等。 無源蜂鳴器器需要一定頻率的脈沖才能使它發聲 占空比 一個周期內高電平時間比上整個周期時間的比 三極管的作用:放大電路的作用 驅動蜂鳴器只需要讓該管腳發出低電平,形成壓降后三極管導通,蜂鳴器就會響了 普中開發板是利用ULN2003來代替三極管達到電路放大的作用, ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數字量輸出卡等控制電路中,可直接接繼電器等負載。 三極管 PNP和NPN當箭頭朝里時為PNP否則為NPN。 繼電器80C51單片機的管腳——熟記沒一個引腳的功能該單片機為40管腳的單片機: 該單片機的1-8為P1口 RST/VPD是復位管腳: 第二功能:當對方單片機上電時啟用的是單片機的第二功能,對寄存器進行設置后第二功能被啟用 RXD/TXD 作用是串行口輸入和輸出 INT0/INT1作用是外部中斷0/1 T0/T1定時器0/1外部計數輸入(加方波可時自動數波的個數) WR/RD外部數據的讀寫功能 XTAL2/1是晶振的輸入端
控制管腳,設計電路,到嵌入式系統等 3太 高電平 低電平 高阻態 數碼管顯示字符數碼管內部是由8個發光二極管組成的。 
一個字節是八位 段選:數字中的那一節亮,控制數碼管亮什么東西, 位選:一個數字,控制哪一個數碼管亮 加上拉電阻的作用是使得電流足夠大,使數碼管工作。 原理圖 鎖存器:鎖存端是高電平時輸入端和輸出端是直通的,低電平時輸入端和輸出端斷開,輸出端保持原來的值。 鎖存端一個下降沿可以把鎖存器的值保持在鎖存器的輸出端 鎖存器是一個芯片由單片機控制鎖存器,而且只有一個管腳供你控制 P0口一定要加上拉電阻(大約為10K),不加電阻時為 三態,加電阻后上電即為高電平。 第一個數碼管顯示1
中斷系統51單片機只有兩級嵌套 RETI是匯編語言中的返回條件,C語言中沒有。 通過IT0來控制中斷的方式 外部中斷低電平觸發方式 中斷響應的條件: 中斷源請求;此中斷源中的允許位為1;CPU開中斷即EA=1;這三個條件同時滿足時CPU才有可能相應 外部中斷的觸發方式有兩種,電平觸發和跳沿觸發 P3.0口低電平時可以出現中斷 注意:外部中斷觸發方式時 P3.4和3.5計時功能開啟, 定時器和計數器的工作原理和結構定時器實質指甲加1計數器,高8位和第八位組成,TMOD是計數器的工作方式寄存器,TCON是控制寄存器,控制T0,T1的啟動和停止及設置溢出標志。TMOD寄存器的高四位T1第四位是控制T0,TCON是控制啟動和停止。 加1計數器輸入的計數脈沖有兩個來源,一個是用于定時器時由系統的時鐘振蕩器輸出脈沖經12分頻(每12個振動周期定時器加1,12個振蕩周期剛好是一個機器周期)后送來;一個是用于計數器時T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數器加1,當加到計數器為全1時,再輸入一個脈沖就使計數器回零,且計數器的溢出使TCON中TF0或TF1置1,向CPU發出中斷請求(定時/計數器中斷允許時)。如果定時/計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。 可見,由溢出時計數器的值減去計數初值才是加1計數器的計數值。 設置為定時器模式時,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為晶振頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間t 。 (例如:記50個數的話就是,假設頻率為12MHZ那么周期就是1/12:50X1/12X12=t 兩個寄存器全部裝滿可裝65535個數65535X1=65ms) 設置為計數器模式時,外部事件計數脈沖由T0或T1引腳輸入到計數器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數器加1,更新的計數值在下一個機器周期的S3P1期間裝入計數器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數頻率不超過1/2MHz,即計數脈沖的周期要大于2 ?s。 定時器的控制80C51單片機定時/計數器的工作由兩個特殊功能寄存器控制。TMOD用于設置其工作方式;TCON用于控制其啟動和中斷申請。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于設置定時/計數器的工作方式,低四位用于T0,高四位用于T1。其格式如下: 
GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數器工作;GATA=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數器工作。即此時定時器的啟動多了一條件。 C/:定時/計數模式選擇位;C/=0為定時模式; C/=1為計數模式 M1M0:(重點講了方式1) 
方式1的計數位數是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數器。

計數與計數初值的關系為:X=216-N TF0=1 低8位能裝256個機器周期,高8位都滿了的時候,TF0=1此時向CPU發出中斷請求,需要在中斷程序中寫出需要執行的東西。 TH0(表示高8位)=(65535-50000)/256 //對一個數求模,即這個數有幾個256除以256后的數取整。 只有高8位加滿一次后第八位才能加1次 TL0=(65535-50000)/%256 求余 65536-50000=15536(3CB0)
數碼管動態顯示
鍵盤的功能如何消除抖動:加delay函數判斷key1是否真為1
A/D和D/A 功放
8位D/A 11111111 輸出5V電壓;00000000輸出0V電壓;11110000輸出2.5V的電壓。 11111111 輸出50ma;00000000輸出0ma電壓;11110000輸出25ma T型D/A轉換器 

簡單說就是根據電阻的改變轉化電流或者電壓的大小。 數字地端與模擬地端 操作時序 :
串行通信原理異步通信與同步通信: 時鐘-晶振-一個機器周期是12個晶振周期-發送一個數字- 10個數字是一幀,幀與幀之間任意 無線數傳模塊 速度 高度
80c51串行口:結構: A表示計時器、串行口寄存器、TXD –P3.1 RXD-P3.0(接受)
沒發送完一個字節請求一次中斷,每接收一個字節也有一次中斷 SUBF(接受,發送都是) S=SBUF
SCON特殊寄存器,用于設置用以設定串行口的工作方式、接收/發送控制以及設置狀態標志


SM2,多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數據進入SBUF,并激活RI,進而在中斷服務中將數據從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數據進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現多機通信。 在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。 ●REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。 TB8,在方式2或方式3中,是發送數據的第九位,可以用軟件規定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀/數據幀的標志位。 在方式0和方式1中,該位未用。 ●RB8,在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。 T1發送中斷標志(方式1) 串行發送停止位的開始時,由內部硬件使TI置1,向CPU發中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申請。 RI,接收中斷標志位(方式1)串行接收停止位的中間時,由內部硬件使RI置1,向CPU發中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷申請。
講解工作方式1:
當T1作為波特率發生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數值。(TH1和TL1即裝初值要求非常準確) T1 溢出率= fosc /{12×[256 -(TH1)]} //即多長時間溢出一次 在單片機的應用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數的關系如表所示。
以上的Word格式文檔51黑下載地址:
單片機學習.docx
(11.32 MB, 下載次數: 22)
2019-12-10 21:35 上傳
點擊文件名下載附件
單片機學習筆記
|