單片機實踐課件 10電科 131402_第1頁
單片機實踐課件 10電科 131402_第2頁
單片機實踐課件 10電科 131402_第3頁
單片機實踐課件 10電科 131402_第4頁
單片機實踐課件 10電科 131402_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單片機原理

及應用課程實踐實驗內容考核:課堂操作60%:ABCD

實驗報告40%:ABCD單片機原理及應用課程實踐PC機C8051f410CPU內核128×64點陣LCD字符圖形顯示鍵盤輸入控制LED顯示控制AD定時器2UART0定時器1FYD12864-0402B

函數信號發(fā)生器P1,P0單片機原理及應用課程實踐模塊功能工作原理相關寄存器寄存器配置實驗環(huán)境:1、C8051F系列單片機是集成的混合信號片上系統(tǒng)SOC(Systemonchip)。2、C8051F41x系列器件使用SiliconLabs的專利CIP-51微控制器核。CIP-51與MCS-51TM指令集完全兼容,可以使用標準805x的匯編器和編譯器進行軟件開發(fā)。

C8051F系列單片機列單片機芯片示意圖

C8051F020原理框

高速微控制器內核數字IO模擬外設3、SiliconLabs提供一個集成開發(fā)環(huán)境(IDE),包括編輯器、宏匯編器、調試器和編程器。單片機原理與應用課程實踐實驗一:C8051F410入門及定時器實驗基本要求:用查詢或中斷方式對定時器0~3進行定時應用;利用定時器0,1實現對P1.0引腳輸入的時鐘信號進行計數;擴展要求:利用PCA產生PWM波形

定時器/計數器的核心-----計數器

計時鐘信號脈沖的個數

計時鐘信號脈沖的周期數

n*T定時時鐘源=t定時時間

(2m-x)*T定時時鐘源=t定時時間

承認自己最不想面對的弱點,是進步的開始…定時器/計數器0方式2的原理框圖承認自己最不想面對的弱點,是進步的開始…圖7.4定時器2的16位方式原理框圖定時器/計數器2的16位方式原理框圖承認自己最不想面對的弱點,是進步的開始…振蕩器結構框圖單片機原理與應用課程實踐實驗二:C8051F410片內AD應用基本要求:用定時器2溢出作為AD的啟動源,對P2.0引腳輸入電壓信號進行AD轉換;并將電壓值顯示在四位八段數碼管上。擴展要求:對輸入的信號進行16次取平均并使能窗口檢測功能,如果輸入電壓信號超出

范圍進行報警。分析:1.單片機內部模塊的配置:PORTI/OOSILLATORTIMER2PCA-WDTTIMERAD2.四位數碼管的動態(tài)顯示:四位八段數碼管動態(tài)顯示:

所謂的動態(tài)顯示,就是4只LED顯示器不同時顯示,一次只點亮一只LED顯示器,4只LED顯示器輪流點亮,利用人眼的視覺暫留和LED顯示器余輝,就可看到4只LED顯示器同時點亮,但亮度有所下降。while(1){ P10=0; P11=1; P12=1; P13=1; P2=key[0]; delay1ms(100); P10=1; P11=0; P12=1; P13=1; P2=key[1]; delay1ms(100); P10=1; P11=1; P12=0; P13=1; P2=key[2]; delay1ms(100); P10=1; P11=1; P12=1; P13=0; P2=key[3]; delay1ms(100); }ucharcodekey[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8e}; //共陽極數碼管0到F編碼不帶小數點ADC功能模塊圖

單片機原理與應用課程實踐實驗三:C8051F410片內UART通信接口實驗基本要求:用定時器2溢出作為AD的啟動源,對P1.0引腳輸入電壓信號進行AD轉換;并將電壓值顯示在四位八段數碼管上。并通過串口發(fā)送至上位機。擴展要求:上位機可以對采集通道進行控制,上位機可以轉換時間間隔進行適當的控制。UART0的結構與原理框圖C8051F410單片機的UART0控制機制相關的特殊功能寄存器:串行數據緩沖寄存器SBUF0串行口控制寄存器SCON0中斷允許控制寄存器IE:EA、ES0中斷優(yōu)先級寄存器IP:PS0控制波特率發(fā)生器的特殊功能寄存器有TMOD、TCON、CKCON、INT01CF、TL1、TH1串行口狀態(tài)控制寄存器SCON

C8051F410單片機的UART0的工作方式在串行口控制寄存器SCON0中,S0MODE位決定串行口的工作方式。UART0共有2種工作方式。

單片機原理與應用課程實踐實驗四:按鍵輸入接口設計實驗基本要求:用定時器2溢出作為AD的啟動源,對P1.0引腳輸入電壓信號進行AD轉換;并將電壓值顯示在四位八段數碼管上??梢酝ㄟ^按鍵輸入來確定采樣的通道。擴展要求:利用按鍵輸入來修改四位八段數碼管上顯示的數值。按鍵接口電路//-----------------------------------------------------------------------------//keyscan:4*4鍵盤掃描程序//-----------------------------------------------------------------------------//ReturnValue:key:按下的鍵值//Parameters:None//-----------------------------------------------------------------------------ucharkeyscan(void){ucharscan1,scan2,keycode,j;P0=0xf0;scan1=P0;if((scan1&0xf0)!=0xf0)//判鍵是否按下

{delay1ms(20);//延時20msscan1=P0;if((scan1&0xf0)!=0xf0)//二次判鍵是否按下

{P0=0x0f;scan2=P0;keycode=scan1|scan2;//組合成鍵編碼

for(j=0;j<=15;j++){if(keycode==key_code[j])//查表得鍵值

{return(key[j]);}}}}elsereturn0xff;}單片機原理與應用課程實踐實驗五:128×64LCD模塊的應用1基本要求:掌握LCD的字符顯示的基本原理。能實現在LCD上顯示相應的字符信息。并將電壓值顯示在四位八段數碼管上。可以通過按鍵輸入來確定采樣的通道。擴展要求:結合實驗二,將電壓值實時動態(tài)地顯示在LCD上。單片機原理與應用課程實踐實驗六:128×64LCD模塊的應用2基本要求:掌握LCD的圖形顯示的基本原理。能實現在LCD上顯示出一些基本的直線段。擴展要求:實現在LCD上顯示一副圖像。單片機原理與應用課程實踐實驗七:128×64LCD模塊的應用3基本要求:能將由P1.0輸入的正弦電壓信號波形一個周期的信號顯示在LCD顯示屏上。擴展要求:能動態(tài)地將由P1.0輸入的正弦電壓信號波形顯示在LCD顯示屏上。128*64LCD的顯示控制思考:思考一:如何在LCD上顯示中文字符或ASCII碼?思考二:如何在LCD上顯示一條橫向的線?思考三:如何在LCD上顯示一條縱向的線?思考四:如何在LCD上顯示圖形?33LCD可分為兩種類型,一種是字符模式lcd,另一種是圖形模式lcd。LCD的控制需專用的驅動電路,一般不會單獨使用,而是將lcd面板,驅動與控制電路組合成模塊一起使用,簡稱lcm。LCD分類FYD12864-0402B是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字.也可完成圖形顯示.FYD12864-0402B方框圖FYD12864-0402B液晶模塊框圖如圖1所示,其中ST7920為液晶顯示控制芯片,ST7921為液晶顯示驅動芯片。模塊主要硬件構成說明忙標志:BF字型產生ROM(CGROM)(中文字庫):8192ASCII碼字庫HCGROM:128顯示數據RAM(DDRAM)字型產生RAM(CGRAM):造字,4組16x16繪圖RAM(GDRAM):圖形顯示地址計數器AC:儲存DDRAM/CGRAM之一的地址,自動加一。光標/閃爍控制電路●忙標志:BFBF標志提供內部工作情況.BF=1表示模塊在進行內部操作,此時模塊不接受外部指令和數據.BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數據.利用STATUSRD指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態(tài).●地址計數器AC地址計數器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數器的值就會自動加一,當RS為“0”時而R/W為“1”時,地址計數器的值會被讀取到DB6——DB0中?!?/p>

光標/閃爍控制電路

此模塊提供硬體光標及閃爍控制電路,由地址計數器的值來指定DDRAM中的光標或閃爍位置。模塊主要硬件構成說明●顯示數據RAM(DDRAM)模塊內部顯示數據RAM提供64×2個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分別是半角英數字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H—0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇CGRAM的自定義字型,02H—7FH的編碼中將選擇半角英數字的字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140—D75F),GB(A1A0-F7FFH)。模塊主要硬件構成說明字符顯示原理字符顯示:字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應的關系,如下表所示。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現的。字符顯示原理FYD12864-0402B每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可顯示32個中文字符或64個ASCII碼字符。FYD12864-0402B內部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現的。根據寫入內容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。3種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006,共4個)顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應的關系。數據與地址信息的格式是怎樣的?指令8位并行連接時序圖

MPU寫資料到模塊8位并行連接時序圖

MPU從模塊讀出資料代碼解讀sbitRS=P1^3;sbitRW=P1^4;sbitEN=P1^5; sbitPSB=P1^6;sbitRET=P0^7;voidwrite12864com(ucharcom){ RS=0; RW=0; delay_50us(1); P2=com; EN=1; delay_50us(1); EN=0; delay_50us(1);}voidwrite12864dat(uchardat){ RS=1; RW=0; delay_50us(1); P2=dat; EN=1; delay_50us(1); EN=0; delay_50us(1);}voidinitinal12864(void){ PSB=1; RET=1; delay_50ms(2); write12864com(0x30); delay_50us(2); write12864com(0x30); delay_50us(2); write12864com(0x0c); delay_50us(1); write12864com(0x01); delay_50us(20); write12864com(0x06); delay_50us(2);

}voidPORT_Init(void){//P0.0-Unassigned,Open-Drain,Digital//P0.1-Unassigned,Open-Drain,Digital//P0.2-Unassigned,Open-Drain,Digital//P0.3-Unassigned,Open-Drain,Digital//P0.4-TX0(UART0),Push-Pull,Digital//P0.5-RX0(UART0),Push-Pull,Digital//P0.6-Unassigned,Open-Drain,Digital//P0.7-Unassigned,Open-Drain,Digital//P1.0-Unassigned,Open-Drain,Digital//P1.1-Skipped,Open-Drain,Analog//P1.2-Unassigned,Open-Drain,Digital//P1.3-Skipped,Push-Pull,Digital//P1.4-Skipped,Push-Pull,Digital//P1.5-Skipped,Push-Pull,Digital//P1.6-Skipped,Push-Pull,Digital//P1.7-Unassigned,Open-Drain,Digital//P2.0-Skipped,Push-Pull,Digital//P2.1-Skipped,Push-Pull,Digital//P2.2-Skipped,Push-Pull,Digital//P2.3-Skipped,Push-Pull,Digital//P2.4-Skipped,Push-Pull,Digital//P2.5-Skipped,Push-Pull,Digital//P2.6-Skipped,Push-Pull,Digital//P2.7-Skipped,Push-Pull,DigitalP1MDIN=0xFD;P0MDOUT=0x30;P1MDOUT=0x78;P2MDOUT=0xFF;P1SKIP=0x7A;P2SKIP=0xFF;XBR0=0x01;XBR1=0x40;}voiddelay_50us(uintt){ uchari=2; while(t--) while(i--);

}voiddelay_50ms(uintt){ uinti,j,k; for(i=t;i>0;i--) for(j=57;j>0;j--) for(k=100;k>0;k--);}●繪圖RAM(GDRAM):圖形顯示,GDRAM的坐標地址與資料排列順序如下圖:模塊主要硬件構成說明先設垂直地址再設水平地址(連續(xù)寫入兩個字節(jié)的指令來完成垂直與水平的坐標地址)垂直地址范圍AC5...AC0水平地址范圍AC3…AC0繪圖RAM的地址計數器(AC)只會對水平地址(X軸)自動加一,當水平地址=0FH時會重新設為00H但并不會對垂直地址做進位自動加一,故當連續(xù)寫入多筆資料時,程序需自行判斷垂直地址是否需重新設定。圖形顯示原理指令:指令表2:(RE=1:擴充指令)

應用說明用FYD12864-0402B顯示模塊時應注意以下幾點:①欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。③當字符編碼為2字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié)。④模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時間說明。⑤“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。思考一:如何在指定位置顯示漢字?思考一:如何在指定位置顯示漢字?思考二:如何畫一根橫向的線?思考二:如何畫一根橫向的線?voidline(void){uchari;

for(i=0;i<8;i++){wr_lcd(comm,0x36);wr_lcd(comm,y);wr_lcd(comm,x1+i);wr_lcd(comm,0x30);wr_lcd(datt,0x00);wr_lcd(datt,0xff);}

}思考三:如何畫一根縱向的線?思考三:如何畫一根縱向的線?voidline2(void){uchari;

for(i=0;i<32;i++){wr_lcd(comm,0x36);wr_lcd(comm,y+i);wr_lcd(comm,x1);wr_lcd(comm,0x30);wr_lcd(datt,0x01);wr_lcd(datt,0x00);}

for(i=0;i<32;i++){wr_lcd(comm,0x36);wr_lcd(comm,y+i);wr_lcd(comm,x2);wr_lcd(comm,0x30);wr_lcd(datt,0x01);wr_lcd(datt,0x00);}

}linev=INA0;

if(linev<32){ for(i=0;i<8;i++){wr_lcd(comm,0x34);wr_lcd(comm,y+0x1f-linev);wr_lcd(comm,x2+i); wr_lcd(comm,0x30);wr_lcd(datt,0xff);wr_lcd(datt,0xff);}}

elseif((linev>=32)&(linev<=64)){ for(i=0;i<8;i++){wr_lcd(comm,0x34);wr_lcd(comm,y+0x1f+0x20-linev);wr_lcd(comm,x1+i);

溫馨提示

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

最新文檔

評論

0/150

提交評論