51單片機(jī)初學(xué)知識點(diǎn)總結(jié)_第1頁
51單片機(jī)初學(xué)知識點(diǎn)總結(jié)_第2頁
51單片機(jī)初學(xué)知識點(diǎn)總結(jié)_第3頁
51單片機(jī)初學(xué)知識點(diǎn)總結(jié)_第4頁
51單片機(jī)初學(xué)知識點(diǎn)總結(jié)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

51單片機(jī)初學(xué)知識點(diǎn)總結(jié)經(jīng)過這半個月的學(xué)習(xí),我對于單片機(jī)的定時器、對I/O口的隨意操作、輸入檢測、中斷(定時器的中斷、單片機(jī)的外部中斷)、串口通信等幾大學(xué)習(xí)模塊有了一定了解和掌握。軟件。我主要是在keiluvision3實現(xiàn)用C語言進(jìn)行編程和調(diào)試。使用keil時,新建或者打開已有文件,按步驟一步步來,漏掉哪一步都會影響最后程序是否能順利寫入單片機(jī)中。其中應(yīng)注意保存C文檔、添加文件到工程中和建立hex文檔這幾個關(guān)鍵步驟。發(fā)光二極管和數(shù)碼管的顯示。發(fā)光二極管的靜態(tài)顯示是學(xué)習(xí)單片機(jī)的入門路標(biāo)。分析相關(guān)模塊的電路圖,弄清楚引腳連接情況,根據(jù)電路圖直接控制LED引腳電位的高低就能實現(xiàn)對相應(yīng)LED亮滅的控制。了解后完成走馬燈(流水線)或更多其他規(guī)則的LED顯示。數(shù)碼管的顯示較LED稍微復(fù)雜一點(diǎn)點(diǎn),它分位選和段選,位選控制整個數(shù)碼管的亮滅,段選控制各數(shù)碼管以何種形式亮或滅。數(shù)碼管的顯示分三步:(1).全部數(shù)碼管顯示一樣的字符;(2).選定的數(shù)碼管以規(guī)定的形式亮;(3).數(shù)碼管的動態(tài)顯示。其中利用定時器或者延時程序控制數(shù)碼管動態(tài)顯示的頻率,以調(diào)節(jié)其顯示亮度和視覺穩(wěn)定度。用延時函數(shù)完成動態(tài)掃描:while(1) { D1=nn/100; D2=nn%100/10; D3=nn%10; P1=0x01; P0=tab[D1]; delay(10); P1=0x02; P0=tab[D2]; delay(10); P1=0x04; P0=tab[D3]; delay(10); }延時子程序: voiddelay(x)//延時1ms子程序{ unsignedchary; while(x--) { for(y=110;y>0;y--); }}定時/計數(shù)器。編號中斷源中斷標(biāo)志位終端服務(wù)程序入口優(yōu)先級0外部中斷0(INT0)IE00003H最高1定時/計數(shù)器0(T0)TF0000BH次之2外部中斷1(INT1)IE10013H次之3定時/計數(shù)器1(T1)TF1001BH次之4串口RI或TI0023H最低關(guān)于定時/計數(shù)器的兩個特殊功能寄存器TMOD用于T1用于T0GATEC/TM1M0GATEC/TM1M0TCON用于定時/計數(shù)器用于中斷TF1TR1TF0TR0IE1IT1IE0IT0M1M0:工作方式設(shè)置位M1M0工作方式說明00013位T/C01116位T/C1028位自動重裝T/C113T0分成兩個獨(dú)立的8位T/C,T1停止GATE:門控位。GATE=0,用軟件使TR0或TR1為1,就能啟動定時/計數(shù)器;GATE=1,用軟件使TR0或TR1為1,同事外部中斷引腳也為高,啟動。我們一般置GATE=0。C/T=0,位定時器;C/T=1,位計數(shù)器。對于定時時間的計算:或:要定時時間t=(65536-x)*(12/晶振頻率)定時/計數(shù)器初始化步驟:根據(jù)上面的信息,對TMOD賦初值,確定T0、T1的工作方式。計算初值,將其寫入TH0、TL0或TH1、TL1。為中斷方式時,對IE賦值,開放中斷。使TR0或TR1置高,啟動定時/計數(shù)器。例:TMOD=0x01;//T0處于工作方式1,為十六位定時/計數(shù)器 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;//T0初始化完畢定時子程序:voidtimer0()interrupt1 //定時子程序{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; if(aa==10){ aa=0; ……}}鍵盤。單片機(jī)鍵盤分獨(dú)立鍵盤和矩陣鍵盤兩類,矩陣鍵盤涉及鍵盤掃描程序。而與鍵盤按下有關(guān)的程序就要注意到消除抖動和松手檢測兩個重要的細(xì)節(jié)。松手檢測原理是,當(dāng)鍵按下時,key2為低,!key2=1,此時程序一直在while語句里面循環(huán),無法跳出來,一旦松手,key2為高,程序即可跳出while循環(huán),執(zhí)行下面接下來的語句。if(key2==0) { delay(5);//延時5ms if(key2==0)//確定key2鍵的確按下,,消抖 { while(!key2);//松手檢測 …… } } 串口通信。串行通信的傳輸速率用波特率表示。波特率定義為:每秒發(fā)送二進(jìn)制數(shù)碼的位數(shù),單位為“bps”。波特率的計算公式:其中,。串行口控制寄存器SCONSCON76543210(98H)98HSM0SM1SM2RENTB8RB8TIRI其中SM0與SM1為串行口工作方式選擇位SM0SM1工作方式功能波特率0008位同步移位方式01110位異步收發(fā)器(UART)可變10211位異步收發(fā)器(UART)或11312位異步收發(fā)器(UART)可變 (1)51單片機(jī)串行口工作方式0實質(zhì)是并行的工作方式,為同步的移位輸出和輸入,但要實現(xiàn)工作方式0必須要借助外接移位寄存芯片,實際應(yīng)用中常用作并行I/O口得擴(kuò)展。它的波特率固定,且數(shù)據(jù)傳送是以8位數(shù)為一幀,沒有起始和停止位。。(2)我主要研究學(xué)習(xí)了串行口工作方式1,它的數(shù)據(jù)格式是:一個起始位,8個數(shù)據(jù)位和一個停止位。設(shè),波特率為9600,則根據(jù)上面的公式,SMOD=0時,TH1=TL1=0xfd;SMOD=1時,TH1=TL1=0xfa。(3)工作方式2和3的幀格式一樣,與工作方式1的類似,只是在原基礎(chǔ)上多加了一位內(nèi)容由用戶決定的數(shù)據(jù)位。工作方式2的波特率與PCON個SMOD位有關(guān)。SMOD=1時,波特率為,SMOD=0時,波特率為。電源控制寄存器PCON(它不能位尋址)PCON7654321097HSMODSMOD為波特率倍增位。SMOD=1時,波特率增加一倍;復(fù)位時,SMOD=0。REN是允許接收控制位:REN=1時允許接收數(shù)據(jù);REN=0時禁止接收數(shù)據(jù)。TI是發(fā)送中斷標(biāo)志位:當(dāng)發(fā)送完一幀數(shù)據(jù)后,該位由單片機(jī)自動置1,向CPU發(fā)送中斷請求信號。在中斷服務(wù)程序中,必須用軟件將其清0.RI是接收中斷標(biāo)志位:與TI類似,接收完一幀后自動被置1,需由軟件置0.液晶顯示。常見的單片液晶顯示屏分16引腳和20引腳兩種,我使用的是16引腳的YJD1602A-2。安裝LCD時按如下三步走:(1)關(guān)閉開發(fā)板電源。(2)下載一個關(guān)閉數(shù)碼管個流水燈的程序進(jìn)單片機(jī)。(3)順時針旋轉(zhuǎn)相應(yīng)電位器以調(diào)節(jié)LCD的對比度,知道看到5*7點(diǎn)陣。功能輸入輸出讀狀態(tài)RS=L,RE=H,E=HD0~D7=狀態(tài)字寫指令RS=L,RW=L,D0~D7=指令碼,E=高脈沖無讀數(shù)據(jù)RS=H,RW=H,E=HD0~D7=數(shù)據(jù)寫數(shù)據(jù)RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖無這四種功能里面,讀狀態(tài)與讀數(shù)據(jù)實用性不大,我們學(xué)習(xí)單片機(jī)時主要聯(lián)系寫指令和寫數(shù)據(jù),所以我們對RW置高,給E高脈沖,5引腳直接接地。關(guān)于數(shù)據(jù)指針:顯示模式:0x38控制信號指令代碼RSR/WD7D6D5D4D3D2D1D000001DLNF00具體設(shè)置表為:控制位控制信號功能說明DLDL=0接口總線為4位長度(僅D7~D4有效),8位數(shù)據(jù)與指令代碼按先高后低位的方向分兩次傳輸LCD與單片機(jī)接口形式。(數(shù)據(jù)的傳輸方式)DL=1接口總線為8位長度(D7~D0有效)NN=0顯示1行字符行N=1顯示2行字符行FF=05*7字符體F=15*10字符體顯示開關(guān)及光標(biāo):00001DCB10D開顯示關(guān)顯示C顯示光標(biāo)不顯示光標(biāo)B光標(biāo)閃爍光標(biāo)不閃爍 00001NS10N當(dāng)讀/寫一個字節(jié)后地址指針加一,且光標(biāo)加一當(dāng)讀/寫一個字節(jié)后地址指針減一,且光標(biāo)減一S當(dāng)寫一個字符,(N=1)整屏左移,(N=1)整屏左移當(dāng)寫一個字符,整屏顯示不移動清屏:指令代碼0x01。執(zhí)行此指令,HD44780將DDRAM的數(shù)據(jù)全部寫入“空白”的代碼,清除所顯示的內(nèi)容,同事光標(biāo)移到左上角。光標(biāo)歸位:指令代碼0x02或0x03。AC(地址計數(shù)器)的值被清“0”,但是DDRAM(顯示數(shù)據(jù)存儲器)的逐句不變,光標(biāo)移到左上角。移動光標(biāo):控制信號指令代碼RSR/WD7D6D5D4D3D2D1D0000001S/CR/L------其中S/C和R/L的取值控制光標(biāo)或字符的左右移動:控制位指令代碼說明S/CR/L000x10光標(biāo)左移010x14光標(biāo)右移100x18字符左移110x1c字符右移寫指令函數(shù):voidwrite_com(ucharcom){ rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }寫數(shù)據(jù)函數(shù):voidwrite_date(uchardate){ rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; }IIC總線。IIC總線是由數(shù)據(jù)線SDA和時鐘線SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。IIC總線在數(shù)據(jù)傳送過程中有四種類型信號,他們分別是:起始信號、終止信號、應(yīng)答信號和非應(yīng)答信號。起始信號:SCL為高時,SDA有一個下降跳變。起始信號由主機(jī)產(chǎn)生。voidstart()//起始信號{ sda=1; delay();//5us就夠了,所以這里只需一個指令周期 scl=1; delay(); sda=0; delay();}終止信號:SCL為高時,SDA有一個上升跳變。終止信號也只能由主機(jī)產(chǎn)生。voidstop()//終止信號{ sda=0; delay(); scl=1; delay(); sda=1; delay();}應(yīng)答信號:IIC總線傳送時每字節(jié)為8位,從機(jī)在接收到一個字節(jié)的數(shù)據(jù)后,在第9位以低電平作為應(yīng)答信號,,同時要求主機(jī)在第9個時鐘脈沖位上釋放SDA線,以便從機(jī)發(fā)出應(yīng)答信號,將SDA拉低,表示接收數(shù)據(jù)的應(yīng)答voidrespons()//應(yīng)答信號{ sda=0; delay(); scl=1; delay(); scl=0; delay();} 非應(yīng)答信號:主機(jī)在第9位接收到非應(yīng)答信號,則表示停止數(shù)據(jù)的發(fā)送或接收。voiddisrespons()//非應(yīng)答信號{ sda=1; delay(); scl=1; delay(); scl=0; delay();} 移位操作: 左移:最低位補(bǔ)0,最高位移入PSW的CY位 右移:最高位補(bǔ)0,最低位移除器件地址:高四位固定,最低位決定讀/寫,另外A0~A2位與從機(jī)和總線的接法有關(guān)。1010A2A1A0R/W=0,寫R/E=1,讀主機(jī)進(jìn)行寫操作時,首先由主機(jī)發(fā)送起始信號,接著是高四位固定為1010而最低位位0的寫器件地址,從機(jī)發(fā)送應(yīng)答信號后,主機(jī)發(fā)送寫數(shù)據(jù)地址,從機(jī)再次應(yīng)答之后主機(jī)就可以發(fā)送數(shù)據(jù)了,接著從機(jī)發(fā)送應(yīng)答信號或者非應(yīng)答信號之后主機(jī)發(fā)送終止信號,如下圖所示。主機(jī)進(jìn)行讀操作時,首先由主機(jī)發(fā)送起始信號,接著是高四位固定為1010而最低位位0的寫器件地址,從機(jī)發(fā)送應(yīng)答信號后,主機(jī)發(fā)送寫數(shù)據(jù)地址,從機(jī)再次應(yīng)答之后主機(jī)再次發(fā)送起始信號,接著是高四位固定為1010而最低位位1的讀器件地址,從機(jī)應(yīng)答之后就可以讀數(shù)據(jù)了,接著主機(jī)發(fā)送應(yīng)答信號或者非應(yīng)答信號之后主機(jī)發(fā)送終止信號,如下圖。心得體會:以上是我根據(jù)這半個月學(xué)習(xí)的單片機(jī)知識和編寫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論