版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
51單片機初學知識點總結經過這半個月的學習,我對于單片機的定時器、對I/O口的隨意操作、輸入檢測、中斷(定時器的中斷、單片機的外部中斷)、串口通信等幾大學習模塊有了一定了解和掌握。軟件。我主要是在keiluvision3實現用C語言進行編程和調試。使用keil時,新建或者打開已有文件,按步驟一步步來,漏掉哪一步都會影響最后程序是否能順利寫入單片機中。其中應注意保存C文檔、添加文件到工程中和建立hex文檔這幾個關鍵步驟。發(fā)光二極管和數碼管的顯示。發(fā)光二極管的靜態(tài)顯示是學習單片機的入門路標。分析相關模塊的電路圖,弄清楚引腳連接情況,根據電路圖直接控制LED引腳電位的高低就能實現對相應LED亮滅的控制。了解后完成走馬燈(流水線)或更多其他規(guī)則的LED顯示。數碼管的顯示較LED稍微復雜一點點,它分位選和段選,位選控制整個數碼管的亮滅,段選控制各數碼管以何種形式亮或滅。數碼管的顯示分三步:(1).全部數碼管顯示一樣的字符;(2).選定的數碼管以規(guī)定的形式亮;(3).數碼管的動態(tài)顯示。其中利用定時器或者延時程序控制數碼管動態(tài)顯示的頻率,以調節(jié)其顯示亮度和視覺穩(wěn)定度。用延時函數完成動態(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--); }}定時/計數器。編號中斷源中斷標志位終端服務程序入口優(yōu)先級0外部中斷0(INT0)IE00003H最高1定時/計數器0(T0)TF0000BH次之2外部中斷1(INT1)IE10013H次之3定時/計數器1(T1)TF1001BH次之4串口RI或TI0023H最低關于定時/計數器的兩個特殊功能寄存器TMOD用于T1用于T0GATEC/TM1M0GATEC/TM1M0TCON用于定時/計數器用于中斷TF1TR1TF0TR0IE1IT1IE0IT0M1M0:工作方式設置位M1M0工作方式說明00013位T/C01116位T/C1028位自動重裝T/C113T0分成兩個獨立的8位T/C,T1停止GATE:門控位。GATE=0,用軟件使TR0或TR1為1,就能啟動定時/計數器;GATE=1,用軟件使TR0或TR1為1,同事外部中斷引腳也為高,啟動。我們一般置GATE=0。C/T=0,位定時器;C/T=1,位計數器。對于定時時間的計算:或:要定時時間t=(65536-x)*(12/晶振頻率)定時/計數器初始化步驟:根據上面的信息,對TMOD賦初值,確定T0、T1的工作方式。計算初值,將其寫入TH0、TL0或TH1、TL1。為中斷方式時,對IE賦值,開放中斷。使TR0或TR1置高,啟動定時/計數器。例:TMOD=0x01;//T0處于工作方式1,為十六位定時/計數器 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; ……}}鍵盤。單片機鍵盤分獨立鍵盤和矩陣鍵盤兩類,矩陣鍵盤涉及鍵盤掃描程序。而與鍵盤按下有關的程序就要注意到消除抖動和松手檢測兩個重要的細節(jié)。松手檢測原理是,當鍵按下時,key2為低,!key2=1,此時程序一直在while語句里面循環(huán),無法跳出來,一旦松手,key2為高,程序即可跳出while循環(huán),執(zhí)行下面接下來的語句。if(key2==0) { delay(5);//延時5ms if(key2==0)//確定key2鍵的確按下,,消抖 { while(!key2);//松手檢測 …… } } 串口通信。串行通信的傳輸速率用波特率表示。波特率定義為:每秒發(fā)送二進制數碼的位數,單位為“bps”。波特率的計算公式:其中,。串行口控制寄存器SCONSCON76543210(98H)98HSM0SM1SM2RENTB8RB8TIRI其中SM0與SM1為串行口工作方式選擇位SM0SM1工作方式功能波特率0008位同步移位方式01110位異步收發(fā)器(UART)可變10211位異步收發(fā)器(UART)或11312位異步收發(fā)器(UART)可變 (1)51單片機串行口工作方式0實質是并行的工作方式,為同步的移位輸出和輸入,但要實現工作方式0必須要借助外接移位寄存芯片,實際應用中常用作并行I/O口得擴展。它的波特率固定,且數據傳送是以8位數為一幀,沒有起始和停止位。。(2)我主要研究學習了串行口工作方式1,它的數據格式是:一個起始位,8個數據位和一個停止位。設,波特率為9600,則根據上面的公式,SMOD=0時,TH1=TL1=0xfd;SMOD=1時,TH1=TL1=0xfa。(3)工作方式2和3的幀格式一樣,與工作方式1的類似,只是在原基礎上多加了一位內容由用戶決定的數據位。工作方式2的波特率與PCON個SMOD位有關。SMOD=1時,波特率為,SMOD=0時,波特率為。電源控制寄存器PCON(它不能位尋址)PCON7654321097HSMODSMOD為波特率倍增位。SMOD=1時,波特率增加一倍;復位時,SMOD=0。REN是允許接收控制位:REN=1時允許接收數據;REN=0時禁止接收數據。TI是發(fā)送中斷標志位:當發(fā)送完一幀數據后,該位由單片機自動置1,向CPU發(fā)送中斷請求信號。在中斷服務程序中,必須用軟件將其清0.RI是接收中斷標志位:與TI類似,接收完一幀后自動被置1,需由軟件置0.液晶顯示。常見的單片液晶顯示屏分16引腳和20引腳兩種,我使用的是16引腳的YJD1602A-2。安裝LCD時按如下三步走:(1)關閉開發(fā)板電源。(2)下載一個關閉數碼管個流水燈的程序進單片機。(3)順時針旋轉相應電位器以調節(jié)LCD的對比度,知道看到5*7點陣。功能輸入輸出讀狀態(tài)RS=L,RE=H,E=HD0~D7=狀態(tài)字寫指令RS=L,RW=L,D0~D7=指令碼,E=高脈沖無讀數據RS=H,RW=H,E=HD0~D7=數據寫數據RS=H,RW=L,D0~D7=數據,E=高脈沖無這四種功能里面,讀狀態(tài)與讀數據實用性不大,我們學習單片機時主要聯系寫指令和寫數據,所以我們對RW置高,給E高脈沖,5引腳直接接地。關于數據指針:顯示模式:0x38控制信號指令代碼RSR/WD7D6D5D4D3D2D1D000001DLNF00具體設置表為:控制位控制信號功能說明DLDL=0接口總線為4位長度(僅D7~D4有效),8位數據與指令代碼按先高后低位的方向分兩次傳輸LCD與單片機接口形式。(數據的傳輸方式)DL=1接口總線為8位長度(D7~D0有效)NN=0顯示1行字符行N=1顯示2行字符行FF=05*7字符體F=15*10字符體顯示開關及光標:00001DCB10D開顯示關顯示C顯示光標不顯示光標B光標閃爍光標不閃爍 00001NS10N當讀/寫一個字節(jié)后地址指針加一,且光標加一當讀/寫一個字節(jié)后地址指針減一,且光標減一S當寫一個字符,(N=1)整屏左移,(N=1)整屏左移當寫一個字符,整屏顯示不移動清屏:指令代碼0x01。執(zhí)行此指令,HD44780將DDRAM的數據全部寫入“空白”的代碼,清除所顯示的內容,同事光標移到左上角。光標歸位:指令代碼0x02或0x03。AC(地址計數器)的值被清“0”,但是DDRAM(顯示數據存儲器)的逐句不變,光標移到左上角。移動光標:控制信號指令代碼RSR/WD7D6D5D4D3D2D1D0000001S/CR/L------其中S/C和R/L的取值控制光標或字符的左右移動:控制位指令代碼說明S/CR/L000x10光標左移010x14光標右移100x18字符左移110x1c字符右移寫指令函數:voidwrite_com(ucharcom){ rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }寫數據函數:voidwrite_date(uchardate){ rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; }IIC總線。IIC總線是由數據線SDA和時鐘線SCL構成的串行總線,可發(fā)送和接收數據。IIC總線在數據傳送過程中有四種類型信號,他們分別是:起始信號、終止信號、應答信號和非應答信號。起始信號:SCL為高時,SDA有一個下降跳變。起始信號由主機產生。voidstart()//起始信號{ sda=1; delay();//5us就夠了,所以這里只需一個指令周期 scl=1; delay(); sda=0; delay();}終止信號:SCL為高時,SDA有一個上升跳變。終止信號也只能由主機產生。voidstop()//終止信號{ sda=0; delay(); scl=1; delay(); sda=1; delay();}應答信號:IIC總線傳送時每字節(jié)為8位,從機在接收到一個字節(jié)的數據后,在第9位以低電平作為應答信號,,同時要求主機在第9個時鐘脈沖位上釋放SDA線,以便從機發(fā)出應答信號,將SDA拉低,表示接收數據的應答voidrespons()//應答信號{ sda=0; delay(); scl=1; delay(); scl=0; delay();} 非應答信號:主機在第9位接收到非應答信號,則表示停止數據的發(fā)送或接收。voiddisrespons()//非應答信號{ sda=1; delay(); scl=1; delay(); scl=0; delay();} 移位操作: 左移:最低位補0,最高位移入PSW的CY位 右移:最高位補0,最低位移除器件地址:高四位固定,最低位決定讀/寫,另外A0~A2位與從機和總線的接法有關。1010A2A1A0R/W=0,寫R/E=1,讀主機進行寫操作時,首先由主機發(fā)送起始信號,接著是高四位固定為1010而最低位位0的寫器件地址,從機發(fā)送應答信號后,主機發(fā)送寫數據地址,從機再次應答之后主機就可以發(fā)送數據了,接著從機發(fā)送應答信號或者非應答信號之后主機發(fā)送終止信號,如下圖所示。主機進行讀操作時,首先由主機發(fā)送起始信號,接著是高四位固定為1010而最低位位0的寫器件地址,從機發(fā)送應答信號后,主機發(fā)送寫數據地址,從機再次應答之后主機再次發(fā)送起始信號,接著是高四位固定為1010而最低位位1的讀器件地址,從機應答之后就可以讀數據了,接著主機發(fā)送應答信號或者非應答信號之后主機發(fā)送終止信號,如下圖。心得體會:以上是我根據這半個月學習的單片機知識和編寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版應急通訊基站搭棚施工合同參考2篇
- 二零二五版交通事故車輛維修及賠償協(xié)議2篇
- 二零二五年度食品飲料品牌授權銷售合同范本2篇
- 二零二五年度儲罐安裝與環(huán)保驗收合同4篇
- 2025年度個人理財產品投資及收益分配合同4篇
- 2025年度生物質能發(fā)電項目承包清工勞務合同模板4篇
- 二零二五年度玻璃工藝品設計與生產合作協(xié)議
- 二零二五年度轉租協(xié)議甲乙丙三方權益保障合同
- 2025年度跨境電商股權退出撤資協(xié)議書
- 二零二五年度餐廳租賃合同附餐飲行業(yè)趨勢研究合作
- 2025年春新滬科版物理八年級下冊全冊教學課件
- 2025屆高考語文復習:散文的結構與行文思路 課件
- 電網調度基本知識課件
- 拉薩市2025屆高三第一次聯考(一模)語文試卷(含答案解析)
- 《保密法》培訓課件
- 回收二手機免責協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應用技術規(guī)程
- (權變)領導行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關知識考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術語第2部分:化學分析
評論
0/150
提交評論