娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月07日(星期三)

正在發生

2020年05月07日 | 基于單片機的電子琴設計和硬件平臺設計

發布者:MagicGarden 來源: eefocus關鍵字:單片機  電子琴  硬件平臺 手機看文章 掃描二維碼
隨時隨地手機看文章

1課題任務

本課題主要是設計一個基于51單片機的開發系統平臺,開發平臺需包括的基礎硬件有:12864液晶顯示器、8位發光二極管指示器、TLC5616模塊、ADC0832數模轉換、蜂鳴器電路、DS18B20溫度傳感器電路、4*4矩陣電路和DS1302時鐘模塊。然后根據51單片機開發平臺自行設計一個基于51單片機電子琴設計。


設計單片機開發硬件平臺

單片機硬件開發平臺的基礎硬件有:蜂鳴器、LED、LCD12864、TLC5615、ADC0832、DS18B20、DS1302、44矩陣按鍵和USB-TTL。USB-TTL用于下載程序和給主控供電;蜂鳴器、8位LED和LCD12864是作為開發板的指示部分,其中,蜂鳴器可提供聲音警報,LED燈提供光顯示,LCD12864顯示器可提供直觀的顯示;44矩陣鍵盤作為系統與人交互的設備;檢測模塊有:DS1302時鐘檢測模塊、DS18B20溫度檢測模塊、ADC0832數模轉換模塊以及TLC5615模數轉換模塊


基于51單片機的電子琴設計

課題要求在單片機開發系統基礎上進行功能擴展,根據學號尾數選擇擴展的功能。。基礎要求有:高低音的選擇功能、手動演奏功能、自動演奏功能和完美的圖形界面設計。


2單片機硬件電路設計

單片機原理圖設計

單片機原理圖如圖2-1所示,對電路進行了簡化,將LCD12864模塊通信方式由并行改成串行,將獨立按鍵和矩陣按鍵進行了整合,利用短接帽實現獨立按鍵和矩陣按鍵的切換。電路遵循模塊化原則,設計上盡量精簡,方便后期調試。

圖2-1 單片機原理圖圖

2.1.1LCD12864接口電路

12864中文漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內置 8192 個中文漢字(16X16 點陣)、128個字符(8X16 點陣)及 64X256 點陣顯示RAM。參考LCD12864的使用手冊,常用的電路的并行接口,雖然并行傳輸數據比較快,但是在這個電路上明顯不適用,為了簡化電路,我修改了顯示器的硬件電路后,改成了串行傳輸模式。電路接口如下圖所示。從圖上知道,現在本來需要接近20個接口的顯示器變成了只需要5個接口的。大大簡化了電路。

在這里插入圖片描述

**硬件說明:**液晶通信方式有二種選擇,并口或串口方式。如果需要串口通信時需把產品PCB后面的S點短接才能正常運行。P點為并口通信,使用并口通信時可短接P點也可不短接,短接時抗干擾效果更加; 液晶自帶10K電位器可調電阻( VR1)位置處,不需再加外圍電位器,如需要接外圍可調的需要把PCB板上的JP1與JP2短接方可進行外圍可調電阻。根據LCD12864液晶顯示屏的使用手冊,作出具體修改如圖2-1-2所示。首先,將顯示器的背光電源A+和K-直接短接顯示器的供電電源,然后短接JP2接口的S,通過硬件修改串行方式。

在這里插入圖片描述

2.1.2獨立按鍵和矩陣按鍵電路

如果把獨立按鍵接口和矩陣按鍵接口分開的話,明顯會增加電路設計上的復雜性,所以我將獨立按鍵和矩陣按鍵進行了整合,通過一個短接帽即可實現獨立按鍵功能和矩陣按鍵功能的切換。未接短接帽的時候,按鍵電路是矩陣按鍵模式,采用行列式掃描方式;接上短接帽是把P2.4引腳接地從而讓K1、K5、K9、K13各端接地變成獨立按鍵。具體如圖2-5所示。這樣電路就省去了部分按鍵。

在這里插入圖片描述

2.1.3復位電路

復位電路在單片機最小系統起著重要的作用,單片機在可靠復位后,程序才能從0000h地址開始有序地執行應用程序,但是復位電路很容易受到外部噪聲干擾,所以在設計復位電路的時候需要保證系統可靠復位和具備一定的抗干擾能力。復位電路有上電復位和手動復位兩個模式,這里采用的是上電只復位,不增加手動復位電路。在51單片機中,復位脈沖的高電平寬度必須大于2個機器周期,若系統選用11.0592MHZ晶振,則一個機器周期約為1.085us,那么復位脈沖寬度最小應為2us。如圖2-6所示,利用rc充電原理實現上電復位的電路設計。常用的復位電路是電容和電阻組成RC電路加上按鍵,把按鍵復位去掉,形成通電即復位,不需要按鍵進行復位。

在這里插入圖片描述

2.1.4AD和DA接口電路

在單片機設計上AD和DA模塊是要求單獨分開測試的,即選用TLC5615和ADC0832兩個模塊,在電路設計上,這兩個模塊都是串行數據傳輸,即都有三條數據線接口,如果設計上把這兩個模塊的接口并行起來的話,兩個模塊6條數據線只需要占用單片機3個接口。即圖2-7中H3和H2是并接一起的。


TLC5615模塊,即數模轉換模塊,將數字量轉換為模擬量輸出。通過查找TLC5615模塊的使用手冊,了解如下:TLC5615是一個串行1O位DAC芯片,性能比早期電流型輸出的DAC要好。只需要通過 3根串行總線就可以完成1O位數據的串行輸入,易于和工業標準的微處理器或微控制器 (單片機 )接口。手冊上說明該模塊的通信時序是:當片選 S為低電平時,串行輸人數據才能被移 人 l6位移位寄存器。當S為低電平時,在每一個SCLK時鐘的上升沿將DIN的一位數據移人16位移寄存器。


ADC0832模塊,即模數轉換模塊,將模擬量轉換成數字量輸出。從改模塊的使用手冊了解:ADC0832是8腳雙列直插式雙通道A/D轉換器,能分別對兩路模擬信號實現模—數轉換,可以用在單端輸入方式和差分方式下工作。ADC0832采用串行通信方式,通過DI數據輸入端進行通道選擇、數據采集及數據傳送。8位的分辨率(最高分辨可達256級),可以適應一般的模擬量轉換要求。其內部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入在0~5V之間。具有雙數據輸出可作為數據校驗,以減少數據誤差,轉換速度快且穩定性能強。獨立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。工作原理:正常情況下ADC0832 與單片機的接口應為4條數據線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時并未同時使用并與單片機的接口是雙向的,所以在I/O口資源緊張時可以將DO和DI并聯在一根數據線上使用。當ADC0832未工作時其CS輸入端應為高電平,此時芯片禁用,CLK和DO/DI的電平可任意。當要進行A/D轉換時,須先將CS使能端置于低電平并且保持低電平直到轉換完全結束。此時芯片開始轉換工作,同時由處理器向芯片時鐘(CLK)輸入端輸入時鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數據信號。

在這里插入圖片描述

2.1.5DS1302時鐘模塊接口

DS1302 模塊內含有一個實時時鐘/日歷和31 字節靜態RAM ,通過簡單的串行接口與單片機進行通信。提供秒、分、時、日、周、月、年的信息,每月的天數和閏年的天數可自動調整。時鐘操作可通過AM/PM 指示決定采用24 或12 小時格式。DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線:(1)RES 復位(2)I/O 數據線(3)SCLK串行時鐘。設計電路如圖所示。

在這里插入圖片描述

2.1.6DS18B20溫度傳感器接口

DS18B20是最常見的數字溫度傳感器,體積小;精度高(12位時精度可以達到0.625攝氏度,出廠默認12位);接線簡單,無需外圍短路;封裝形式多樣,能滿足不同應用需求等。常見的電路設計如圖2-9所示。選用4.7K電阻上拉。DS18B20單線數據傳輸,直接將數字量傳送到單片機外圍接口,單片機可以直接讀取溫度的數字量。

在這里插入圖片描述

3.1.1電子琴的硬件電路

根據選做設計的要求,對硬件電路進行了修改,操作更加方便。選做要求如下:按鍵演奏、自動演奏、高低音選擇。根據要求,在原有的要求上進行了擴展,在按鍵演奏的基礎上加上了電腦演奏,即電腦通過串口與單片機進行無線通信后可以實現演奏。如圖3-1所示,是基于電子琴修改的PCB布局的。在原有基礎上把按鍵加到擴展板,所以不需要接上芯片。其他模塊,如TLC5615、ADC0832等暫時不需要用到,即將其控制的部分刪除,無需增加進此布局中。通過PCB直觀知道此電路設計的復雜性幾乎為零,已經十分簡化了,布線少,模塊少,布局清晰。電子琴硬件電路設計上也是遵循簡化原則。

在這里插入圖片描述

3.1.2電子琴界面部分

電子琴界面設計是遵循直觀化原則,即讓人直觀看到播放的音頻和音階,利用LCD12864顯示器顯示,如圖所示,為電子琴界面設計圖。界面一共顯示四行,第一行是音階顯示,有高音、低音和中音,界面顯示依次是2、1、0;第二行是音頻,一共顯示16個,依次是0-15;第三行是電子琴的名稱“Little Dome”;

在這里插入圖片描述

3.1.3電腦演奏原理

電腦演奏是基于兩個藍牙的無線通信,所用的界面是串口通信界面,電腦通過鍵盤輸入數字0-15,電腦通過接在USB-TTL的藍牙模塊將字符依次發送出去,單片機接收到后,串口執行中斷程序,中斷程序就是將接收到的字符傳遞到電子琴控制程序,相當于按鍵功能。兩個藍牙的對接指令設置步驟如下:

(1)AT模式:兩個藍牙模塊的PIO11接VCC,上電后即進入AT指令模式,都用USB轉TTL模塊連接到電腦的USB接口。

(2)打開串口調試助手:開啟2個串口調試窗口,一個打開藍牙A的COM口,一個打開藍牙B的COM口。設置波特率,一般設置為38400

(3)恢復A默認設置:串口調試助手A,將藍牙A恢復默認設置:AT+ORGLrn

(4)設置A配對碼:串口調試助手A,配置藍牙A的配對碼:AT+PSWD=1212rn。注:藍牙A與藍牙B的配對碼相同,這樣才能成功配對。

(5)設置A主模式:串口調試助手A,將藍牙A配置為主機模式:AT+ROLE=1rn

(6)恢復B默認設置:串口調試助手B,將藍牙B恢復默認設置:AT+ORGLrn

(7)設置B配對碼:串口調試助手B,配置藍牙B的配對碼與藍牙A一致:AT+PSWD=1212rn

(8)設置B從模式:串口調試助手B,將藍牙B配置為從機模式:AT+ROLE=0rn

(9)查詢B地址:串口調試助手B,查詢藍牙B的地址:AT+ADDR?rn

(10)藍牙A綁定藍牙B:串口調試助手A,藍牙A綁定藍牙B地址:AT+BIND=2015,2,120758rn

(11)常規工作模式:2個模塊的PIO11引腳都接地,重新上電后進入常規工作模式,自動完成配對。


軟件設計與調試

3.2.1電子琴的程序設計

電子琴的程序設計思路如圖3-4所示,圖3-4為電子琴程序流程圖。程序運行時先判斷按鍵是否按下,即通過按鍵掃描識別按鍵是否按下,若識別到按鍵按下就執行模式選擇程序,模式選擇有四種:音階設置模式、音頻設置模式、自動播放模式和按鍵播放模式。若檢測不到按鍵按下,即返回掃描程序,一直掃描,等待按鍵按下。電子琴程序設計上主要是控制PWM調節蜂鳴器的電壓脈寬,進而控制蜂鳴器的頻率;LCD12864顯示器主要是用于顯示按鍵模式,給用戶直觀的視覺體驗;按鍵掃描采用了行列式掃描法,其中還有狀態機法和翻轉法。三種按鍵掃描程序中最好的是狀態機法,但是需要用到定時器,電子琴中定時器用于控制中斷和PWM設置,與按鍵中斷有沖突,所以采用了行列式掃描法。

在這里插入圖片描述

電子程序加入了獨立按鍵部分,用于擴展電子琴的功能,采用輪詢的方式實現電子琴的功能模式選擇。電子琴部分控制程序如下:

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;//無按鍵按下

}

if(time==0) TR0=0,Beep=1;

else high=freq[7Music_Freq+time-1][1],

low=freq[7Music_Freq+time-1][0],TR0=1;

Q(Music_Freq,time);//顯示


3.2.2電子琴測試

在設計電子琴的時候,遇到的問題主要有三點:(1)蜂鳴器不響;(2)頻率不正確;(3)按鍵播放有雜音。解決方式如下。

(1)蜂鳴器不響:主要排查兩點,第一點:硬件電路問題,蜂鳴器用三極管通過放大電流驅動工作,若蜂鳴器不響,可能是三極管的集電極和發射機接反了,解決方式是對換過來;第二點:軟件設置問題,驅動蜂鳴器是用定時器中斷驅動,通過調節PWM控制蜂鳴器,解決方式是檢查程序中斷是否正常進入,檢查是否出現中斷異常。

(2)頻率不正確:蜂鳴器工作的頻率不對,無法形成明顯地高低音,主要是檢查程序,首先設置正確51單片機的時鐘頻率,這里選用11.0592MHZ,通過MDK5目標選擇界面設置,接著排除定時器計數的高位和低位寄存器的計數,裝載值設置正確。

(3)播放有雜音:這個問題可以通過軟件延遲過濾掉,播放出現雜音是工作時切換過快,導致雜音產生,所以可以通過軟件延遲排除。


4總 結

4.1電路調試和程序調試

設計好硬件電路后一般會出現的問題有:

(1)無法燒錄程序:這個是十分常見的問題,一般原因有芯片電壓過低、復位電路無法復位、晶振無法起振。排查方式有:排查一下芯片是否供電正常,通電后檢查芯片VCC和GND兩端電壓,觀察是否是5V左右,如果是3V左右,就說明電路設計有問題,導致芯片電壓被分走了;檢查復位電路,最小系統要工作必須要復位成功一次,復位不成功很大可能性是復位電路虛焊或者電阻電容選擇問題;晶振不起振就檢測一下電容的參數,選取過大也會導致起振失敗。

(2)顯示屏無法顯示:顯示屏無法顯示,檢查顯示器的使能接口和數據傳輸接口以及PSB引腳,使能失敗顯示器不會顯示,數據傳輸傳輸異常也會出現問題,檢查串并行數據傳輸過程是否出現異常;PSB引腳若被占用也會出現無法顯示的問題,可以直接修改顯示器的J2硬件電路即可解決。

(3)光敏電阻無法顯示:光敏電阻是要求結合ADC0832這個模塊進行數模轉換的。光敏電阻無法檢測,可能是光敏電阻沒有串聯一個上拉電阻,若光敏電阻一端接地一端直接接到ADC0832,這個是錯誤的接法,需要加上上拉電阻才能正常檢測到光敏電阻;軟件問題則是ADC0832模塊的SPI通信出現異常。

(4)接在TLC5615的LED指示器無法工作:查找TLC5615手冊知道,若要讓模塊正常輸出轉換的電壓需要在模塊的第6引腳接入基準電壓,若沒有接入2V-3V的基準電壓,模塊輸出的數據是無效的。

(5)蜂鳴器不響:蜂鳴器工作出現異常很大可能性是三極管接反了。對換過來即可。

設計好的驅動程序一般出現的問題有:

(1)SPI通信出現異常:在此課程設計中,很大模塊都用到了SPI通信,每個模塊的時序不一樣,所以驅動程序也稍微區別,模塊驅動不成功可以看一下模塊的時序圖,設置正確的時序即可

(2)中斷異常:定時器中斷出現問題可以檢測定時器是否開啟總中斷或者是否初始化成功,若有多個中斷則要設置好優先級,外部中斷,定時中斷和串口中斷的優先級是不一樣的。

(3)引腳占用:這個是程序設計過程中的通病,由于51單片機引腳少,驅動模塊有比較多,設計程序過程難免復用了引腳,但是復用時沒有設計好復用的優先級,導致無法復用而出現異常。

(4)按鍵掃描程序:按鍵是人與系統交互的外部接口設備,在排除硬件設計問題后,檢測按鍵掃描程序是否有輪詢,掃描失敗一般是按鍵無法輪詢成功,即沒有一直循環訪問。


附錄:實物照片

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述


關鍵字:單片機  電子琴  硬件平臺 引用地址:基于單片機的電子琴設計和硬件平臺設計

上一篇:C51單片機數碼管動態顯示
下一篇:基于51單片機智能紅外溫控風扇設計

推薦閱讀

1、什么是串行通信?串行通信(英語:Serial communication)是指在計算機總線或其他數據通道上,每次傳輸一個位元數據,并連續進行以上單次過程的通信方式。與之對應的是并行通信,它在串行端口上通過一次同時傳輸若干位元數據的方式進行通信。簡言之:串行通訊就是排成一隊走,并行就是排成一列走,如下圖2、同步串行通信(Synchronous serial commun...
5月5日,集微網從芯謀研究首席分析師顧文軍處獲悉,原中芯國際CEO邱慈云出任上海新昇CEO。作為國際知名的半導體領域的卓越職業經理人,邱慈云曾經帶領華虹NEC、馬來西亞Silterra、中芯國際三家公司給扭虧為盈,是業內知名的實干家、務實派。前年5月,中芯國際宣布,由趙海軍博士接替邱慈云博士擔任中芯國際首席執行官。如今,趙海軍與梁孟松共同擔任中芯國...
毫不夸張地說,智能音箱這塊物聯網的大蛋糕已經被亞馬遜、谷歌、阿里、百度這些互聯網巨頭分得一干二凈了,根據數據統計機構Canalys在2019年第三季度全球智能音箱市場分布情況來看,亞馬遜獨占36.6%的市場份額穩坐第一,緊隨其后的分別是阿里13.6%、百度13.1%、谷歌12.3%、小米12.0%,這五家公司總共拿了87.6%的市場份額,其中還不包括蘋果HomePod的市場份...
這不是關于示波器無源探頭的科普也不是使用經驗,存粹我個人好奇瞎研究,沒有什么實質性的內容,要愉快地閱讀需要有一定電子電路基礎。關于探頭介紹和使用的文章,推薦閱讀泰克公司寫的ABCs of Probes Primer。哪根筋搭錯了要去研究一下無源探頭一切都起源于一個問題:能不能把1X的無源探頭當同軸線去匹配50歐姆或者75歐姆的系統?有經驗的人會立刻回答...

史海拾趣

問答坊 | AI 解惑

集成電路的檢測常識[轉帖]

檢測前要了解集成電路及其相關電路的工作原理。 檢查和修理集成電路前首先要熟悉所用集成電路的功能、內部電路、主要電氣參數、各引腳的作用以及引腳的正常電壓、波形與外圍元件組成電路的工作原理。如果具備以上條件,那么分析和檢查會容易許多。 ...…

查看全部問答∨

三星的2416驅動7寸屏AT070TN84的問題!!!!急!!!!

處理器是s3c2416   ,BSP是2450的(據說這兩個處理器類似), LCD是 7寸TFT屏AT070TN84!!!! 現在的現象是,我在OEMINIT中初始化LCD,并讓其顯示藍色,然后進入CE系統,但是,該顯示藍色的時候LCD顯示的就象屏被關掉沒上電一樣(類似 ...…

查看全部問答∨

有的筆記本按下顯示切換熱鍵能切換到LCD+CRT extended模式,是怎樣實現的??

有的筆記本按下顯示切換熱鍵能切換到LCD+CRT extended模式,是怎樣實現的?? 一般的顯示切換只會在LCD, CRT, LCD+CRT Clone三種模式下進行切換,但是有的notebook能切換到LCD+CRT extended模式,有誰知道這是怎樣實現的?是bios還是driver或者softw ...…

查看全部問答∨

EVC下如何根據文件名和擴展名查找文件

我利用FindFirstFile和FindNextFile 系統中已存在的文件,代碼如下:          CString cFileList[50];         int nFileTotalCount;         nFileTotalCount=0; &nb ...…

查看全部問答∨

請教,STM32的HardFault_Handler的問題

程序運行到sprintf時死機了,調式后發現進入了HardFault_Handler里死循環了。請問這個問題可能由啥原因引起的?還有貌似選了優化后,有時sprintf出來的數據會有錯誤?這個可能由啥原因引起的?謝謝!…

查看全部問答∨

LM3S6911 上拉3.3V與5V

   不知道LM3S6911 的JTAG口能否接5V上拉??      有客戶之前上拉到5V能正常燒錄,lay的板是上拉5V的,現在只能拉到3.3V才能工作。   求解!…

查看全部問答∨

電機控制 - TI旋轉電機_解決方案指南

本帖最后由 dontium 于 2015-1-23 13:09 編輯 TI旋轉電機:憑借自身在高級電機驅動和控制領域的深厚歷史積淀與門類寬泛的模擬和微控制器產品庫,TI可提供完整的電機系統解決方案,從而成為全球市場的領先者。TI將其在電機驅動和控制領域的豐富經驗 ...…

查看全部問答∨

誰能告訴我eefpga2.0+5v供電怎么接,受不了了

USB供電沒法保證共地啊。 筆記本都沒電了,才發現這個地方還有問題。蛋疼死了…

查看全部問答∨

中斷向量表寫入flash

void NVIC_Configuration_TIM5(void) {   NVIC_InitTypeDef NVIC_InitStructure;     NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000);   NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;   ...…

查看全部問答∨

TF卡的功耗問題,特別是經常使用TF卡的進來看看

也有很多對于使用TF卡的場合,功耗還是要講究的 那么不使用時功耗多大?讀或者寫的時候功耗又是多大?有做過實驗的么? 不同品牌的TF做過比較么? 不同的初始化方式例如使用SPI方式功耗又怎樣呢?…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 明水县| 建湖县| 南投市| 清涧县| 枣阳市| 寻乌县| 汤原县| 株洲县| 仪陇县| 台中市| 堆龙德庆县| 瑞安市| 濮阳市| 巴南区| 陆良县| 会宁县| 南京市| 马尔康县| 延安市| 苗栗县| 广安市| 彝良县| 桃江县| 黄平县| 深州市| 鄂伦春自治旗| 大足县| 丹棱县| 明溪县| 巢湖市| 咸宁市| 项城市| 昭通市| 长兴县| 安康市| 泰兴市| 准格尔旗| 定州市| 临漳县| 杂多县| 凌云县|