單片機(jī)應(yīng)用與科技制作
1 任務(wù)
本課題主要是設(shè)計(jì)一個(gè)基于51單片機(jī)的開發(fā)系統(tǒng)平臺(tái),開發(fā)平臺(tái)需包括的基礎(chǔ)硬件有:12864液晶顯示器、8位發(fā)光二極管指示器、TLC5616模塊、ADC0832數(shù)模轉(zhuǎn)換、蜂鳴器電路、DS18B20溫度傳感器電路、4*4矩陣電路和DS1302時(shí)鐘模塊。然后根據(jù)51單片機(jī)開發(fā)平臺(tái)自行設(shè)計(jì)一個(gè)基于51單片機(jī)電子琴設(shè)計(jì)。
首先,看一下實(shí)物圖:
51hei圖片_20191126210326.jpg (3.69 MB, 下載次數(shù): 42)
下載附件
2019-12-12 22:11 上傳
1.1 設(shè)計(jì)單片機(jī)開發(fā)硬件平臺(tái)
單片機(jī)硬件開發(fā)
平臺(tái)的框圖如圖1-1所示,
基礎(chǔ)硬件有:蜂鳴器、LED、LCD12864、TLC5615、ADC0832、DS18B20、DS1302、4*4矩陣按鍵和USB-TTL。
51hei圖片_20191126205342.jpg (241.32 KB, 下載次數(shù): 41)
下載附件
2019-12-12 21:57 上傳
USB-TTL用于下載程序和給主控供電;蜂鳴器、8位LED和LCD12864是作為開發(fā)板的指示部分,其中,蜂鳴器可提供聲音警報(bào),LED燈提供光顯示,LCD12864顯示器可提供直觀的顯示;4*4矩陣鍵盤作為系統(tǒng)與人交互的設(shè)備;檢測(cè)模塊有:DS1302時(shí)鐘檢測(cè)模塊、DS18B20溫度檢測(cè)模塊、ADC0832數(shù)模轉(zhuǎn)換模塊以及TLC5615模數(shù)轉(zhuǎn)換模塊。
1.2 基于51
單片機(jī)的電子琴設(shè)計(jì)
課題要求在單片機(jī)開發(fā)系統(tǒng)基礎(chǔ)上進(jìn)行功能擴(kuò)展,根據(jù)學(xué)號(hào)尾數(shù)選擇擴(kuò)展的功能。故需要擴(kuò)展功能如表1-2所示。
基礎(chǔ)要求有:高低音的選擇功能、手動(dòng)演奏功能、自動(dòng)演奏功能和完美的圖形界面設(shè)計(jì)。
表1-2 擴(kuò)展功能基本要求
擴(kuò)展功能項(xiàng)目 | 基礎(chǔ)要求 | 備注 |
| 1. 高低音選擇
2. 手動(dòng)演奏
3. 自動(dòng)演奏
4. 圖形界面設(shè)計(jì)
| |
2 單片機(jī)硬件電路設(shè)計(jì)2.1單片機(jī)原理圖設(shè)計(jì)
單片機(jī)原理圖如圖2-1所示,對(duì)電路進(jìn)行了簡(jiǎn)化,將LCD12864模塊通信方式由并行改成串行,將獨(dú)立按鍵和矩陣按鍵進(jìn)行了整合,利用短接帽實(shí)現(xiàn)獨(dú)立按鍵和矩陣按鍵的切換。電路遵循模塊化原則,設(shè)計(jì)上盡量精簡(jiǎn),方便后期調(diào)試。(注:ADC0832光敏那里要串聯(lián)一個(gè)上拉電阻才行)
51hei圖片_20191126210248.jpg (726.56 KB, 下載次數(shù): 37)
下載附件
2019-12-12 21:59 上傳
12864中文漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置 8192 個(gè)中文漢字(16X16 點(diǎn)陣)、128個(gè)字符(8X16 點(diǎn)陣)及 64X256 點(diǎn)陣顯示RAM。參考LCD12864的使用手冊(cè),常用的電路的并行接口,雖然并行傳輸數(shù)據(jù)比較快,但是在這個(gè)電路上明顯不適用,為了簡(jiǎn)化電路,我修改了顯示器的硬件電路后,改成了串行傳輸模式。電路接口如圖2-1-1所示。從圖上知道,現(xiàn)在本來(lái)需要接近20個(gè)接口的顯示器變成了只需要5個(gè)接口的。大大簡(jiǎn)化了電路。
51hei截圖_20191130104105.png (25 KB, 下載次數(shù): 41)
下載附件
2019-12-12 22:02 上傳
圖2-3 LCD12864接口修改圖
硬件說(shuō)明:液晶通信方式有二種選擇,并口或串口方式。如果需要串口通信時(shí)需把產(chǎn)品PCB后面的S點(diǎn)短接才能正常運(yùn)行。P點(diǎn)為并口通信,使用并口通信時(shí)可短接P點(diǎn)也可不短接,短接時(shí)抗干擾效果更加; 液晶自帶10K電位器可調(diào)電阻( VR1)位置處,不需再加外圍電位器,如需要接外圍可調(diào)的需要把PCB板上的JP1與JP2短接方可進(jìn)行外圍可調(diào)電阻。根據(jù)LCD12864液晶顯示屏的使用手冊(cè),作出具體修改如圖2-1-2所示。首先,將顯示器的背光電源A+和K-直接短接顯示器的供電電源,然后短接JP2接口的S,通過(guò)硬件修改串行方式。
51hei圖片_20191126210308.jpg (3.59 MB, 下載次數(shù): 33)
下載附件
2019-12-12 22:03 上傳
圖2-4 LCD12864硬件修改圖
2.1.2 獨(dú)立按鍵和矩陣按鍵電路如果把獨(dú)立按鍵接口和矩陣按鍵接口分開的話,明顯會(huì)增加電路設(shè)計(jì)上的復(fù)雜性,所以我將獨(dú)立按鍵和矩陣按鍵進(jìn)行了整合,通過(guò)一個(gè)短接帽即可實(shí)現(xiàn)獨(dú)立按鍵功能和矩陣按鍵功能的切換。未接短接帽的時(shí)候,按鍵電路是矩陣按鍵模式,采用行列式掃描方式;接上短接帽是把P2.4引腳接地從而讓K1、K5、K9、K13各端接地變成獨(dú)立按鍵。具體如圖2-5所示。這樣電路就省去了部分按鍵。
51hei截圖_20191130110626.png (14.16 KB, 下載次數(shù): 33)
下載附件
2019-12-12 22:05 上傳
圖2-5 獨(dú)立按鍵和矩陣按鍵合并電路
2.1.3 復(fù)位電路復(fù)位電路在單片機(jī)最小系統(tǒng)起著重要的作用,單片機(jī)在可靠復(fù)位后,程序才能從0000h地址開始有序地執(zhí)行應(yīng)用程序,但是復(fù)位電路很容易受到外部噪聲干擾,所以在設(shè)計(jì)復(fù)位電路的時(shí)候需要保證系統(tǒng)可靠復(fù)位和具備一定的抗干擾能力。復(fù)位電路有上電復(fù)位和手動(dòng)復(fù)位兩個(gè)模式,這里采用的是上電只復(fù)位,不增加手動(dòng)復(fù)位電路。在51單片機(jī)中,復(fù)位脈沖的高電平寬度必須大于2個(gè)機(jī)器周期,若系統(tǒng)選用11.0592MHZ晶振,則一個(gè)機(jī)器周期約為1.085us,那么復(fù)位脈沖寬度最小應(yīng)為2us。如圖2-6所示,利用rc充電原理實(shí)現(xiàn)上電復(fù)位的電路設(shè)計(jì)。常用的復(fù)位電路是電容和電阻組成RC電路加上按鍵,把按鍵復(fù)位去掉,形成通電即復(fù)位,不需要按鍵進(jìn)行復(fù)位。
51hei截圖_20191201101550.png (6.52 KB, 下載次數(shù): 44)
下載附件
2019-12-12 22:06 上傳
圖2-6 復(fù)位電路修改圖
2.1.4 AD和DA接口電路在單片機(jī)設(shè)計(jì)上AD和DA模塊是要求單獨(dú)分開測(cè)試的,即選用TLC5615和ADC0832兩個(gè)模塊,在電路設(shè)計(jì)上,這兩個(gè)模塊都是串行數(shù)據(jù)傳輸,即都有三條數(shù)據(jù)線接口,如果設(shè)計(jì)上把這兩個(gè)模塊的接口并行起來(lái)的話,兩個(gè)模塊6條數(shù)據(jù)線只需要占用單片機(jī)3個(gè)接口。即圖2-7中H3和H2是并接一起的。
TLC5615模塊,即數(shù)模轉(zhuǎn)換模塊,將數(shù)字量轉(zhuǎn)換為模擬量輸出。通過(guò)查找TLC5615模塊的使用手冊(cè),了解如下:TLC5615是一個(gè)串行1O位DAC芯片,性能比早期電流型輸出的DAC要好。只需要通過(guò) 3根串行總線就可以完成1O位數(shù)據(jù)的串行輸入,易于和工業(yè)標(biāo)準(zhǔn)的微處理器或微控制器 (單片機(jī) )接口。手冊(cè)上說(shuō)明該模塊的通信時(shí)序是:當(dāng)片選 S為低電平時(shí),串行輸人數(shù)據(jù)才能被移 人 l6位移位寄存器。當(dāng)S為低電平時(shí),在每一個(gè)SCLK時(shí)鐘的上升沿將DIN的一位數(shù)據(jù)移人16位移寄存器。
ADC0832模塊,即模數(shù)轉(zhuǎn)換模塊,將模擬量轉(zhuǎn)換成數(shù)字量輸出。從改模塊的使用手冊(cè)了解:ADC0832是8腳雙列直插式雙通道A/D轉(zhuǎn)換器,能分別對(duì)兩路模擬信號(hào)實(shí)現(xiàn)模—數(shù)轉(zhuǎn)換,可以用在單端輸入方式和差分方式下工作。ADC0832采用串行通信方式,通過(guò)DI數(shù)據(jù)輸入端進(jìn)行通道選擇、數(shù)據(jù)采集及數(shù)據(jù)傳送。8位的分辨率(最高分辨可達(dá)256級(jí)),可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。具有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。獨(dú)立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。工作原理:正常情況下ADC0832 與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)使用并與單片機(jī)的接口是雙向的,所以在I/O口資源緊張時(shí)可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。當(dāng)ADC0832未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK和DO/DI的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘(CLK)輸入端輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。
51hei截圖_20191201102427.png (22.71 KB, 下載次數(shù): 33)
下載附件
2019-12-12 22:06 上傳
圖2-7 AD和DA并接圖
2.1.5 DS1302時(shí)鐘模塊接口DS1302 模塊內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)靜態(tài)RAM ,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信。提供秒、分、時(shí)、日、周、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整。時(shí)鐘操作可通過(guò)AM/PM 指示決定采用24 或12 小時(shí)格式。DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:(1)RES 復(fù)位(2)I/O 數(shù)據(jù)線(3)SCLK串行時(shí)鐘。設(shè)計(jì)電路如圖2-8所示。
51hei截圖_20191201103240.png (8.28 KB, 下載次數(shù): 47)
下載附件
2019-12-12 22:07 上傳
圖2-8 DS1302時(shí)鐘模塊電路設(shè)計(jì)
2.1.6 DS18B20溫度傳感器接口DS18B20是最常見(jiàn)的數(shù)字溫度傳感器,體積小;精度高(12位時(shí)精度可以達(dá)到0.625攝氏度,出廠默認(rèn)12位);接線簡(jiǎn)單,無(wú)需外圍短路;封裝形式多樣,能滿足不同應(yīng)用需求等。常見(jiàn)的電路設(shè)計(jì)如圖2-9所示。選用4.7K電阻上拉。DS18B20單線數(shù)據(jù)傳輸,直接將數(shù)字量傳送到單片機(jī)外圍接口,單片機(jī)可以直接讀取溫度的數(shù)字量。
51hei截圖_20191201104113.png (6.92 KB, 下載次數(shù): 35)
下載附件
2019-12-12 22:07 上傳
圖2-9 DS18B20溫度傳感器電路設(shè)計(jì)
3 基于51單片機(jī)的電子琴設(shè)計(jì)3.1 電子琴的硬件電路
根據(jù)選做設(shè)計(jì)的要求,對(duì)硬件電路進(jìn)行了修改,操作更加方便。選做要求如下:按鍵演奏、自動(dòng)演奏、高低音選擇。根據(jù)要求,在原有的要求上進(jìn)行了擴(kuò)展,在按鍵演奏的基礎(chǔ)上加上了電腦演奏,即電腦通過(guò)串口與單片機(jī)進(jìn)行無(wú)線通信后可以實(shí)現(xiàn)演奏。如圖3-1所示,是基于電子琴修改的PCB布局的。在原有基礎(chǔ)上把按鍵加到擴(kuò)展板,所以不需要接上芯片。其他模塊,如TLC5615、ADC0832等暫時(shí)不需要用到,即將其控制的部分刪除,無(wú)需增加進(jìn)此布局中。通過(guò)PCB直觀知道此電路設(shè)計(jì)的復(fù)雜性幾乎為零,已經(jīng)十分簡(jiǎn)化了,布線少,模塊少,布局清晰。電子琴硬件電路設(shè)計(jì)上也是遵循簡(jiǎn)化原則。
51hei截圖_20191204204713.png (88.82 KB, 下載次數(shù): 38)
下載附件
2019-12-12 22:07 上傳
圖3-1 電子琴PCB設(shè)計(jì)圖
3.1.2 電子琴界面部分電子琴界面設(shè)計(jì)是遵循直觀化原則,即讓人直觀看到播放的音頻和音階,利用LCD12864顯示器顯示,如圖3-3所示,為電子琴界面設(shè)計(jì)圖。界面一共顯示四行,第一行是音階顯示,有高音、低音和中音,界面顯示依次是2、1、0;第二行是音頻,一共顯示16個(gè),依次是0-15;第三行是電子琴的名稱“Little Dome”;第四行是本人的學(xué)號(hào)17101071035。
51hei截圖_20191204211623.png (186.12 KB, 下載次數(shù): 43)
下載附件
2019-12-12 22:08 上傳
圖3-3 電子琴界面設(shè)計(jì)圖
3.1.3 電腦演奏原理電腦演奏是基于兩個(gè)藍(lán)牙的無(wú)線通信,所用的界面是串口通信界面,電腦通過(guò)鍵盤輸入數(shù)字0-15,電腦通過(guò)接在USB-TTL的藍(lán)牙模塊將字符依次發(fā)送出去,單片機(jī)接收到后,串口執(zhí)行中斷程序,中斷程序就是將接收到的字符傳遞到電子琴控制程序,相當(dāng)于按鍵功能。兩個(gè)藍(lán)牙的對(duì)接指令設(shè)置步驟如下:
(1)AT模式:
兩個(gè)藍(lán)牙模塊的PIO11接VCC,上電后即進(jìn)入AT指令模式,都用USB轉(zhuǎn)TTL模塊連接到電腦的USB接口。
(2)打開串口調(diào)試助手:
開啟2個(gè)串口調(diào)試窗口,一個(gè)打開藍(lán)牙A的COM口,一個(gè)打開藍(lán)牙B的COM口。
設(shè)置波特率,一般設(shè)置為38400
(3)
恢復(fù)A默認(rèn)設(shè)置:
串口調(diào)試助手A,將藍(lán)牙A恢復(fù)默認(rèn)設(shè)置:AT+ORGL\r\n
(4)
設(shè)置A配對(duì)碼:
串口調(diào)試助手A,配置藍(lán)牙A的配對(duì)碼:AT+PSWD=1212\r\n。注:
藍(lán)牙A與藍(lán)牙B的配對(duì)碼相同,這樣才能成功配對(duì)。
(5)
設(shè)置A主模式:
串口調(diào)試助手A,將藍(lán)牙A配置為主機(jī)模式:AT+ROLE=1\r\n
(6)
恢復(fù)B默認(rèn)設(shè)置:
串口調(diào)試助手B,將藍(lán)牙B恢復(fù)默認(rèn)設(shè)置:AT+ORGL\r\n
(7)
設(shè)置B配對(duì)碼:
串口調(diào)試助手B,配置藍(lán)牙B的配對(duì)碼與藍(lán)牙A一致:AT+PSWD=1212\r\n
(8)
設(shè)置B從模式:
串口調(diào)試助手B,將藍(lán)牙B配置為從機(jī)模式:AT+ROLE=0\r\n
(9)
查詢B地址:
串口調(diào)試助手B,查詢藍(lán)牙B的地址:AT+ADDR?\r\n
(10)
藍(lán)牙A綁定藍(lán)牙B:
串口調(diào)試助手A,藍(lán)牙A綁定藍(lán)牙B地址:AT+BIND=2015,2,120758\r\n
(11)常規(guī)工作模式:2個(gè)模塊的PIO11引腳都接地,重新上電后進(jìn)入常規(guī)工作模式,自動(dòng)完成配對(duì)。
3.2 [/size軟件設(shè)計(jì)與調(diào)試
3.2.1 電子琴的程序設(shè)計(jì)電子琴的程序設(shè)計(jì)思路如圖3-4所示,圖3-4為電子琴程序流程圖。程序運(yùn)行時(shí)先判斷按鍵是否按下,即通過(guò)按鍵掃描識(shí)別按鍵是否按下,若識(shí)別到按鍵按下就執(zhí)行模式選擇程序,模式選擇有四種:音階設(shè)置模式、音頻設(shè)置模式、自動(dòng)播放模式和按鍵播放模式。若檢測(cè)不到按鍵按下,即返回掃描程序,一直掃描,等待按鍵按下。電子琴程序設(shè)計(jì)上主要是控制PWM調(diào)節(jié)蜂鳴器的電壓脈寬,進(jìn)而控制蜂鳴器的頻率;LCD12864顯示器主要是用于顯示按鍵模式,給用戶直觀的視覺(jué)體驗(yàn);按鍵掃描采用了行列式掃描法,其中還有狀態(tài)機(jī)法和翻轉(zhuǎn)法。三種按鍵掃描程序中最好的是狀態(tài)機(jī)法,但是需要用到定時(shí)器,電子琴中定時(shí)器用于控制中斷和PWM設(shè)置,與按鍵中斷有沖突,所以采用了行列式掃描法。
圖片1.png (451.37 KB, 下載次數(shù): 33)
下載附件
2019-12-12 22:09 上傳
圖3-4 電子琴程序設(shè)計(jì)圖
電子程序加入了獨(dú)立按鍵部分,用于擴(kuò)展電子琴的功能,采用輪詢的方式實(shí)現(xiàn)電子琴的功能模式選擇。電子琴部分控制程序如下:
KeyScan1(); //電子琴功能按鍵
Keyscan(); //行列式掃描 switch(key)
{
case 0: time = 1;break;
case 1: time = 2;break;
case 2: time = 3;break;
case 3: time = 4;break;
case 4: time = 5;break;
case 5: time = 6;break;
case 6: time = 7;break;
case 7: time = 8;break;
case 8: time = 9;break;
case 9: time = 10;break;
case 10: time = 11;break;
case 11: time = 12;break;
case 12: time = 13;break;
case 13: time = 14;break;
case 14: time = 15;break;
default: time = 0; break;//無(wú)按鍵按下
}
if(time==0) TR0=0,Beep=1;
else high=freq[7*Music_Freq+time-1][1],
low=freq[7*Music_Freq+time-1][0],TR0=1;
Q(Music_Freq,time);//顯示
3.2.2 電子琴測(cè)試在設(shè)計(jì)電子琴的時(shí)候,遇到的問(wèn)題主要有三點(diǎn):(1)蜂鳴器不響;(2)頻率不正確;(3)按鍵播放有雜音。解決方式如下。
(1)蜂鳴器不響:主要排查兩點(diǎn),第一點(diǎn):硬件電路問(wèn)題,蜂鳴器用三極管通過(guò)放大電流驅(qū)動(dòng)工作,若蜂鳴器不響,可能是三極管的集電極和發(fā)射機(jī)接反了,解決方式是對(duì)換過(guò)來(lái);第二點(diǎn):軟件設(shè)置問(wèn)題,驅(qū)動(dòng)蜂鳴器是用定時(shí)器中斷驅(qū)動(dòng),通過(guò)調(diào)節(jié)PWM控制蜂鳴器,解決方式是檢查程序中斷是否正常進(jìn)入,檢查是否出現(xiàn)中斷異常。
(2)頻率不正確:蜂鳴器工作的頻率不對(duì),無(wú)法形成明顯地高低音,主要是檢查程序,首先設(shè)置正確51單片機(jī)的時(shí)鐘頻率,這里選用11.0592MHZ,通過(guò)MDK5目標(biāo)選擇界面設(shè)置,如圖3-5所示,接著排除定時(shí)器計(jì)數(shù)的高位和低位寄存器的計(jì)數(shù),裝載值設(shè)置正確。
(3)播放有雜音:這個(gè)問(wèn)題可以通過(guò)軟件延遲過(guò)濾掉,播放出現(xiàn)雜音是工作時(shí)切換過(guò)快,導(dǎo)致雜音產(chǎn)生,所以可以通過(guò)軟件延遲排除。
4電路調(diào)試和程序調(diào)試設(shè)計(jì)好硬件電路后一般會(huì)出現(xiàn)的問(wèn)題有:
(1)無(wú)法燒錄程序:這個(gè)是十分常見(jiàn)的問(wèn)題,一般原因有芯片電壓過(guò)低、復(fù)位電路無(wú)法復(fù)位、晶振無(wú)法起振。排查方式有:排查一下芯片是否供電正常,通電后檢查芯片VCC和GND兩端電壓,觀察是否是5V左右,如果是3V左右,就說(shuō)明電路設(shè)計(jì)有問(wèn)題,導(dǎo)致芯片電壓被分走了;檢查復(fù)位電路,最小系統(tǒng)要工作必須要復(fù)位成功一次,復(fù)位不成功很大可能性是復(fù)位電路虛焊或者電阻電容選擇問(wèn)題;晶振不起振就檢測(cè)一下電容的參數(shù),選取過(guò)大也會(huì)導(dǎo)致起振失敗。
(2)顯示屏無(wú)法顯示:顯示屏無(wú)法顯示,檢查顯示器的使能接口和數(shù)據(jù)傳輸接口以及PSB引腳,使能失敗顯示器不會(huì)顯示,數(shù)據(jù)傳輸傳輸異常也會(huì)出現(xiàn)問(wèn)題,檢查串并行數(shù)據(jù)傳輸過(guò)程是否出現(xiàn)異常;PSB引腳若被占用也會(huì)出現(xiàn)無(wú)法顯示的問(wèn)題,可以直接修改顯示器的J2硬件電路即可解決。
(3)光敏電阻無(wú)法顯示:光敏電阻是要求結(jié)合ADC0832這個(gè)模塊進(jìn)行數(shù)模轉(zhuǎn)換的。光敏電阻無(wú)法檢測(cè),可能是光敏電阻沒(méi)有串聯(lián)一個(gè)上拉電阻,若光敏電阻一端接地一端直接接到ADC0832,這個(gè)是錯(cuò)誤的接法,需要加上上拉電阻才能正常檢測(cè)到光敏電阻;軟件問(wèn)題則是ADC0832模塊的SPI通信出現(xiàn)異常。
(4)接在TLC5615的LED指示器無(wú)法工作:查找TLC5615手冊(cè)知道,若要讓模塊正常輸出轉(zhuǎn)換的電壓需要在模塊的第6引腳接入基準(zhǔn)電壓,若沒(méi)有接入2V-3V的基準(zhǔn)電壓,模塊輸出的數(shù)據(jù)是無(wú)效的。
(5)蜂鳴器不響:蜂鳴器工作出現(xiàn)異常很大可能性是三極管接反了。對(duì)換過(guò)來(lái)即可。
設(shè)計(jì)好的驅(qū)動(dòng)程序一般出現(xiàn)的問(wèn)題有:
(1)SPI通信出現(xiàn)異常:在此課程設(shè)計(jì)中,很大模塊都用到了SPI通信,每個(gè)模塊的時(shí)序不一樣,所以驅(qū)動(dòng)程序也稍微區(qū)別,模塊驅(qū)動(dòng)不成功可以看一下模塊的時(shí)序圖,設(shè)置正確的時(shí)序即可
(2)中斷異常:定時(shí)器中斷出現(xiàn)問(wèn)題可以檢測(cè)定時(shí)器是否開啟總中斷或者是否初始化成功,若有多個(gè)中斷則要設(shè)置好優(yōu)先級(jí),外部中斷,定時(shí)中斷和串口中斷的優(yōu)先級(jí)是不一樣的。
(3)引腳占用:這個(gè)是程序設(shè)計(jì)過(guò)程中的通病,由于51單片機(jī)引腳少,驅(qū)動(dòng)模塊有比較多,設(shè)計(jì)程序過(guò)程難免復(fù)用了引腳,但是復(fù)用時(shí)沒(méi)有設(shè)計(jì)好復(fù)用的優(yōu)先級(jí),導(dǎo)致無(wú)法復(fù)用而出現(xiàn)異常。
(4)按鍵掃描程序:按鍵是人與系統(tǒng)交互的外部接口設(shè)備,在排除硬件設(shè)計(jì)問(wèn)題后,檢測(cè)按鍵掃描程序是否有輪詢,掃描失敗一般是按鍵無(wú)法輪詢成功,即沒(méi)有一直循環(huán)訪問(wèn)。
全部資料51hei下載地址:
MyTest.rar
(103.28 KB, 下載次數(shù): 28)
2019-12-12 22:13 上傳
點(diǎn)擊文件名下載附件
所有模塊的驅(qū)動(dòng)程序和電子琴設(shè)計(jì)程序
下載積分: 黑幣 -5
原理圖和PCB.rar
(2.03 MB, 下載次數(shù): 24)
2019-12-12 22:12 上傳
點(diǎn)擊文件名下載附件
原理圖+PCB
下載積分: 黑幣 -5