人機(jī)交互-輸出接口課件_第1頁(yè)
人機(jī)交互-輸出接口課件_第2頁(yè)
人機(jī)交互-輸出接口課件_第3頁(yè)
人機(jī)交互-輸出接口課件_第4頁(yè)
人機(jī)交互-輸出接口課件_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章人機(jī)交互—輸出接口

一、概述二、數(shù)碼管接口設(shè)計(jì)三、LCD液晶接口設(shè)計(jì)四、發(fā)聲電路設(shè)計(jì)一、概述 1、顯示輸出:嵌入式應(yīng)用系統(tǒng)向人報(bào)告運(yùn)行狀態(tài)及運(yùn)行結(jié)果最常用的手段; 2、聲音輸出:主要是通過(guò)喇叭(SPK)來(lái)實(shí)現(xiàn)的; 3、打印輸出:通過(guò)打印機(jī)輸出嵌入式系統(tǒng)運(yùn)行的狀態(tài)和結(jié)果;

4、通信輸出。二、數(shù)碼管接口設(shè)計(jì)數(shù)碼管是一種應(yīng)用很普遍的顯示器件,從單片機(jī)、ARM到許多微型機(jī)控制系統(tǒng)及數(shù)字化儀器儀表中都用到數(shù)碼管作為顯示輸出。數(shù)碼管的主要部分是七段發(fā)光二極管;數(shù)碼管分為共陰極和共陽(yáng)極兩種;為了保護(hù)各段LED,需外加限流電阻。有的產(chǎn)品還附帶有一個(gè)小數(shù)點(diǎn),故有人叫其為八段式發(fā)光二極管。1.1數(shù)碼管接口電路通過(guò)段選端可以控制數(shù)碼管顯示內(nèi)容;位選端用于控制整個(gè)數(shù)碼管是否工作:共陰極數(shù)碼管,位選端要接地;共陽(yáng)極數(shù)碼管,位選端要接高電平一位數(shù)碼管接口電路(共陰極)

動(dòng)態(tài)顯示技術(shù)主要是利用了人眼的視覺(jué)暫留原理。人眼的視覺(jué)暫留時(shí)間約為100ms。在動(dòng)態(tài)顯示方式下,將各個(gè)顯示位的段選端并聯(lián)在一起,實(shí)現(xiàn)各顯示位的分時(shí)選通。

數(shù)碼管接口電路--動(dòng)態(tài)掃描實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)實(shí)驗(yàn),理解數(shù)碼管顯示原理,會(huì)編寫(xiě)數(shù)碼管驅(qū)動(dòng)程序。實(shí)驗(yàn)內(nèi)容:控制數(shù)碼管顯示0000~9999。1.2實(shí)驗(yàn)?zāi)康呐c內(nèi)容1.4參考程序---初始化函數(shù)//----------引腳定義-----------#define smgA1 (1<<22) //p2.22連接smgA1#define smgA2 (1<<23) //p0.23連接smgA2#define smgA3 (1<<19) //p1.19連接smgA3#define smgA4 (1<<24) //p0.24連接smgA4/*********************************************************************名稱(chēng):NumbTube_Init()*功能:數(shù)碼管與SPI初始化********************************************************************/voidNumbTube_Init(void){PINSEL1=PINSEL1&0xfffc3fff; //設(shè)置引腳連接smgA2(p0.23),smgA4(0.24)

PINSEL2=PINSEL2&0xfffffff7; //設(shè)置數(shù)碼管的位選引腳連接smgA3(p1.19)

IO0DIR=IO0DIR|smgA2|smgA4; //設(shè)置smgA1~smgA4引腳為輸出

IO1DIR=IO1DIR|smgA3; IO2DIR=IO2DIR|smgA1; HC595_Init(); //初始化SPI0(時(shí)序與74HC595相匹配)}//-------------數(shù)碼管顯示數(shù)據(jù)(0~9顯示碼)----------------uint8constNumberTube_TAB[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98};/*****************************************************************************名稱(chēng):NumbTube_Display(uint32data,uint8radix_point)*功能:控制數(shù)碼管顯示數(shù)據(jù)。*入口參數(shù): data 需要顯示的數(shù)據(jù)* radix_point 小數(shù)點(diǎn)的位置,取值范圍為4、3、2****************************************************************************/voidNumbTube_Display(uint32data,uint8radix_point){ uint32j,one,ten,hundred,thousand; //個(gè),十,百,千,的變量聲明

thousand=data/1000; //計(jì)算千位

if(thousand!=0)data-=thousand*1000; hundred=data/100; //計(jì)算百位 if(hundred!=0)data-=hundred*100;

ten=data/10; //計(jì)算十位

if(ten!=0)data-=ten*10; one=data%10; //計(jì)算個(gè)位參考程序---數(shù)據(jù)顯示函數(shù)

//-------------------顯示千位數(shù)據(jù)----------------

if(radix_point==4)HC595_SendData(NumberTube_TAB[thousand]&0x7f);

else HC595_SendData(NumberTube_TAB[thousand]);

NumbTube_Bit(0x01); //打開(kāi)顯示千位的位選端,見(jiàn)后面程序

for(j=0;j<500;j++);

//小段延時(shí)

//-------------------顯示百位數(shù)據(jù)----------------

if(radix_point==3)HC595_SendData(NumberTube_TAB[hundred]&0x7f);

else HC595_SendData(NumberTube_TAB[hundred]);

NumbTube_Bit(0x02);

for(j=0;j<500;j++);

//-------------------顯示十位數(shù)據(jù)----------------

if(radix_point==2) HC595_SendData(NumberTube_TAB[ten]&0x7f);

else HC595_SendData(NumberTube_TAB[ten]);

NumbTube_Bit(0x04);

for(j=0;j<500;j++);

//-------------------顯示個(gè)位數(shù)據(jù)----------------

HC595_SendData(NumberTube_TAB[one]);

NumbTube_Bit(0x08);

for(j=0;j<500;j++);}實(shí)驗(yàn)參考主程序/***************************************************************************名稱(chēng):main()*功能:控制數(shù)碼管顯示,完成實(shí)驗(yàn)內(nèi)容*************************************************************************/intmain(void){ uint32i;

NumbTube_Init();

for(i=1;i<9999;i++)

{ DelayMS(10);

NumbTube_Display(i,0);

}

return(0);}

1.在CodeWarriorIDE集成開(kāi)發(fā)環(huán)境中,使用“FollowMeStudyARM”工程模板建立新 工程。然后在工程中添加本實(shí)驗(yàn)的程序代碼,按F7快捷鍵編譯鏈接整個(gè)工程。編譯報(bào) 錯(cuò)則修改源程序中的錯(cuò)誤,如果編譯通過(guò)則在相應(yīng)的目錄下產(chǎn)生我們所需要的二進(jìn)制文件和可執(zhí)行映像文件。

2.運(yùn)行H-Flasher軟件,將產(chǎn)生的二進(jìn)制文件燒寫(xiě)到實(shí)驗(yàn)板上。

3.打開(kāi)AXD調(diào)試環(huán)境,并加載剛剛產(chǎn)生的可執(zhí)行映像文件進(jìn)行調(diào)試。

4.單擊全速運(yùn)行按鈕(快捷鍵F5),程序會(huì)運(yùn)行并停留在main()主函數(shù)處;繼續(xù)全速運(yùn)行,數(shù)碼管將顯示數(shù)字從0000一直遞加到9999。1.5實(shí)驗(yàn)步驟與結(jié)果三、LCD液晶接口設(shè)計(jì)

概述

液晶顯示LCD是一種被動(dòng)的顯示器件,它不能發(fā)光,只能使用周?chē)h(huán)境的光。LCD具有低工作電壓、微功耗、無(wú)輻射、小體積等特點(diǎn),LCD液晶顯示器還具有壽命長(zhǎng)、不易引起視疲勞等優(yōu)點(diǎn)。被廣泛應(yīng)用于儀表、家用電器、計(jì)算機(jī)、醫(yī)療儀器以及交通和通信等各個(gè)領(lǐng)域。液晶顯示原理液晶是一種介于固體和液體之間,具有規(guī)則性分子排列的有機(jī)化合物,既有晶體所特有的各向異性造成的雙折射性,又有液體所特有的流動(dòng)性。(a)液體分子(b)液晶分子

1.按點(diǎn)像素深度分類(lèi)

點(diǎn)象素深度:每個(gè)像素點(diǎn)的顏色有多少個(gè)二進(jìn)制位表示。 單色屏、4級(jí)灰度屏、8級(jí)灰度屏、16級(jí)灰度屏、64級(jí)灰度屏、266級(jí)灰度屏、16色屏、266色偽彩色屏、真彩色屏等。

2.按工作原理分類(lèi)

1)TN型(扭曲向列型液晶); 2)STN型(超扭曲向列型液晶); 3)TFT型(薄膜晶體管型液晶)。

3.按內(nèi)容顯示方式分類(lèi)

1)數(shù)顯液晶;

2)點(diǎn)陣字符液晶;

3)點(diǎn)陣圖形液晶。1.1液晶顯示屏分類(lèi)

LM2068點(diǎn)陣圖形式液晶顯示模塊具有兩種系列(S、E)。S系列的液晶模塊采用RA8835控制器,內(nèi)置32KSRAM顯示存儲(chǔ)器,適配Intel8080系列MPU的操作時(shí)序電路。顯示區(qū)具有文本和圖形兩種顯示特性,多種顯示合成方式。具有LCD驅(qū)動(dòng)電源,廣泛地適用于儀器儀表中。1.2液晶模塊LM2068LCD的驅(qū)動(dòng)原理:調(diào)整施加到液晶像素上的電壓、相位、頻率、峰值、有效值和占空比等參數(shù)來(lái)實(shí)現(xiàn)顯示。模塊接口多為FFC扁平線方式,需要專(zhuān)用插座連接。LM2068S液晶顯示模塊由以下四個(gè)部分組成: 1、LCD面板 2、RA8835控制電路

3、電源與調(diào)壓器電路

4、背光控制電路1.3液晶顯示模塊的接口特性

LM2068液晶顯示模塊的系統(tǒng)方框圖引腳號(hào)引腳名稱(chēng)I/O特性描述1VSS電源邏輯電源地(0V)2VDD電源邏輯電源正3Vo輸入對(duì)比度調(diào)節(jié)輸入端4/WR輸入寫(xiě)操作信號(hào)輸入端,(低電平有效)5/RD輸入讀操作信號(hào)輸入端,(低電平有效)6/CS輸入片選信號(hào)輸入端,(低電平有效)7A0輸入寄存器選擇信號(hào)輸入端,A0=1為寫(xiě)指令代碼,讀參數(shù);A0=0為寫(xiě)指令參數(shù)或顯示數(shù)據(jù)。8/Res輸入復(fù)位信號(hào)輸入端,(低電平有效)9DB0輸入/輸出數(shù)據(jù)總線(三態(tài))::16DB717/WAIT輸出等待信號(hào)輸出端無(wú)操作信號(hào)時(shí)為高阻態(tài),使用時(shí)開(kāi)路18VOUT輸出電源電源變壓器輸出端(為Vo服務(wù))19BLA背光電源LED背景燈電源正20BLK背光電源LED背景燈電源負(fù)1.4LM2068S的引腳定義

LM2068提供了Intel8080時(shí)序接口; CS是片選線,低電平有效;WR和RD分別為寫(xiě)和讀控制線,上升沿有效;A0為選擇信號(hào)線。LM2068的讀/寫(xiě)時(shí)序圖1.5LM2068S的時(shí)序符號(hào)描述所需最小時(shí)間最大時(shí)間T3DB建立到/WR上升沿時(shí)的時(shí)間(寫(xiě)周期)200nsT8DB從/RD上升沿起保持時(shí)間(讀周期)3ns15nsT9/RD下降沿到有效數(shù)據(jù)建立時(shí)間(讀周期)420nst11/RD、/WR脈沖有效時(shí)間500nst12/RD、/WR脈沖無(wú)效時(shí)間(讀周期)100ns(兩個(gè)連續(xù)寫(xiě)周期)200ns(寫(xiě)周期后跟一個(gè)讀周期)500ns注意:當(dāng)MCU與LM2068進(jìn)行通信時(shí),必須滿足以上LM2068的時(shí)序要求。上電后,/RST保持低電平至少5ms以上,低電平拉高后至少保持800ms再對(duì)模塊進(jìn)行軟件初始化。LM2068S的時(shí)序

顯示區(qū)具有兩種特性:文本顯示、圖形顯示。

文本顯示:擁有文本顯示特性的顯示區(qū);專(zhuān)用于文本方式顯示使用;

圖形顯示:擁有圖形顯示特性的顯示區(qū);專(zhuān)用于圖形方式顯示使用;

RA8835可以同時(shí)管理多個(gè)顯示區(qū)域,模塊的大多數(shù)指令也是圍繞顯示區(qū)域設(shè)置進(jìn)行的。參數(shù)主要有SAD、SL、AP、C/R。

SAD----顯示區(qū)域的起始地址; SL----顯示區(qū)域的“高度”,即所管理顯示的行數(shù); AP----顯示區(qū)域的“寬度”,即一行顯示所占的字節(jié)數(shù); C/R----實(shí)際顯示寬度,模塊屏面的顯示字符數(shù)。1.7LM2068S的指令系統(tǒng)---顯示區(qū)域顯示區(qū)域在顯示RAM中的起始位置是SAD,終止位置是SAD+(SL*AP),實(shí)際顯示空間大小是SAD+(SL*C/R)。顯示區(qū)域結(jié)構(gòu)示意圖

SCROLL 指令代碼 44H

指令描述:該指令帶有10個(gè)參數(shù),設(shè)置4個(gè)顯示區(qū)域分別在RAM空間中的起始位置和顯示行數(shù)。參數(shù)D7D6D5D4D3D2D1D0P1第一顯示區(qū)域首地址低8位SAD1LP2第一顯示區(qū)域首地址高8位SAD1HP3

第一顯示區(qū)域管理的顯示行數(shù)SL1P4第二顯示區(qū)域首地址低8位SAD2LP5第二顯示區(qū)域首地址高8位SAD2HP6

第二顯示區(qū)域管理的顯示行數(shù)SL2P7第三顯示區(qū)域首地址低8位SAD3LP8第三顯示區(qū)域首地址高8位SAD3HP9第四顯示區(qū)域首地址低8位SAD4LP10第四顯示區(qū)域首地址高8位SAD4H指令詳述參數(shù)D7D6D5D4D3D2D1D0P1000OVDM2DM1MX1MX0OV:合成方式選擇位。DM1:第一顯示區(qū)域的顯示屬性選擇位。0:文本1:圖形DM2:第三顯示區(qū)域的顯示屬性選擇位。合成顯示的邏輯關(guān)系設(shè)置,具體設(shè)置見(jiàn)表。MX1MX0合成方式00邏輯或合成01邏輯異或合成10邏輯與合成11保留OVLAY 指令代碼 5BH

指令描述:該指令設(shè)置了顯示區(qū)域合成顯示的邏輯關(guān)系以及第一、三顯示區(qū)域的顯示特性。DISONO/OFF 指令代碼 59H/58H

指令描述:顯示開(kāi)關(guān)設(shè)置指令,帶有1個(gè)參數(shù),設(shè)置了各顯示區(qū)及光標(biāo)的顯示屬性。顯示開(kāi)關(guān)設(shè)置指令所帶的參數(shù)

參數(shù)D7D6D5D4D3D2D1D0P1SAD3屬性SAD2、4屬性SAD1屬性光標(biāo)屬性顯示屬性設(shè)置

HDOT_SCR 指令代碼 5AH

指令描述:該指令設(shè)置了以點(diǎn)為單位的畫(huà)面水平移動(dòng)量。參數(shù)D7D6D5D4D3D2D1D0P100000D2D1D0CGRAM_ADR 指令代碼5CH指令描述:自定義字庫(kù)的CGRAM起始地址設(shè)置,帶有2個(gè)參數(shù)。參數(shù)D7D6D5D4D3D2D1D0P1CGRAM起始地址低8位SAGLP2CGRAM起始地址高8位SAGHCSRW 指令代碼 46H

指令描述:設(shè)置光標(biāo)地址指令。CSRR 指令代碼 47H指令描述:讀取光標(biāo)地址指令。參數(shù)D7D6D5D4D3D2D1D0P1光標(biāo)地址低8位CSRLP2光標(biāo)地址高8位CSRH所帶參數(shù)表CSRDIR 指令代碼4CH~4FH指令描述:光標(biāo)移動(dòng)方向的設(shè)置指令。光標(biāo)移動(dòng)方向與對(duì)應(yīng)取值CSR_FORM 指令代碼 5DH指令描述:該指令為光標(biāo)形狀的設(shè)置指令。參數(shù)D7D6D5D4D3D2D1D0P10000CRXP2CM000CRYCRX:光標(biāo)寬度,以象數(shù)點(diǎn)為單位。CRY:光標(biāo)高度,以象數(shù)點(diǎn)為單位。CM:光標(biāo)形狀選擇。

MEMWRITE

指令代碼 42H

指令描述:顯示數(shù)據(jù)寫(xiě)操作指令。

MEMREAD 指令代碼 43H

指令描述:顯示數(shù)據(jù)讀操作。#defineLCD_A0 (1<<23) //P2.23選擇信號(hào)#defineLCD_RD (1<<24) //P2.24讀信號(hào)#defineLCD_RST (1<<25) //P2.25復(fù)位信號(hào)#defineLCD_CS (1<<26) //P2.26芯片使能信號(hào),共用BOOT0引腳#defineLCD_WE (1<<27) //P2.27寫(xiě)信號(hào),共用BOOT1引腳/*********************************************************************名稱(chēng):LCD_WriteCommand(uint8Code)*功能:往液晶模塊寫(xiě)入一個(gè)字節(jié)的代碼*入口參數(shù):Code 指令代碼*注釋?zhuān)河捎赑2.27為特殊引腳,所以在寫(xiě)操作結(jié)束后將P2.27拉低********************************************************************/voidLCD_WriteCommand(uint8Code){ uint8i; IO2CLR=LCD_CS; //CS=0 IO2SET=LCD_A0; //A0=1 LS164_SendData(Code); //通過(guò)74HC164芯片向模塊寫(xiě)指令代碼

IO2SET=LCD_RD; //RD=1 IO2CLR=LCD_WE; //WR=0 for(i=0;i<3;i++); IO2SET=LCD_WE; //WR=1 IO2SET=LCD_CS; IO2CLR=LCD_WE; }寫(xiě)命令子程序/*********************************************************************名稱(chēng):LCD_WriteData()*功能:往液晶模塊寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù)*入口參數(shù):Data 數(shù)據(jù)*注釋?zhuān)河捎赑2.27為特殊引腳,所以在寫(xiě)操作結(jié)束后將P2.27拉低********************************************************************/voidLCD_WriteData(uint8Data){ uint8i; IO2CLR=LCD_CS; //CS=0 IO2CLR=LCD_A0; //A0=0 LS164_SendData(Data); //通過(guò)74HC164芯片向模塊寫(xiě)顯示數(shù)據(jù)

IO2SET=LCD_RD; //RD=1 IO2CLR=LCD_WE; //WR=0 for(i=0;i<3;i++); IO2SET=LCD_WE; //WR=1 IO2SET=LCD_CS; //CS=1 IO2CLR=LCD_WE; //WR=0}寫(xiě)數(shù)據(jù)子程序?yàn)榱朔奖憷斫夂痛a移植,程序中把LM2068S模塊中的所有命令都定義成宏,定義如程序清單。#define SYSTEM_SET 0x40 //初始化顯示窗口設(shè)置,帶8個(gè)參數(shù)#define SLEEP_IN 0x53 //空閑操作 -#define DISP_ON 0x59 //顯示開(kāi) -#define DISP_OFF 0x58 //顯示關(guān),設(shè)置顯示方式,帶1個(gè)參數(shù)#define SCROLL 0x44 //設(shè)置顯示區(qū)域,卷動(dòng),帶10個(gè)參數(shù)#define OVLAY 0x5B //設(shè)置合成顯示方式,帶1個(gè)參數(shù)#define CGRAM_ADR 0x5C //設(shè)置CGRAM起始地址,帶2個(gè)參數(shù)#define HDOT_SCR 0x5A //設(shè)置點(diǎn)單元卷動(dòng)位置,帶1個(gè)參數(shù)#define CSRFORM 0x5D //設(shè)置光標(biāo)形狀,帶2個(gè)參數(shù)#define CSRDIR_R 0x4C //設(shè)置光標(biāo)移動(dòng)方向 向右 -#define CSRDIR_L 0x4D //設(shè)置光標(biāo)移動(dòng)方向 向左 -#define CSRDIR_U 0x4E //設(shè)置光標(biāo)移動(dòng)方向 向上 -#define CSRDIR_D 0x4F //設(shè)置光標(biāo)移動(dòng)方向 向下 -#define CSRW 0x46 //設(shè)置光標(biāo)地址,帶2個(gè)參數(shù)#define CSRR 0x47 //讀出光標(biāo)地址,帶2個(gè)參數(shù)#define MWRITE 0x42 //數(shù)據(jù)寫(xiě)入顯示緩沖區(qū),帶若干個(gè)參數(shù)#define MREAD 0x43 //從顯示緩沖區(qū)讀數(shù)據(jù),帶若干個(gè)參數(shù)命令宏定義/************************************************************************名稱(chēng):LCD_FillAll(uint8dat)*功能:LCD填充。以圖形方式進(jìn)行填充,起始地址為0x0000。*入口參數(shù):dat 要填充的數(shù)據(jù)*出口參數(shù):無(wú)***********************************************************************/voidLCD_FillAll(uint8dat){uint32i;//-------置地址指針--------

LCD_WriteCommand(CSRW);LCD_WriteData(0x00);//地址為0x0000

LCD_WriteData(0x00);//--------設(shè)置光標(biāo)移動(dòng)方向:右-------

LCD_WriteCommand(CSRDIR_R);//--------寫(xiě)入數(shù)據(jù)--------

LCD_WriteCommand(MWRITE);for(i=0;i<240*41;i++){LCD_WriteData(dat); }//---------重置地址指針-------

LCD_WriteCommand(CSRW); LCD_WriteData(0x00);//地址為0x0000

LCD_WriteData(0x00);}清屏函數(shù)uchar SYSTEMSET_TAB[8]={0x30, //單屏結(jié)構(gòu),8×8點(diǎn) 0x87,0x07, //字符寬度8,字符高度8

40, //有效顯示窗口的長(zhǎng)度40(320=8*40)

0x40, //lCD工作頻率

239, //掃描點(diǎn)行數(shù)(240)

41, //顯示屏一行所占顯示緩沖區(qū)的字節(jié)數(shù)

0x00}; ucharSCROLL_TAB[10]={0x00,0x00,0xef, //第一顯示區(qū)的起始地址為0x0000,點(diǎn)行數(shù)240

0x70,0x26,0xef, //第二顯示區(qū)的起始地址為0x2670,點(diǎn)行數(shù)240

0x00,0x60, //第三顯示區(qū)的起始地址為0x6000

0x00,0x00}; //第四顯示區(qū)的起始地址為0x000/************************************************************************名稱(chēng):LCD_Initialize()*功能:LCM初始化,將LCM初始化為純圖形模式,顯示起始地址為0x0000。*入口參數(shù):無(wú)*出口參數(shù):無(wú)*說(shuō)明:帶參數(shù)命令模式:先命令,后數(shù)據(jù)復(fù)位LM2068時(shí):/RST保持低電平至少5ms以上,低電平拉高后至少保持800ms再對(duì)模塊進(jìn)行軟件初始化***********************************************************************/voidLCD_Initialize(void){uchari;//--------初始化LCM的控制引腳--------

IO2DIR=IO2DIR|LCD_A0|LCD_CS|LCD_RD|LCD_WE|LCD_RST;初始化函數(shù)

//--------初始化164芯片,164芯片連接LCD的數(shù)據(jù)引腳D0~D7--------

LS164_Init();

//--------------復(fù)位模塊--------------

IO2CLR=LCD_RST; //拉低/RST引腳,保持5ms以上

DelayMS(10); //軟件延時(shí)

IO2SET=LCD_RST; //拉高/RST引腳,至少延時(shí)800ms后再操作

//-------------系統(tǒng)設(shè)置指令--------------

LCD_WriteCommand(SYSTEM_SET); for(i=0;i<8;i++) LCD_WriteData(SYSTEMSET_TAB[i]); //---------顯示區(qū)域設(shè)置----------

DelayMS(1); LCD_WriteCommand(SCROLL); for(i=0;i<10;i++) LCD_WriteData(SCROLL_TAB[i]); //---------關(guān)閉顯示---------

//LCD_WriteCommand(DISP_OFF); //關(guān)閉顯示區(qū)

//---------其他顯示功能設(shè)置-------

LCD_WriteCommand(HDOT_SCR);//HDOT_SCR,帶1個(gè)參數(shù)

LCD_WriteData(0x00); LCD_WriteCommand(OVLAY); LCD_WriteData(0x0d);//二重合成,顯示一區(qū)和三區(qū)都是圖形方式,異或邏輯

LCD_WriteCommand(CSRFORM); //光標(biāo)是陰影塊狀顯示方式,塊大小是8×8個(gè)象素

LCD_WriteData(0x07); LCD_WriteData(0x87); //---------清除屏幕-----------

LCD_FillAll(0x00); //----------打開(kāi)顯示-----------

LCD_WriteCommand(DISP_ON); LCD_WriteData(0x05); //本次只開(kāi)啟一顯示區(qū)和光標(biāo)}實(shí)驗(yàn)?zāi)康模豪斫庖壕敛僮鞯幕驹?,掌握液晶圖形顯示的基本方法。實(shí)驗(yàn)內(nèi)容:在顯示屏上畫(huà)一個(gè)笛卡兒坐標(biāo)系,并在坐標(biāo)系的原點(diǎn)畫(huà)一個(gè)半徑為20的圓1.9實(shí)驗(yàn)?zāi)康呐c內(nèi)容2.0電路原理分析LM2068S的數(shù)據(jù)線Q1~Q8連接74HC164芯片,其他控制線由LPC2220的P2.23~P2.27直接控制。開(kāi)發(fā)一些底層的畫(huà)圖函數(shù),包括: 打點(diǎn)函數(shù); 畫(huà)直線函數(shù); 畫(huà)圓函數(shù); 打印字符串函數(shù)等。設(shè)計(jì)時(shí)我們把軟件劃分3層: 硬件驅(qū)動(dòng)層 基本圖形層 用戶層。軟件層次圖2.1畫(huà)圖基本思想緩存區(qū)的定義如下: #defineGUI_LCM_XMAX320 //定義液晶x軸的點(diǎn)象素 #defineGUI_LCM_YMAX240 //定義液晶y軸的點(diǎn)象素 chargui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX/8]; //定義顯示緩存

硬件驅(qū)動(dòng)層主要完成兩件任務(wù): 一是操作液晶模塊:復(fù)位液晶模塊,液晶模塊的參數(shù)設(shè)置,等等。 二是管理顯示緩存區(qū):將顯示數(shù)據(jù)發(fā)送給液晶模塊從而刷新顯示內(nèi)容。2.2硬件驅(qū)動(dòng)層接口函數(shù)參數(shù)功能GRA_Initialize(void)無(wú)復(fù)位液晶模塊,進(jìn)行參數(shù)設(shè)置,初始化顯示緩存區(qū),清屏等。GRA_Point(uint32x,uint32y,TCOLORcolor)x指定點(diǎn)所在列的位置。y指定點(diǎn)所在行的位置color顯示顏色(對(duì)于黑白色LCM,為0時(shí)滅,為1時(shí)顯示)根據(jù)坐標(biāo)值改變顯示緩存區(qū)中對(duì)應(yīng)該點(diǎn)的數(shù)據(jù)。GRA_ReadPoint(uint32x,uint32y,TCOLOR*ret)x指定點(diǎn)所在列的位置。y指定點(diǎn)所在行的位置。ret保存顏色值的指針。讀取指定點(diǎn)的顏色。GRA_Refresh(uint32x1,uint32y1,uint32x2,uint32y2);x1,y1左上角點(diǎn)坐標(biāo)值x2,y2右下角點(diǎn)坐標(biāo)值根據(jù)(x1,y1)和(x2,y2)兩個(gè)點(diǎn)確定的矩形區(qū)域,刷新液晶屏GRA_ClearSCR(void)無(wú)顯示緩存區(qū)清零,刷新液晶屏。硬件驅(qū)動(dòng)層這一層提供基本畫(huà)線、畫(huà)矩形、畫(huà)圓、填充、打印字符等基本函數(shù)。本層一些必要的接口函數(shù)接口函數(shù)參數(shù)功能GRA_Line(x0,y0,x1,y1,color)x0,y0起點(diǎn)坐標(biāo)值x1,y1終點(diǎn)坐標(biāo)值color顯示顏色畫(huà)一條直線。GRA_Rectangle(x0,y0,x1,y1,color)x0,y0矩形左上角點(diǎn)坐標(biāo)值x1,y1矩形右下角點(diǎn)坐標(biāo)值color顯示顏色畫(huà)一個(gè)矩形框。GRA_Circle(x0,y0,r,color)x0,y0圓心坐標(biāo)值r半徑值color顯示顏色畫(huà)一個(gè)圓。GRA_FillCircle(x0,y0,r,color)x0,y0圓心坐標(biāo)值r半徑值color顯示顏色圓填充GRA_PutChar(x,y,uint8ch)x,y打印字符的位置坐標(biāo)值ch字符的ASCII碼打印字符基本圖形層實(shí)驗(yàn)參考程序#include"whole.h"#defineWhite 1/***************************************************************************名稱(chēng):main()*功能:繪制笛卡爾坐標(biāo)系*出口參數(shù):返回0表示操作失敗,返回1表示操作成功**************************************************************************/intmain(void){ GRA_Initialize();

//----------畫(huà)迪卡爾坐標(biāo)系--------

GRA_Line(110,130,210,130,White); //畫(huà)水平線

GRA_Line(210,130,205,125,White); //畫(huà)箭頭

GRA_Line(210,130,205,135,White); //畫(huà)箭頭

GRA_Line(160,80,160,180,White); //畫(huà)垂直線

GRA_Line(160,80,155,85,White); //畫(huà)箭頭

GRA_Line(160,80,165,85,White); //畫(huà)箭頭

GRA_Circle(160,130,20,White); //畫(huà)半徑20的圓

GRA_PutChar(130,140,'('); //打印“(0,0)”

GRA_PutChar(135,140,'0'); GRA_PutChar(140,140,','); GRA_PutChar(145,140,'0'); GRA_PutChar(150,140,')'); GRA_Refresh(100,80,220,170); //根據(jù)緩沖區(qū)的內(nèi)容刷新顯示屏

while(1); return(1);}2.3實(shí)驗(yàn)步驟與結(jié)果1.在CodeWarriorIDE集成開(kāi)發(fā)環(huán)境中,使用“FollowMeStudyARM”工程模板建立新工程。然后在工程中添加本實(shí)驗(yàn)的程序代碼,按F7快捷鍵編譯鏈接整個(gè)工程。編譯報(bào) 錯(cuò)則修改源程序中的錯(cuò)誤,如果編譯通過(guò)則在相應(yīng)的目錄下產(chǎn)生我們所需要的二進(jìn)制文件和可執(zhí)行映像文件。2.運(yùn)行H-Flasher軟件,將產(chǎn)生的二進(jìn)制文件燒寫(xiě)到實(shí)驗(yàn)板上。3.打開(kāi)AXD調(diào)試環(huán)境,并加載剛剛產(chǎn)生的可執(zhí)行映像文件進(jìn)行調(diào)試。4.單擊全速運(yùn)行按鈕(快捷鍵F5),程序會(huì)運(yùn)行并停留在main()主函數(shù)處;繼續(xù)全速運(yùn)行,液晶顯示屏中顯示我們繪制的笛卡兒坐標(biāo)系。四、發(fā)聲電路設(shè)計(jì)---概述

電聲器件是指能將聲音信號(hào)轉(zhuǎn)換為音頻電信號(hào)或者將音頻電信號(hào)轉(zhuǎn)換為聲音信號(hào)的器件。

傳聲器俗稱(chēng)話筒,音譯為麥克風(fēng),是一種聲→電換能器件,可分為電動(dòng)和靜電兩類(lèi)。

蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,通常采用直流電壓供電。

揚(yáng)聲器俗稱(chēng)喇叭,也是一種發(fā)聲器件,與蜂鳴器不同的是揚(yáng)聲器可以發(fā)出多種音頻。所以它在實(shí)際生活中應(yīng)用相當(dāng)廣泛。1.1揚(yáng)聲器發(fā)聲原理?yè)P(yáng)聲器主要起著“電→力→聲”的能量變換作用。揚(yáng)聲器的分類(lèi)如下:按電→聲轉(zhuǎn)換的原理分:電磁式、電動(dòng)式、靜電式、壓電式等;按所覆蓋的頻帶分:分為低聲單元、中音n,單元、高音單元和全頻帶單元。電動(dòng)式揚(yáng)聲器的結(jié)構(gòu)常見(jiàn)的揚(yáng)聲器實(shí)物圖

聲音的產(chǎn)生是一種音頻振動(dòng)的效果,振動(dòng)的頻率高則為高音,頻率低則為低音。音頻的范圍為20Hz-200kHz之間。一般音響電路是以正弦波信號(hào)驅(qū)動(dòng)喇叭,產(chǎn)生悅耳的音樂(lè);在數(shù)字電路里,則一般是以脈沖信號(hào)驅(qū)動(dòng)喇叭以產(chǎn)生聲音。聲音的產(chǎn)生1.2音調(diào)與節(jié)拍日常生活中通常以Do、Re、Mi、Fa、So、La、St分別代表某一個(gè)頻率的聲音,稱(chēng)之為“音調(diào)”,即Tone。在音階表中一共包括3個(gè)音階(低音、中音與高音),每個(gè)音階粗略地為7個(gè)音度(音調(diào)),而每個(gè)音階之間的頻率相差一倍。下表列出了C調(diào)音階和頻率之間的對(duì)照關(guān)系。

音階n1234567DoReMiFaSoLaSi低音簡(jiǎn)譜頻率262294330370410440494中音簡(jiǎn)譜1234567頻率524588660740820880988高音簡(jiǎn)譜頻率1048117613201480164017601976節(jié)拍”即Beat,讓音樂(lè)具有旋律,更可以調(diào)節(jié)各個(gè)音的快慢速度。除了“拍子”以外,還有“音節(jié)”,在樂(lè)譜左上方都會(huì)定義每個(gè)音節(jié)有多少拍。如圖所示:若以程序來(lái)發(fā)出上述兩小節(jié)的音,則是:

Do/0.25s、Do/0.25s、Re/0.5s、Do/0.5s;Fa/0.5s、Mi/1s

即如圖所示:

524Hz/250ms、524Hz/250ms、588Hz/500ms、524Hz/500ms;

740Hz/500ms、660Hz/1000ms。

產(chǎn)生音樂(lè)的波形圖具體實(shí)現(xiàn)方法:

將樂(lè)譜中每個(gè)音符的音調(diào)和節(jié)拍轉(zhuǎn)換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將其做成表格存放在存儲(chǔ)器里,通過(guò)程序依次取出一個(gè)音符的相關(guān)參數(shù),播放該音符,直至播放完最后一個(gè)音符。播放一段音樂(lè)“生日快樂(lè)歌”,簡(jiǎn)譜所示。1.3實(shí)驗(yàn)內(nèi)容

喇叭電路連接圖,LPC2220通過(guò)GPIO引腳P0.29連接三極管T的基級(jí)。控制三極管的導(dǎo)通與否,引起揚(yáng)聲器內(nèi)部線圈的震動(dòng),從而產(chǎn)生聲音。1.4電路原理分析

揚(yáng)聲器不同的振動(dòng)頻率會(huì)產(chǎn)生不同的音調(diào)。我們根據(jù)音符與振動(dòng)頻率的對(duì)應(yīng)關(guān)系,分低、中、高音3大頻率段,分別定義了3個(gè)頻率表數(shù)組:

FreTab_Low[7]、FreTab_Mid[7]、FreTab_High[7]。intFreTab_Low[7]={262,294,330,349,392,440,494}; //低音的頻率表

intFreTab_Mid[7]={523,578,659,698,784,880,988}; //中音intFreTab_High[7]={1046,1175,1318,1397,1568,1760,1976};//高音1.5程序分析---音頻表定義

音頻表采取數(shù)組的形式保存歌曲的曲譜,曲譜存儲(chǔ)格式:uint8Happy_Birthday[]={音調(diào),節(jié)拍,音調(diào),節(jié)拍....,0,0}。其中Happy_Birthday”為歌曲存放的首地址;末尾:“0,0”表示結(jié)束。

uint8Happy_Birthday[]={0x11,0x04,0x11,0x04,0x12,0x02,

0x11,0x02,0x14,0x02,0x13,0x01,0x11,0x04,

0x11,0x04,0x12,0x02,0x11,0x02,0x15,0x02,

0x14,0x01,0x11,0x04,0x11,0x04,0x21,0x02,

0x16,0x02,0x14,0x02,0x13,0x02,x22,0x02,

0x17,0x04,0x17,0x04,0x16,0x02,x14,0x02,

0x15,0x02,0x14,0x01,0x00,0x00};在曲譜存放的數(shù)組中,音調(diào)與節(jié)拍相對(duì)應(yīng)的。在保存的音調(diào)數(shù)據(jù)中,高4位數(shù)字代表低(0)、中(1)、高音(2);低4位數(shù)字代表音符Do(1)、Re(2)、Mi(3)、Fa(4)、So(5)、La(6)、St(7)。在保存的節(jié)拍數(shù)據(jù)中,0x02代表1拍,0x04代表1/2拍,0x08代表1/4拍,以此類(lèi)推。程序分析---播放表表定義首先設(shè)置音頻表的首地址,從音頻表中取一組音調(diào)和節(jié)拍的數(shù)據(jù)。如果取的這兩個(gè)數(shù)據(jù)都是0x00,則表示音樂(lè)結(jié)束;否則的話,根據(jù)音調(diào)產(chǎn)生相應(yīng)頻率的脈沖信號(hào)驅(qū)動(dòng)喇叭。如果節(jié)拍到了則繼續(xù)從音頻表中取數(shù)據(jù)。音樂(lè)播放流程圖程序分析---播放流程

本節(jié)采用定時(shí)器0來(lái)產(chǎn)生相應(yīng)的頻率,用定時(shí)器1來(lái)控制音符節(jié)拍,兩個(gè)定時(shí)器的中斷服務(wù)子程序表

/*****************************************************************************名稱(chēng):(__irq)Time0_ISR()*功能:改變喇叭引腳電平****************************************************************************/void__irqTime0_ISR(){ if((IO0PIN&SPEAK)==0) //喇叭電平取反if((IO1SET&SPEAK)==0)

SPEAKON(); //P0.29為高電平

else SPEAKOFF(); //P0.29為低電平

T0IR=0x01; //清除定時(shí)器0中斷標(biāo)志

VICVectAddr=0x00000000; //中斷結(jié)束}/*****************************************************************************名稱(chēng):(__irq)Time1_ISR()*功能:定時(shí)產(chǎn)生節(jié)拍,改變定時(shí)器0的匹配值****************************************************************************/void__irqTime1_ISR(void){ uint32Frq,Sylla; T1TCR=0x00; //關(guān)閉定時(shí)器0/1

T0TCR=0x00;

T1IR=0x01; //清除定時(shí)器0/1中斷標(biāo)志

T0IR=0x01;1.6參考程序---中斷服務(wù)程序

if((*pMusic==0x00)&(*(pMusic+1)==0x00)) //判斷音樂(lè)是否結(jié)束

{ VICVectAddr=0x00000000; } //中斷結(jié)束

else { if((*pMusic&0xf0)==0x00) //如果是低音

Frq=Fpclk/(2*FreTab_Low[*pMusic&0x0f]);//取得新的音符頻率低音值

elseif((*pMusic&0xf0)==0x10) //如果是中音

Frq=Fpclk/(2*FreTab_Mid[*pMusic&0x0f]);//取得新的音符頻率中音值

elseif((*pMusic&0xf0)==0x20) //如果是高音

Frq=Fpclk/(2*FreTab_High[*pMusic&0x0f]);//取得新的音符頻率高音值

pMusic++; Sylla=Fpclk/*pMusic; //取得音符節(jié)拍值

pMusic++; T0MR0=Frq; //第一個(gè)音符的頻率值給定時(shí)器0

T1MR0=Sylla; //第一個(gè)音符的節(jié)拍值給定時(shí)器1

T0TCR=0x03;

T1TCR=0x03;

VICVectAddr=0x00000000; //中斷結(jié)束

} }

Music_Init()和Music_Play()函數(shù),分別用于初始化設(shè)置和音樂(lè)播放。參考程序---初始化和音樂(lè)播放函數(shù)#define SPEAK (1<<29) //注釋?zhuān)篜0.29控制喇叭/*****************************************************************************名稱(chēng):Music_Init()*功能:喇叭引腳與定時(shí)器0,1的初始化,給定時(shí)器0與1賦初值*入口參數(shù):無(wú)*出口參數(shù):無(wú)****************************************************************************/voidMusic_Init(void){ PINSEL1=PINSEL1&0xf3ffffff; //選擇喇引腳為GPIO

IO0DIR=IO0DIR|SPEAK; //設(shè)置與喇叭連接的引腳為輸出

//-----------------設(shè)置定時(shí)器0-----------------------------

T0TC=0; //定時(shí)器0計(jì)數(shù)器清0

T0PR=0; //時(shí)鐘不分頻

T0MCR=0x03;//設(shè)置T0MR0匹配后復(fù)位T0TC,并產(chǎn)生中斷標(biāo)志//-----------------設(shè)置定時(shí)器0中斷--------------------------

VICVectCntl3=0x24; //定時(shí)器0中斷分配優(yōu)先級(jí)3

VICVectAddr3=(uint32)Time0_ISR; //設(shè)置中斷向量地址

//-----------------設(shè)置定時(shí)器1-----------------------------

T1TC=0; //定時(shí)器1計(jì)數(shù)器清0

T1PR=2; //時(shí)鐘不分頻

T1MCR=0x03; //設(shè)置T1MR0匹配后復(fù)位T1TC,并產(chǎn)生中斷標(biāo)志

//-----------------設(shè)置定時(shí)器1中斷-------------------------

VICVectCntl2=0x25; //定時(shí)器1中斷分配優(yōu)先級(jí)為2

VICVectAddr2=(uint32)Time1_ISR; //設(shè)置中斷向量地址

VICIntEnable=VICIntEnable|0x00000030; //使能定時(shí)器0/1中斷}/*****************************************************************************名稱(chēng):Music_Play()*功能:控制定時(shí)器0與定時(shí)器1,產(chǎn)生音樂(lè)*入口參數(shù):無(wú)*出口參數(shù):無(wú)****************************************************************************/voidMusic_Play(uint8*MusicTable){ uint32Frq,Sylla; //定義音符頻率與節(jié)拍變量

pMusic=MusicTable;

if((*pMusic&0xf0)==0x00) //如果是低音

Frq=Fpclk/(2*FreTab_Low[*pMusic&0x0f]); //取得新的音符頻率低音值elseif((*pMusic&0xf0)==0x10) //如果是中音

Frq=Fpclk/(2*FreTab_Mid[*pMusic&0x0f]); //取得新的音符頻率中音值elseif((*pMusic&0xf0)==0x20) //如果是高音

Frq=Fpclk/(2*FreTab_High[*pMusic&0x0f]); //取得新的音符頻率高音值pMusic++;Sylla=Fpclk/LengthTab[*pMusic]; //取得音符節(jié)拍值pMusic++;T0MR0=Fpclk/Frq; //第一個(gè)音符的頻率值給定時(shí)器0T1MR0=Fpclk/Sylla; //第一個(gè)音符的節(jié)拍值給定時(shí)器1

T1TCR=0x03;T1TCR=0x01; //啟動(dòng)定時(shí)器1T0TCR=0x03;T0TCR=0x01; //啟動(dòng)定時(shí)器0}/*****************************************************************************名稱(chēng):main()*功能:播放音樂(lè)****************************************************************************/intmain(void){

Music_Init();

while(1)

{

Music_Play(Happy_Birthday); //播放音樂(lè)

} return(0);}參考程序---Main主程序1.在CodeWarriorIDE集成開(kāi)發(fā)環(huán)境中,使用“FollowMeStudyARM”工程模板建立新工程。然后在工程中添加本實(shí)驗(yàn)的程序代碼,按F7快捷鍵編譯鏈接整個(gè)工程。編譯報(bào)錯(cuò)則修改源程序中的錯(cuò)誤,如果編譯通過(guò)則在相應(yīng)的目錄下產(chǎn)生我們所需要的二進(jìn)制文件和可執(zhí)行映像文件。2.運(yùn)行H-Flasher軟件,將產(chǎn)生的二進(jìn)制文件燒寫(xiě)到實(shí)驗(yàn)板上。3.打開(kāi)AXD調(diào)試環(huán)境,并加載剛剛產(chǎn)生的可執(zhí)行映像文件進(jìn)行調(diào)試。4.單擊全速運(yùn)行按鈕(快捷鍵F5),程序會(huì)運(yùn)行并停留在main()主函數(shù)處;繼續(xù)全速運(yùn)行,我們可以聽(tīng)到喇叭播放的一段音樂(lè)“生日快樂(lè)歌”。1.7實(shí)驗(yàn)步驟與結(jié)果五、LED點(diǎn)陣顯示屏LED顯示屏是由多個(gè)發(fā)光二極管排列組成的顯示器件LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像。LED顯示屏技術(shù)特點(diǎn): ①效果卓越; ②維修方便; ③質(zhì)量?jī)?yōu)良; ④格式靈活; ⑤內(nèi)容豐富; ⑥信息量大。目前LED顯示屏作為新一代的信息傳播媒體,已經(jīng)成為城市信息現(xiàn)代化建設(shè)的標(biāo)志,同時(shí)也可廣泛應(yīng)用到軍事、車(chē)站、賓館、體育、新聞、金融、證券、廣告以及交通運(yùn)輸?shù)仍S多行業(yè)。

各種LED顯示屏

LED顯示產(chǎn)品目前已形成了4類(lèi):

1、單色文字顯示屏;

2、點(diǎn)陣和數(shù)碼管混合顯示屏;

3、雙基色(紅、綠)多媒體視屏;

4、全彩色(紅、綠、藍(lán))多媒體視屏。

LED它本身具有如下優(yōu)點(diǎn):亮度高、工作電壓低、功耗小、小型化、壽命長(zhǎng)、耐沖擊和性能穩(wěn)定。LED電子顯示屏目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性、更高的灰度級(jí)別、全色化方向發(fā)展。1.1LED點(diǎn)陣顯示屏分類(lèi)

8X8點(diǎn)陣LED結(jié)構(gòu),由64個(gè)發(fā)光二極管組成。每個(gè)發(fā)光二極管放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一行置1電平,某一列置0電平,則相應(yīng)的二極管就亮。

8×8LED點(diǎn)陣顯示屏實(shí)物,如果想設(shè)計(jì)更大的點(diǎn)陣顯示屏,可以采用多個(gè)模塊進(jìn)行拼接。

8×8LED點(diǎn)陣顯示屏內(nèi)部示意圖1.2LED點(diǎn)陣顯示原理我們?cè)贚ED點(diǎn)陣顯示屏上顯示一個(gè)“大”字。

顯示方法有兩種:行掃描、列掃描。

下面以列掃描為例,算法如下:

for(i=1;i<9;i++){ 第i列置0,其他列置1,R1~R8行輸入相應(yīng)的編碼數(shù)據(jù);

延時(shí)1ms;

}1.3實(shí)驗(yàn)?zāi)康呐c內(nèi)容實(shí)驗(yàn)?zāi)康模豪斫釲ED點(diǎn)陣顯示屏操作的基本原理,掌握漢字顯示的基本方法。實(shí)驗(yàn)內(nèi)容1:在8×8LED顯示屏上顯示一個(gè)“大”字。實(shí)驗(yàn)內(nèi)容2:在8×8LED顯示屏上顯示一個(gè)“大”字,并控制該“大”字從左到右平滑移動(dòng)。

1.4實(shí)驗(yàn)原理分析

當(dāng)所有的行引腳R1~R8為高電平,所有的列引腳C1~C8為低電平時(shí),則這個(gè)點(diǎn)陣模塊上的64個(gè)LED燈全部點(diǎn)亮。同樣利用人眼的視覺(jué)暫留原理來(lái)實(shí)現(xiàn)內(nèi)容的顯示

電路中顯示一個(gè)“大”字。如果采用列掃描的方法,則算法如下:①Q(mào)1輸出低電平,其他列輸出高電平;QH~QA輸出0x44;延時(shí)1ms。②Q2輸出低電平,其他列輸出高電平;QH~QA輸出0x24;延時(shí)1ms。③Q3輸出低電平,其他列輸出高電平;QH~QA輸出0x14;延時(shí)1ms。④Q4輸出低電平,其他列輸出高電平;QH~QA輸出0x0f;延時(shí)1ms。⑤Q5輸

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論