課程設(shè)計(論文)基于單片機的電子琴設(shè)計2_第1頁
課程設(shè)計(論文)基于單片機的電子琴設(shè)計2_第2頁
課程設(shè)計(論文)基于單片機的電子琴設(shè)計2_第3頁
課程設(shè)計(論文)基于單片機的電子琴設(shè)計2_第4頁
課程設(shè)計(論文)基于單片機的電子琴設(shè)計2_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州航空工業(yè)管理學(xué)院單片機課程設(shè)計說明書 屆 電子信息工程 專業(yè) 班級題 目 基于單片機的電子琴設(shè)計 學(xué) 號 姓 名 指導(dǎo)教師 二一年月日1、 電子琴的基本原理1、本次設(shè)計的內(nèi)容是:具有7個基本音符的按鍵,能夠彈奏簡單樂曲;能夠播放存貯在內(nèi)存中的3首樂曲;每次按下一個8鍵可以播放一首歌。2、整體工作原理: 采用stc89c52單片機作為主控芯片,設(shè)置了鍵盤、蜂鳴器等外圍器件,另外還用到一些簡單器件如:四位數(shù)碼管和pnp型三極管及電阻等。利用按鍵實現(xiàn)音符和音調(diào)的輸入;四位的數(shù)碼管進行被操作的按鍵顯示;用pnp型三極管實現(xiàn)低音頻功率放大;最后用蜂鳴器發(fā)音。主控芯片采用stc89c52單片機,它是大

2、規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點,同時具有強大的控制功能和靈活的編程實現(xiàn)特性。 3、發(fā)音原理:若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(頻率),再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當(dāng)計時終止后就將p1.7反相,然后重復(fù)計時再反相。就可在p1.7引腳上得到此頻率的脈沖。利用stc89c52的內(nèi)部定時器使其工作計數(shù)器模式(mode1)下,改變計數(shù)值th0及tl0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。例如,頻率為523hz,其周期t1/5231912s,因此只要令計數(shù)器計時956s/1s956,每計數(shù)956次時將i/o

3、反相,就可得到中音do(523hz)。計數(shù)脈沖值與頻率的關(guān)系式是:nfi2fr,式中,n是計數(shù)值;fi是機器頻率(晶體振蕩器為12mhz時,其頻率為1mhz);fr是想要產(chǎn)生的頻率。其計數(shù)初值t的求法如下:t65536n65536fi2fr例如:設(shè)k65536,fi1mhz,求中音do(261hz)。t65536n65536fi2fr6553610000002fr65536500000/fr,中音do的t65536500000/52364580單片機12mhz晶振,中音符與計數(shù)t0相關(guān)的計數(shù)值如表所示: 音符 頻率(hz)計數(shù)值(t值)音符頻率(hz)計數(shù)值(t值)低1do 26263628#

4、4fa#74064860#1do# 27763737中5so78464898低2re29463835#5so#83194934#2re#31163928中6la88064948低3mi33064021#中6la#93264494低fa34964103中7si96865030#4fa#37064185低1do104665058低so39264260#1do#110965085#5so#41564331高2re117565110低6la44064400#2re#124565134#6la#46664463高3mi131865157低7si49464524高4fa139765178中1do52364

5、580#4fa#149065198#1do#55464633高5so156865217中2re58764633#5so#166165235#2re#62264884高6la176065252中3mi65964732#6la#186565268中4fa69864820高7si196765283 用單片機播放音樂,或者彈奏電子琴,實際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系。 2、 電子時鐘的硬件設(shè)計1、硬件原理圖: 本系統(tǒng)有主控芯片stc89c52、發(fā)音單元、顯示模塊、按鍵模塊組成。硬件電路要以單片機作為主控芯片,實現(xiàn)按鍵輸入音符和音調(diào),兩位數(shù)碼管的

6、顯示以及低音頻功率放大和蜂鳴器發(fā)音。針對本設(shè)計的功能和用途,采用stc89c52單片機更好.2、時鐘電路 單片機內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳xl和x2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,結(jié)構(gòu)圖2中x1、c1、c2??梢愿鶕?jù)情況選擇6mhz、12mhz或24mhz頻率的石英晶體,補償電容通常選擇30pf左右的瓷片電容。圖-時鐘電路 3、鍵盤設(shè)計 鍵盤可以分為2類:獨立連接式鍵盤和矩陣式鍵盤。本設(shè)計采用矩陣式按鍵,矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5v上當(dāng)無鍵按下時,行線處

7、于高電平狀態(tài);當(dāng)有鍵按下時,行、列線將導(dǎo)通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關(guān)鍵。圖-矩陣鍵盤4、元件清單 原件名稱數(shù)量焊接位置電源部分usb座1usbusb線1雙排針(2)1conn1跳帽2104電容0.1uf6c2,5,6,7,8,9,11led燈1d1電阻2k1r2最小系統(tǒng)部分40針座1u1stc89c521晶振12mhz1y1電容20pf2c3,c4復(fù)位鍵1sw_rst電阻10k1r1蜂鳴器1ls1+三極管9015(密碼鎖,電子琴)5q1q4, q9電阻3301r3鍵盤顯示、通信部分16針座1u2max2321單排針(5)1uart按鍵(密碼鎖,電子

8、琴)8key1key8單排針(3)1switch1跳帽14位led (密碼鎖,電子琴)1digiled1電阻4.7k8r14r21電阻3308r6r13 5 、發(fā)音部分設(shè)計 如下圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構(gòu)成。由三極管來驅(qū)動揚聲器發(fā)音的,同時加上拉電阻增強驅(qū)動電流,提高驅(qū)動能力。圖4發(fā)音電路6、硬件調(diào)試 硬件調(diào)試主要是針對單片機部分進行的調(diào)試。在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況的任務(wù)。注意焊點之間,確保焊點沒有短接在一起,同時注意

9、焊點的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)在確保硬件電路正常且無異常情況(斷路或短路)的情況下方可上電調(diào)試,上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確,在本次設(shè)計中,上電調(diào)試主要是檢測單片機控制部分、數(shù)碼管點亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試,3、 電子時鐘的軟件設(shè)計1、鍵盤掃描程序: 檢測是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測。 2、功能轉(zhuǎn)移程序: 對檢測到的按鍵值進行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們設(shè)計的功能程序有兩種,即音色調(diào)節(jié)功能和自動播放樂曲的功能。 3、琴鍵處理程序

10、:根據(jù)檢測到的按鍵值,查詢音調(diào)表,給計時器賦值,使發(fā)出相應(yīng)頻率的聲音。 4、自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有按鍵按下。 開 始 5、程序流程圖t0初始化并開中斷允許t0中斷按鍵是否成功按下 識別按鍵功能 根據(jù)按鍵功能,轉(zhuǎn)入音符t到t0 啟動t0工作按鍵釋放成功否 停止t0工作 圖5 流程圖 6、設(shè)計源程序: /*說明* 曲譜存貯格式 unsigned char code musicname音高,音長,音高,音長., 0,0;末尾:0,0 表示結(jié)束(important)音

11、高由三位數(shù)字組成:個位是表示 17 這七個音符 ;十位是表示音符所在的音區(qū):1-低音,2-中音,3-高音;百位表示這個音符是否要升半音: 0-不升,1-升半音。音長最多由三位數(shù)字組成: 個位表示音符的時值,其對應(yīng)關(guān)系是: |數(shù)值(n): |0 |1 |2 |3 | 4 | 5 | 6 |幾分音符: |1 |2 |4 |8 |16 |32 |64 音符=2n 十位表示音符的演奏效果(0-2): 0-普通,1-連音,2-頓音 百位是符點位: 0-無符點,1-有符點 調(diào)用演奏子程序的格式 play(樂曲名,調(diào)號,升降八度,演奏速度);|樂曲名 : 要播放的樂曲指針,結(jié)尾以(0,0)結(jié)束;|調(diào)號(0-

12、11) :是指樂曲升多少個半音演奏;|升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度;|演奏速度(1-12000):值越大速度越快;*/#define _soundplay_h_revision_first_#include /*#define system_osc 12000000/定義晶振頻率12000000hz#define sound_space 4/5 /定義普通音符演奏的長度分率,/每4分音符間隔sbit beepio = p17;/定義輸出管腳unsigned int code fretab12 = 262,277,294,311,330,349,369,392

13、,415,440,466,494 ; /原始頻率表unsigned char code signtab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置unsigned char code lengthtab7= 1,2,4,8,16,32,64 ;unsigned char sound_temp_th0,sound_temp_tl0;/音符定時器初值暫存 unsigned char sound_temp_th1,sound_temp_tl1;/音長定時器初值暫存/*void initialsound(void)beepio = 1;sound_temp_th1 = (65535

14、-(1/1200)*system_osc)/256;/ 計算tl1應(yīng)裝入的初值 (10ms的初裝值)sound_temp_tl1 = (65535-(1/1200)*system_osc)%256;/ 計算th1應(yīng)裝入的初值 th1 = sound_temp_th1;tl1 = sound_temp_tl1;tmod |= 0x11;et0 = 1;et1 = 0;tr0 = 0;tr1 = 0;ea = 1;void beeptimer0(void) interrupt 1/音符發(fā)生中斷beepio = !beepio;th0 = sound_temp_th0; tl0 = sound_te

15、mp_tl0;/*void play(unsigned char *sound,unsigned char signature,unsigned octachord,unsigned int speed)unsigned int newfretab12;/新的頻率表unsigned char i,j;unsigned int point,ldiv,ldiv0,ldiv1,ldiv2,ldiv4,currentfre,temp_t,soundlength;unsigned char tone,length,sl,sh,sm,slen,xg,fd;for(i=0;i 11)j = j-12;new

16、fretabi = fretabj*2;elsenewfretabi = fretabj;if(octachord = 1)newfretabi=2;else if(octachord = 3)newfretabi=2;soundlength = 0;while(soundsoundlength != 0x00)/計算歌曲長度soundlength+=2;point = 0;tone = soundpoint;length = soundpoint+1; / 讀出第一個音符和它時時值ldiv0 = 12000/speed;/ 算出1分音符的長度(幾個10ms) ldiv4 = ldiv0/4;

17、 / 算出4分音符的長度 ldiv4 = ldiv4-ldiv4*sound_space; / 普通音最長間隔標(biāo)準(zhǔn) tr0 = 0;tr1 = 1;while(point = 2; /低音 if (sm=3) currentfre = 2; /高音temp_t = 65536-(50000/currentfre)*10/(12000000/system_osc);/計算計數(shù)器初值sound_temp_th0 = temp_t/256; sound_temp_tl0 = temp_t%256; th0 = sound_temp_th0; tl0 = sound_temp_tl0 + 12; /加

18、12是對中斷延時的補償 slen=lengthtablength%10; /算出是幾分音符xg=length/10%10; /算出音符類型(0普通1連音2頓音) fd=length/100;ldiv=ldiv0/slen; /算出連音音符演奏的長度(多少個10ms)if (fd=1) ldiv=ldiv+ldiv/2;if(xg!=1)if(xg=0) /算出普通音符的演奏長度 if (slen0;i-) /發(fā)規(guī)定長度的音 while(tf1=0);th1 = sound_temp_th1;tl1 = sound_temp_tl1;tf1=0;if(ldiv2!=0)tr0=0; beepio

19、=1;for(i=ldiv2;i0;i-) /音符間的間隔while(tf1=0);th1 = sound_temp_th1;tl1 = sound_temp_tl1;tf1=0;point+=2; tone=soundpoint;length=soundpoint+1;beepio = 1;/*#endif#include #include soundplay.h/*music*unsigned char code sound1= 0x15,0x02, 0x00,0x00 ;/1unsigned char code sound2= 0x16,0x02, 0x00,0x00 ;/2unsign

20、ed char code sound3= 0x17,0x02, 0x00,0x00 ;/3unsigned char code sound4= 0x18,0x02, 0x00,0x00 ;/4unsigned char code sound5= 0x19,0x02, 0x00,0x00 ;/5unsigned char code sound6= 0x1a,0x02, 0x00,0x00 ;/6unsigned char code sound7= 0x1b,0x02, 0x00,0x00 ;/7unsigned char key;/揮著翅膀的女孩unsigned char code music_

21、girl= 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03, 0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x17,0x02, 0x17,0x0

22、3, 0x18,0x03, 0x19,0x02, 0x1a,0x03, 0x1b,0x03, 0x1f,0x03, 0x1f,0x03, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x1f,0x03, 0x1f,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x20,0x03,

23、0x21,0x03, 0x20,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x1f,0x03, 0x1b,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1a,0x66, 0x1a,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1

24、f,0x03, 0x1b,0x03, 0x1f,0x66, 0x1f,0x03, 0x1b,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1a,0x66, 0x1a,0x03, 0x19,0x03, 0x19,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x00, 0x1a,0x03, 0x1a,0x03, 0x1a,0x03, 0x1b,0x03, 0x1b,0x03, 0x1a,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03, 0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0

25、x03, 0x18,0x03, 0x17,0x04, 0x18,0x0e, 0x18,0x03, 0x17,0x04, 0x18,0x0e, 0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x1f,0x04, 0x1b,0x0e, 0x1b,0x03, 0x19,0x03, 0x19,0x03

26、, 0x15,0x03, 0x1a,0x66, 0x1a,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x66, 0x1f,0x03, 0x1b,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1a,0x66, 0

27、x1a,0x03, 0x19,0x03, 0x19,0x03, 0x1f,0x03, 0x1b,0x03, 0x1f,0x00, 0x18,0x02, 0x18,0x03, 0x1a,0x03, 0x19,0x0d, 0x15,0x03, 0x15,0x02, 0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00;/同一首歌unsigned char code music_same= 0x0f,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x

28、16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0f,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1b,0x02, 0x1b,0x70, 0x1a,0x03, 0x1a,0x01, 0x19,0x02, 0x19,0x03, 0x1a,0x03, 0x1b,

29、0x02, 0x1a,0x0d, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1a,0x02, 0x19,0x0c, 0x18,0x0d, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0f,0x0c, 0x10,0x02, 0x15,0x00, 0x1f,0x01, 0x1a,0x01, 0x18,0x66, 0x19,0x03, 0x1a,0x01, 0x1b,0x02, 0x1b,0x03, 0x1b,0x03, 0x1b,0x0c, 0x1a,0x0

30、d, 0x19,0x03, 0x17,0x00, 0x1f,0x01, 0x1a,0x01, 0x18,0x66, 0x19,0x03, 0x1a,0x01, 0x10,0x02, 0x10,0x03, 0x10,0x03, 0x1a,0x0c, 0x18,0x0d, 0x17,0x03, 0x16,0x00, 0x0f,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70, 0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66, 0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03,

31、0x10,0x02, 0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0f,0x0c, 0x1a,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66, 0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00, 0x00,0x00 ;/兩只蝴蝶 unsigned char code music_two = 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,

32、 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0d, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0e, 0x15,0x04, 0x0f,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0d, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x

33、16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0d, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0e, 0x15,0x04, 0x0f,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1a,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,

34、0x03, 0x16,0x02, 0x16,0x0d, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0d, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1a,0x03, 0x1f,0x03, 0x1b,0x03, 0x1b,0x03, 0x1a,0x03, 0x17,0x0d, 0x16,0x03, 0x16,0x03, 0x16,0x0d, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1a,0x02, 0x1a,0x02, 0x10,0x03, 0x17,0x0

35、d, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1f,0x02, 0x1b,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x17,0x02, 0x1a,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x1a,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0d, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03,

36、0x1a,0x03, 0x1f,0x03, 0x1b,0x03, 0x1b,0x03, 0x1a,0x03, 0x17,0x0d, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1a,0x02, 0x1a,0x02, 0x10,0x03, 0x17,0x0d, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1f,0x02, 0x1b,0x03, 0x1a,0x03, 0x1

37、a,0x0e, 0x1b,0x04, 0x17,0x02, 0x1a,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x17,0x16, 0x1a,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x1a,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0f,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 ;/*void delayms(unsigned int z)unsigned int x,y;for (x = z; x0; x-)for(y=110; y0; y- );void keyscan()/矩陣鍵盤掃描函數(shù)unsigned char x,y;p3=0xf0;if (p3!=0xf0) delayms(10); if (p3!=0xf0) x=p3&0xf0; p3=0x8f; y=p3&0x8f; key=x|y;

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論