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


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




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

計(jì)數(shù)與計(jì)數(shù)初值的關(guān)系為:X=216-N TF0=1 低8位能裝256個(gè)機(jī)器周期,高8位都滿了的時(shí)候,TF0=1此時(shí)向CPU發(fā)出中斷請(qǐng)求,需要在中斷程序中寫出需要執(zhí)行的東西。 TH0(表示高8位)=(65535-50000)/256 //對(duì)一個(gè)數(shù)求模,即這個(gè)數(shù)有幾個(gè)256除以256后的數(shù)取整。 只有高8位加滿一次后第八位才能加1次 TL0=(65535-50000)/%256 求余 65536-50000=15536(3CB0)
數(shù)碼管動(dòng)態(tài)顯示
鍵盤的功能如何消除抖動(dòng):加delay函數(shù)判斷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轉(zhuǎn)換器 

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


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