基于單片機的波形發(fā)生器C語言_第1頁
基于單片機的波形發(fā)生器C語言_第2頁
基于單片機的波形發(fā)生器C語言_第3頁
基于單片機的波形發(fā)生器C語言_第4頁
基于單片機的波形發(fā)生器C語言_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及接口技術(shù)課程設(shè)計報告設(shè)計題目: 波形發(fā)生器 學(xué) 號: 1202601* 姓 名: * 指導(dǎo)教師: 孫* 信息與電氣工程學(xué)院二零一五年六月波形發(fā)生器設(shè)計波形發(fā)生器作為一種常用的信號源,是現(xiàn)代測試領(lǐng)域內(nèi)應(yīng)用最為廣泛的通用儀器之一。在研制、生產(chǎn)、測試和維修各種電子元件、部件以及整機設(shè)備時,都學(xué)要有信號源,由它產(chǎn)生不同頻率不同波形的電壓、電流信號并加到被測器件或設(shè)備上,用其他儀器觀察、測量被測儀器的輸出響應(yīng),以分析確定它們的性能參數(shù)。信號發(fā)生器是電子測量領(lǐng)域中最基本、應(yīng)用最廣泛的一類電子儀器。它可以產(chǎn)生多種波形信號,如正弦波,三角波,方波等,因而廣泛用于通信、雷達、導(dǎo)航、宇航等領(lǐng)域。本系統(tǒng)

2、利用單片機AT89C51采用程序設(shè)計方法產(chǎn)生鋸齒波、正弦波、三角波三種波形,再通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號轉(zhuǎn)換成模擬信號,濾波放大,最終由示波器顯示出來,通過鍵盤來控制三種波形的類型選擇、頻率變化,并通過LED顯示其各自的周期。本次關(guān)于產(chǎn)生不同低頻信號的信號源的設(shè)計方案,不僅在理論和實踐上都能滿足實驗的要求,而且具有很強的可行性。該信號源的特點是:體積小、價格低廉、性能穩(wěn)定、實現(xiàn)方便、功能齊全。1. 設(shè)計任務(wù)結(jié)合實際情況,基于AT89C51單片機設(shè)計一個波形發(fā)生器。該系統(tǒng)應(yīng)滿足的功能要求為:(1) 產(chǎn)生三種波形(三角波、鋸齒波、正弦波);(2) 按鍵選擇波形,加減鍵選擇頻率;(3)

3、 在示波器中顯示三種波形;(4) 在六位數(shù)碼管上顯示周期;主要硬件設(shè)備:單片機實驗開發(fā)系統(tǒng)、AT89C51單片機、DAC數(shù)模轉(zhuǎn)換芯電路、六位數(shù)碼管(LED)、矩陣鍵盤、8155芯片、示波器。2. 整體方案設(shè)計波形發(fā)生器系統(tǒng)以AT89C51單片機作為整個系統(tǒng)的控制核心,應(yīng)用其強大的接口功能,構(gòu)成整個波形發(fā)生器系統(tǒng)。利用 AT89S52 單片機構(gòu)造多功能信號發(fā)生器,可產(chǎn)生正弦波,方波,三角波,鋸齒波四種波形,通過 C 語言對單片機的編程即可產(chǎn)生相應(yīng)的波形信號,并可以通過鍵盤進行各種功能的轉(zhuǎn)換和信號頻率的控制,當(dāng)輸出的數(shù)字信號通過數(shù)模轉(zhuǎn)換成模擬信號也就得到所需要的信號波形,通過運算放大器的放大輸出波

4、形,同時讓顯示器顯示輸出的波形信息。(1) 三角波產(chǎn)生思路首先,根據(jù)按鍵設(shè)定的波形頻率,選擇一個周期內(nèi)合適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設(shè)定相鄰2點的時間值,計算出定時器的初值,然后,設(shè)置一個變量每進一次定時中斷DA數(shù)據(jù)就加幅值步進,當(dāng)?shù)扔诳傸c數(shù)的一半時,每進一次定時中斷就把DA數(shù)據(jù)減幅值步進直到DA數(shù)據(jù)為0,計數(shù)變量清零。每進一次定時中斷輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的三角波。(2)鋸齒波產(chǎn)生思路首先,根據(jù)按鍵設(shè)定的波形頻率,選擇一個周期內(nèi)合適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設(shè)定相鄰2點的時間值,計算出定時器的

5、初值,然后,定時輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的波形。(3)正弦波產(chǎn)生思路首先,寫一個表格,然后根據(jù)按鍵設(shè)定的波形頻率,選擇一個周期內(nèi)合適的點數(shù),根據(jù)點數(shù)和峰值計算相鄰2個點的幅度的步進值,根據(jù)點數(shù)和頻率設(shè)定相鄰2點的時間值,計算出定時器的初值,然后,設(shè)置一個變量每進一次定時中斷DA數(shù)據(jù)就加幅值步進,當(dāng)?shù)扔诳傸c數(shù)的一半時,每進一次定時中斷就查表把DA數(shù)據(jù)減幅值步進直到DA數(shù)據(jù)為0,計數(shù)變量清零。每進一次定時中斷查表輸出刷新DA的數(shù)據(jù)就可以產(chǎn)生一定頻率和幅值的正弦波。DAC0832時鐘電路放大、濾波電路AT89C51復(fù)位電路 示波器顯示波形LED顯示頻率 矩陣鍵盤圖2-1 系統(tǒng)的整體

6、方案設(shè)計圖 本系統(tǒng)硬件主要由D/A轉(zhuǎn)換器、顯示系統(tǒng)、矩陣鍵盤等幾部分組成。各模塊的主要功能如下:(1) D/A轉(zhuǎn)換器的功能是把單片機輸出的數(shù)字信號轉(zhuǎn)換成0-5V的模擬信號。(2) 顯示系統(tǒng)中六位數(shù)碼管顯示波形頻率,示波器顯示波形。(3) 矩陣鍵盤選擇波形,增加減少頻率。3. 系統(tǒng)硬件電路設(shè)計3.1 時鐘電路單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1 和 XTAL2 外接晶體振蕩器,構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益的反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩,并產(chǎn)生振動時鐘脈沖。晶振通常選用 6MHZ、12MHZ、24MHZ。本設(shè)計中時鐘電路圖

7、如圖3-1,我們選擇了12MHZ和晶振分別接引腳XTAL1和XTAL2,電容 C1,C2 均選擇為 30pF,對振蕩器的頻率有穩(wěn)定作用,當(dāng)頻率較大時,正弦波、三角波、鋸齒波中每一點的延時時間為幾微妙,故延時時間還要加上指令時間才能獲得較大的頻率波形。單片機的時序單位振蕩周期:晶振的振蕩周期,又稱時鐘周期,為最小的時序單位。機器周期:1個機器周期由12個振蕩周期組成,是計算機執(zhí)行一種基本操作的時間單位。指令周期:執(zhí)行一條指令所需的時間。一個指令周期由1-4個機器周期組成,依據(jù)指令不同而不同. 圖3-1 時鐘電路3.2 復(fù)位電路復(fù)位引腳 RST 通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來

8、抑制噪聲,在每個機器周期的 S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。本設(shè)計選擇了按鍵復(fù)位如圖3-2,在系統(tǒng)運行時,按一下按鍵,就在 RST 斷出現(xiàn)一段高電平,使器件復(fù)位。此時 ALE、PSEN、P0、圖3-2時鐘電路圖P1、P2、P4 輸出高電平,RST 上輸入返回低電平以后,變退出復(fù)位狀態(tài)開始工作。 圖3-2 復(fù)位電路單片機的復(fù)位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內(nèi)RAM為隨機值,運行中的復(fù)位操作不改變片內(nèi)R

9、AM區(qū)中的內(nèi)容,21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值統(tǒng)復(fù)位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認的硬件狀態(tài)下。51單片機的復(fù)位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。51單片機在系統(tǒng)復(fù)位時,將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。3.3 數(shù)模轉(zhuǎn)換電路DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低

10、廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。DAC0832的主要特性參數(shù)如下:1)分辨率為8位;2)電流穩(wěn)定時間1us;3)可單緩沖、雙緩沖或直接數(shù)字輸入;4)只需在滿量程下調(diào)整其線性度;5)單一電源供電(+5V+15V);6)低功耗,200mW。DAC0832的工作原理:利用8位D/A轉(zhuǎn)換器DAC0808,可以將8位數(shù)字量轉(zhuǎn)換成模擬量輸出。數(shù)字量輸入的范圍為0255,對應(yīng)的模擬量輸出的范圍在VREF-到VREF+之間。根據(jù)這一特性,可以利用單片機的并行口輸出的數(shù)字量,產(chǎn)生常用的波形。

11、DAC0832電路與單片機的接口電路如圖3-3所示。 圖3-3 DAC0832與單片機的接口電路3.4 運算放大電路 圖3-4 運算放大電路 LM324的5管腳與DAC0832的(IOUT2)12管腳相連,LM324的6管腳與DAC0832的(IOUT1)11管腳相連,LM324的7管腳與DAC0832的REF(9)管腳相連.第一級運算放大器的作用是將DAC0832輸出的電流信號轉(zhuǎn)化為電壓信號V1,第二級運算放大器的作用是將V1通過反向放大電路-(R2/R1)倍。 題目要求輸出的電壓在0-5V可調(diào),而V1的電壓大約是5V,所以R1選擇5K的電阻,R2選擇10K的電位器,這樣最大的輸出電壓為5*

12、(10/2)=10,最小電壓為0,可以實現(xiàn)題目要求的0-5V。3.5 矩陣鍵盤電路 圖3-5 矩陣鍵盤電路圖中鍵盤獨立鍵盤行引出的四根線接8155芯片的PC口,六根列線接8155芯片的PA口,采用線反轉(zhuǎn)法掃描鍵盤,確定鍵位。如圖按鍵K1為頻率加、K2為頻率減,按鍵K4切換三角波,按鍵K5切換鋸齒波,按鍵K6切換正弦波。3.6 六位數(shù)碼管(LED)顯示電路 圖3-6 LED顯示電路本設(shè)計選擇了6位共陰極數(shù)碼管如圖3-6,它的6個發(fā)光二極管的陰極(二極管正端)連接在一起,通常公共陰極接低電平電平,其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字

13、段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。 顯示電路用于顯示信號的頻率,并且使系統(tǒng)能根據(jù)按鍵實時顯示先關(guān)信息。該系統(tǒng)中添加一個74LS241 鎖存器,用于驅(qū)動數(shù)碼顯示管,使其更易于控制,增加顯示的準確性。數(shù)碼管第三位用來顯示波形信號的頻率,頻率是以100HZ步進顯示。 要使顯示管顯示不同的數(shù)字或者字符,需要使端口輸出相應(yīng)的字型碼,顯示器的字形與字碼關(guān)系如表3-6:共陰極012345673FH06H5BH4FH66H6DH7DH07H89ABCDEF7FH6FH77H7CH39H5EH79H71H 4.

14、系統(tǒng)程序設(shè)計4.1 主程序流程圖 開始 變量、數(shù)組、端口初始化函數(shù)初始化定時器T0初始化,開中斷 按鍵掃描波形模式選擇頻率加減選擇 減 加查表、定時器0定時時間計算數(shù)碼管顯示示波器顯示 給DAC0832直圖4-1 主流程圖 主程序首先將需要初始化的部分進行初始化,然后負責(zé)循環(huán)執(zhí)行按鍵掃描,數(shù)碼管顯示、DA數(shù)據(jù)輸出和示波器顯示。 這些過程都是以模塊化的程序?qū)崿F(xiàn)的,程序中有,按鍵掃描程序、數(shù)碼管掃描顯示程序、定時器定時計算程序、查表程序和DA數(shù)據(jù)輸出程序,通過調(diào)用這些程序完成波形的產(chǎn)生,幅值和頻率的改變。4.2 按鍵處理子程序流程圖程序位于函數(shù)Scan-Key()和Shao-Key()中,函數(shù)位于

15、主循環(huán)中,每循環(huán)一次調(diào)用一次,檢測鍵盤是否按下,如果按下去延時抖動,然后檢測到底是哪個按鍵按下,針對不同的按鍵按下采取不同的動作。因為按鍵采用的是掃描法,故需要注意消抖的處理,在此用軟件法去抖動即可。軟件法去抖動的實質(zhì)是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)是否保持著,如是則作為按鍵處理,否則,視為抖動,不予理睬。去抖動的延時時間一般參考資料多描述為20ms左右,在實際應(yīng)用中應(yīng)大于20ms。否則,會導(dǎo)致按一次多處理,影響程序正常執(zhí)行。按鍵掃描入口有鍵按下?NY 延時該鍵按下?N得到按鍵號Y 返回圖4-2 鍵盤控制程序流程圖4.3 數(shù)碼管輸出子程序流程圖數(shù)碼管顯示入口

16、 關(guān)位碼 送段碼 開位碼結(jié)束圖4-3 數(shù)碼管子程序流程圖數(shù)碼管輸出程序是送段選碼和位選碼的程序,位于主程序中。輪流點亮6個數(shù)碼管,每大約5ms變換一次,由于輪換的次數(shù)太快,由于視覺暫留效應(yīng),看上去是6個數(shù)碼管看上去好像一直點亮。5. 系統(tǒng)調(diào)試5.1 Proteus軟件仿真調(diào)試(1)鍵K4按下,示波器顯示三角波(2) 鍵K5按下,示波器顯示鋸齒波(3) 鍵K6按下,示波器顯示正弦波 5.2 Proteus仿真原理圖 圖5- Proteus仿真原理圖5.2 硬件調(diào)試在單片機實驗開發(fā)系統(tǒng)中,將AT89C51的P1口用8排位線接到DAC0832的Dl口,DAC0832的CS5和WR端口接地,VOUT接

17、示波器輸入端。打開示波器,調(diào)節(jié)水平與垂直方向,屏幕上出現(xiàn)一條水平亮線即可。按下按鍵K4,示波器輸出三角波形,再連續(xù)按下鍵K1,波形周期隨之增大,六位數(shù)碼管顯示的數(shù)字亦隨之增加。按下鍵K6,示波器則輸出正弦波,再連續(xù)按下鍵K2,波形周期隨之減小,六位數(shù)碼管顯示的數(shù)字亦隨之減小。按下鍵K5,示波器輸出鋸齒波,連續(xù)按下K1或K2,示波器顯示的波形的周期隨之增大或減小,六位數(shù)碼管上顯示的周期數(shù)也隨之增大減小。6. 程序清單#include<reg51.h>#include<absacc.h> #include<intrins.h>#include<stdlib

18、.h>#include<math.h>#define PA8155 XBYTE0XFF21#define PB8155 XBYTE0XFF22#define PC8155 XBYTE0XFF23#define PP8155 XBYTE0XFF20#define uint unsigned int #define uchar unsigned char uint j,i;uint XSSJ,num,SS;uchar Xi=0,Xl=0xfe; uint KeyY,KeyNum,NUMM=3;uint numbsj=0,numbjc=0,numbsin=0; uchar stab

19、le16=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71 ;/* 0f十六個數(shù)的代碼 */uchar Xtable6=0x00,0x00,0x00,0x00,0x00,0x00;unsigned char code Tab= /* 正弦波一周期內(nèi)采樣256次,把幅值按比例放大*/輸出電壓從0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0xAE,0xB

20、1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/輸出電壓從最大值到0(正弦波1/4部分)0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0x

21、FD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7,0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x86,0x83,0x80,/輸出電壓從0到最小值(正弦波1/4部分)0

22、x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0

23、x00,0x00,0x00,0x00,/輸出電壓從最小值到0(正弦波1/4部分)0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,

24、0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x72,0x76,0x79,0x7C,0x80;void Scan_Key(void);void Shao_Key(void) ;void delay(unsigned int x);void XianShiSJ(void);void Sanjiaobo(void) ;void Juchibo(void);void Zhengxianbo(void);uint WW,WWW,W;void Sanjiaobo(void)/*產(chǎn)生三角波*/ WWW=0XFF; for(WW=0;WW<120;WW+) P1=WWW;/*

25、三角波最大值*/ WWW-; for(SS=0;SS<numbsj;SS+) _nop_; for(W=0;W<120;W+) P1=WWW; WWW+; for(SS=0;SS<numbsj;SS+) _nop_; uint QQ,QQQ; void Juchibo(void)/*產(chǎn)生鋸齒波*/ QQQ=0XFF ;for(QQ=0;QQ<120;QQ+) P1=QQQ;/*鋸齒波最大值*/ QQQ-; for(SS=0;SS<numbjc;SS+) _nop_; _nop_; uint AA;void Zhengxianbo(void)/*產(chǎn)生正弦波*/ fo

26、r(AA=0;AA<255;AA+) P1=TabAA;/* 查表 */ for(SS=0;SS<numbsin;SS+) _nop_; _nop_; void XianShiSJ(void)/*數(shù)碼管顯示信號周期*/ Xtable0=stable0; Xtable1=stable(XSSJ)%10);/個位 Xtable2=stable(XSSJ)%100)/10;/十位 Xtable3=stable(XSSJ)%1000)/100;/百位 Xtable4=stable0; Xtable5=stable0; void T0_time() interrupt 1 /50ms TH0

27、=(65536-50000)/256;TL0=(65536-50000)%256; num+; if(num=5) /250ms num=0; Scan_Key(); delay(10); Scan_Key(); if(KeyY=1) /有鍵按才會執(zhí)行 KeyY=0; Shao_Key(); /求鍵盤號 switch(KeyNum) /鍵盤01的次數(shù) case 0: numbjc=numbjc+1; numbsj=numbsj+1; numbsin=numbsin+1; break; case 1: numbjc=numbjc-1; numbsj=numbsj-1; numbsin=numbs

28、in-1; break; default: NUMM=KeyNum;break; /不變 switch(NUMM) case 3: XSSJ=5*numbjc+10; break; case 4: XSSJ=10*numbsj+20; break; case 5: XSSJ=10*numbsin+23; break; default: break; XianShiSJ(); void main() int q; for(q=0;q<=15;q+) stableq=stableq;XSSJ=10;XianShiSJ();/求顯示數(shù)據(jù)IP=0X08; PP8155=0x43 ;EA=1;ET

29、0=1;ET1=1;TMOD=0X11;TH0=(65536-50000)/256; / 高八位TL0=(65536-50000)%256;TH1=(65536-1000)/256; / 高八位TL1=(65536-1000)%256; TR0=1;TR1=1; while(1) while(NUMM=3) Juchibo(); while(NUMM=4) Sanjiaobo(); while(NUMM=5) Zhengxianbo() ; void delay(unsigned int x) for(j=0;j<x;j+) for(i=0;i<120;i+); void Scan_Key(void) /判斷有鍵按下 uint i; PA8155=0x00; PB8155=0XFF; i=PC8155; i=i; i=i&0x0f; if(i!=0) KeyY=1; else KeyY=0; uchar Keyh,Keyl;void Shao_Key(void)/求鍵盤號 Keyl=0Xfe; PB8155=0XFF; for( KeyNum=0; KeyNum<=5; KeyNum+) PA8155=Keyl

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論