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

下載本文檔

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

文檔簡介

實驗一:C8051F410入門及定時器實驗實驗二:C8051F410片內(nèi)AD應(yīng)用實驗三:C8051F410片內(nèi)UART通信接口實驗實驗四:按鍵輸入接口設(shè)計實驗實驗五:128×64點陣型液晶字符顯示實驗實驗六:128×64點陣型液晶圖形顯示實驗單片機(jī)原理

及應(yīng)用課程實踐實驗內(nèi)容考核:課堂操作60%:ABCD

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

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

C8051F系列單片機(jī)列單片機(jī)芯片示意圖

C8051F020原理框

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

定時器/計數(shù)器的核心-----計數(shù)器

計時鐘信號脈沖的個數(shù)

計時鐘信號脈沖的周期數(shù)

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

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

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

范圍進(jìn)行報警。分析:1.單片機(jī)內(nèi)部模塊的配置:PORTI/OOSILLATORTIMER2PCA-WDTTIMERAD2.四位數(shù)碼管的動態(tài)顯示:四位八段數(shù)碼管動態(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}; //共陽極數(shù)碼管0到F編碼不帶小數(shù)點ADC功能模塊圖

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

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

單片機(jī)原理與應(yīng)用課程實踐實驗四:按鍵輸入接口設(shè)計實驗基本要求:用定時器2溢出作為AD的啟動源,對P1.0引腳輸入電壓信號進(jìn)行AD轉(zhuǎn)換;并將電壓值顯示在四位八段數(shù)碼管上。可以通過按鍵輸入來確定采樣的通道。擴(kuò)展要求:利用按鍵輸入來修改四位八段數(shù)碼管上顯示的數(shù)值。按鍵接口電路//-----------------------------------------------------------------------------//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;}單片機(jī)原理與應(yīng)用課程實踐實驗五:128×64LCD模塊的應(yīng)用1基本要求:掌握LCD的字符顯示的基本原理。能實現(xiàn)在LCD上顯示相應(yīng)的字符信息。并將電壓值顯示在四位八段數(shù)碼管上。可以通過按鍵輸入來確定采樣的通道。擴(kuò)展要求:結(jié)合實驗二,將電壓值實時動態(tài)地顯示在LCD上。單片機(jī)原理與應(yīng)用課程實踐實驗六:128×64LCD模塊的應(yīng)用2基本要求:掌握LCD的圖形顯示的基本原理。能實現(xiàn)在LCD上顯示出一些基本的直線段。擴(kuò)展要求:實現(xiàn)在LCD上顯示一副圖像。單片機(jī)原理與應(yīng)用課程實踐實驗七:128×64LCD模塊的應(yīng)用3基本要求:能將由P1.0輸入的正弦電壓信號波形一個周期的信號顯示在LCD顯示屏上。擴(kuò)展要求:能動態(tài)地將由P1.0輸入的正弦電壓信號波形顯示在LCD顯示屏上。128*64LCD的顯示控制思考:思考一:如何在LCD上顯示中文字符或ASCII碼?思考二:如何在LCD上顯示一條橫向的線?思考三:如何在LCD上顯示一條縱向的線?思考四:如何在LCD上顯示圖形?33LCD可分為兩種類型,一種是字符模式lcd,另一種是圖形模式lcd。

LCD的控制需專用的驅(qū)動電路,一般不會單獨使用,而是將lcd面板,驅(qū)動與控制電路組合成模塊一起使用,簡稱lcm。LCD分類FYD12864-0402B是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點陣的漢字.也可完成圖形顯示.FYD12864-0402B方框圖FYD12864-0402B液晶模塊框圖如圖1所示,其中ST7920為液晶顯示控制芯片,ST7921為液晶顯示驅(qū)動芯片。模塊主要硬件構(gòu)成說明忙標(biāo)志:BF字型產(chǎn)生ROM(CGROM)(中文字庫):8192ASCII碼字庫HCGROM:128顯示數(shù)據(jù)RAM(DDRAM)字型產(chǎn)生RAM(CGRAM):造字,4組16x16繪圖RAM(GDRAM):圖形顯示地址計數(shù)器AC:

儲存DDRAM/CGRAM之一的地址,自動加一。光標(biāo)/閃爍控制電路●忙標(biāo)志:BFBF標(biāo)志提供內(nèi)部工作情況.BF=1表示模塊在進(jìn)行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù).BF=0時,模塊為準(zhǔn)備狀態(tài),隨時可接受外部指令和數(shù)據(jù).

利用STATUSRD指令,可以將BF讀到DB7總線,從而檢驗?zāi)K之工作狀態(tài).●地址計數(shù)器AC地址計數(shù)器是用來貯存DDRAM/CGRAM之一的地址,它可由設(shè)定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數(shù)器的值就會自動加一,當(dāng)RS為“0”時而R/W為“1”時,地址計數(shù)器的值會被讀取到DB6——DB0中。●

光標(biāo)/閃爍控制電路

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

水平地址范圍AC3…AC0繪圖RAM的地址計數(shù)器(AC)只會對水平地址(X軸)自動加一,當(dāng)水平地址=0FH時會重新設(shè)為00H但并不會對垂直地址做進(jìn)位自動加一,故當(dāng)連續(xù)寫入多筆資料時,程序需自行判斷垂直地址是否需重新設(shè)定。圖形顯示原理

指令:指令表2:(RE=1:擴(kuò)充指令)指令

指令碼功能RSR/WD7D6D5D4D3D2D1D0

待命模式

0000000001進(jìn)入待命模式,執(zhí)行其他指令都棵終止待命模式卷動地址開關(guān)開啟000000001SRSR=1:允許輸入垂直卷動地址SR=0:允許輸入IRAM和CGRAM地址反白選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R0=00,第一次設(shè)定為反白顯示,再次設(shè)定變回正常睡眠模式0000001SLXXSL=0:進(jìn)入睡眠模式SL=1:脫離睡眠模式擴(kuò)充功能設(shè)定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1:擴(kuò)充指令操作RE=0:基本指令操作G=1/0:繪圖開關(guān)設(shè)定繪圖RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設(shè)定繪圖RAM先設(shè)定垂直(列)地址AC6AC5…AC0再設(shè)定水平(行)地址AC3AC2AC1AC0將以上16位地址連續(xù)寫入即可

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

溫馨提示

  • 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

提交評論