freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機的電子琴設(shè)計畢業(yè)設(shè)計(編輯修改稿)

2024-10-03 20:02 本頁面
 

【文章內(nèi)容簡介】 可能出現(xiàn)閃爍現(xiàn)象 圖 7 數(shù)碼管顯示 電路 圖 8 音頻功放 電路 基于 51 單片機的電子琴設(shè)計 8 接元件少和諧波失真小等優(yōu)點,廣泛應(yīng)用于錄音機和收音機之中。電位器 Rp 是用來調(diào)節(jié)聲音的大小。 時鐘 復(fù)位電路 時鐘電路 時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式,一種是內(nèi)部時鐘方式,另一種是外部時鐘方式。 AT89C51 內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,輸入端為芯片引腳XTAL1,輸出端為引腳 XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩器,圖 9 是 AT89S51 內(nèi)部時鐘方式的電路 , C1 和 C2 的典型值通常選擇為30pF, 石英晶體常選 6MHz 或 12MHz 的。本設(shè)計采用內(nèi)部時鐘方式做時鐘電 路。 復(fù)位電路 單片機的初始化操作,給復(fù)位腳 RST 加上大于 2 個機器周期(即 24 個時鐘振蕩周期)的高電平就使 AT89C51 復(fù)位。 這些操作都是 由復(fù)位電路來實現(xiàn)。 在單片機的實用系統(tǒng)中,一般 有兩種復(fù)位操作形式: 上電復(fù)位和手動復(fù)位。 上電復(fù)位在單片機系統(tǒng)每次通電時執(zhí)行。上電時,電容 C 充電加給 RST 引腳一個短的高電平信號,此信號隨著 VCC 對電容 C 的充電過程而逐漸回落,即 RST 引腳上的高電平持續(xù)時間取決于電容 C 充電時間。為保證系統(tǒng)可靠復(fù)位, RST 引腳上的高電平必須維持足夠長的時間。 手動復(fù)位在系統(tǒng)出 現(xiàn)操作錯誤或程序運行出錯時使用。在單片機系統(tǒng)運行過程中,按下復(fù)位鍵,高電平輸入 RST 引腳,單片機被強制執(zhí)行復(fù)位操作,系統(tǒng)可以退出錯誤運行狀態(tài),恢復(fù)正常工作。 由于本設(shè)計的需要,同時采用這兩種復(fù)位方式,圖 10 復(fù)位 電路 圖 9 時鐘 電路 基于 51 單片機的電子琴設(shè)計 9 如圖 10 所示復(fù)位電路。 電源電路 當(dāng)今社會大到超級計算機、小到袖珍計算器,所有的電子設(shè)備都必須在電源電路的支持下才能正常工作。直流穩(wěn)壓電源在 電源技術(shù) 中占有十分重要的地位 。 直流電源電路由降壓變壓器、全波整流、濾波、穩(wěn)壓電路構(gòu)成,其組成結(jié)構(gòu)如圖 11 所示。 根據(jù)設(shè)計需要做 +5V 和 +12V 直流穩(wěn)壓電源電路,其電路圖如圖 12 和 13 所示。交流電壓 iu 通過變壓器 T1 降壓得到 1iu ,然后由 V7~V10 四個整流二極管組成的電橋進行整流得到直流電壓,再經(jīng)由電解電容和非極性電容構(gòu)成的濾波網(wǎng)絡(luò)和三端穩(wěn)壓器 LM7812 和LM7805 的穩(wěn)壓作用后,分別輸出 +12V和 +5V的直流電壓。 理論計算如下: 對 A 點有: ? ………( 51) 1U 的壓降為 1 (1~ 2)uV? ……… (52) 11 AoV u u??……… (53) 由式 (51)、 (52)、 (53)可得:1 1 1 iiiouuu u u? ? ……… (54) 若要求將 220V交流電壓轉(zhuǎn)換成直流電壓 1 12ouV? ,由式 (54)可知: 變壓器 T1 的變比為1 1 11 . 5 1 . 5 2 2 0 ( 2 3 ~ 2 6 ) : 1 ( 1 ~ 2 ) 1 2iiiouuu u u ?? ? ???。 圖 11 直流電源電路組成結(jié)構(gòu)圖 變壓器 整流電路 濾波電路 穩(wěn)壓電路 ~ 220V 50Hz 圖 12 12V 轉(zhuǎn) 5V 電源電路圖 基于 51 單片機的電子琴設(shè)計 10 整體電路 基于單片機 AT89C51 的電子琴電路由琴鍵控制電路、數(shù)碼管顯示電路、音頻功放電路、時鐘 復(fù)位電路和電源電路五部分所構(gòu)成。琴鍵控制電路采用了 8 輸入與門芯片 CD4068B,收集 8 個獨立按鍵的開關(guān)狀態(tài)信號,并觸發(fā)單片機的外部中斷來處理;而數(shù)碼管顯示電路負責(zé)顯示按下的琴鍵所對應(yīng)的鍵值;同時,音頻功放電路也會播放琴鍵對應(yīng)的音調(diào);電源電路為整個電路提供能源。整體電路圖見附錄 1。 六、電子琴系統(tǒng)軟件設(shè)計 系統(tǒng)功能 的實現(xiàn)一般包括硬件部分和軟件部分,一旦硬件確定下來,軟件要實現(xiàn)的功能也隨之確定。而為使編程思路清晰,應(yīng)先繪制程序流程圖。 系統(tǒng)硬件接口定義 系統(tǒng)硬件接口定義如表 5 所示。 表 5 系統(tǒng)硬件接口定義 引腳號 引腳名 接口說明 備注 39~32 ~ 數(shù)碼管與單片機通信口 1~8 ~ 獨立按鍵接口 12 INT0 外部中斷源輸入端 10 控制蜂鳴器 主函數(shù) 主函數(shù)流程圖如圖 14 所示。利用模塊化的思想,主函數(shù)只執(zhí)行初始化函數(shù)、音頻處理函數(shù) 和數(shù)碼管顯示函數(shù)。另外,鍵碼的識別與刷新是通過中斷函數(shù)來完成。 iu i1uo1uBA圖 13 220V 轉(zhuǎn) 12V 電源電路圖 圖 14 主函數(shù)流程圖 開始 數(shù)碼管顯示 初始化 音頻處理 基于 51 單片機的電子琴設(shè)計 11 void main( ) { Init( )。 while(1) { Sound_Player()。//音頻處理函數(shù) LED_Display()。//數(shù)碼管顯示鍵值 } } 初始化函數(shù) 初始化的流程框圖如圖 15 所示。該函數(shù)對所需的 I/O 口、外部中斷 0、定時器 0 以及數(shù)碼管進行初始化配置。 void Init(void) { P0 = 0xff。//先將 P0口置為 1,即關(guān)閉數(shù)碼管 Speaker = 0。 IT0 = 1。//外部中斷 0 邊沿觸發(fā) EX0 = 1。//外部中斷 0 允許 TMOD = 0x01。//定時器方式 1 ET0 = 1。//定時器 0 中斷允許 TR0 = 0。//關(guān)定時器 0 EA = 1。//開總中斷 } 數(shù)碼管顯示函數(shù) 數(shù)碼顯示的流程框圖如圖 16 所示。此函數(shù)根據(jù)鍵值掃描函數(shù)讀取的鍵碼,結(jié)合數(shù)碼管顯示出來。若判斷是音調(diào)鍵將會顯示數(shù)字 1~7其中之一;若判斷是功能鍵將會顯示字母 A、 b、C 其中之一。 void LED_Display(void) { if(Keycode0 amp。amp。 Keycode8) P0 = ~table[Keycode]。//Do~Si七個音調(diào)鍵分別顯示 1~7 else if(Keycode == 8) P0 = ~table[Time + 9]。//特殊功能鍵分別顯示 A、 b、 C TR0 = 0。 //關(guān)定時器 0 初始化開始 結(jié)束 圖 15 初始化流程圖 關(guān)閉數(shù)碼管 外部中斷邊沿觸發(fā) 允許外部中斷 開總中斷 關(guān)閉定時器 允許定時器中斷 定時器工作方式 Y N N 執(zhí)行代碼 1 Y 功能鍵鍵碼? 數(shù)碼顯示開始 結(jié)束 音調(diào)鍵鍵碼? 圖 16 數(shù)碼顯示流程圖 執(zhí)行代碼 2 基于 51 單片機的電子琴設(shè)計 12 } 中斷函數(shù) 中斷函數(shù)用到了外部中斷和定時器中斷。鍵盤中斷的流程框圖如圖 17 所示,當(dāng)按鍵按下時,外部信號觸發(fā)外部中斷,執(zhí)行鍵值掃描函數(shù),讀取對應(yīng)的鍵值。定時中斷的流程框圖如圖 18 所示,定時器溢出中斷后,進行重裝載初值, 同時執(zhí)行相應(yīng)的音頻控制操作。 鍵值掃描函數(shù) 由于本設(shè)計采用的是接觸開關(guān)式按鍵,故不可避免存在機械抖動。按鍵被按下是,其觸點電壓變化過程如圖 19 所示。這種抖動會使系統(tǒng)處于不穩(wěn)定狀態(tài),故需要進行消抖處理。抖動時間的長短和按鍵的機械特性有關(guān),一般為 5~10ms。通常手動按下鍵然后立即釋放,這個操作中穩(wěn)定閉合的時間超過 20ms,因此單片機在檢測按鍵是否按下時都需要加上去抖動操作,有專門的去抖動電路或則芯片,但同用軟件延時的方法也能輕易解決抖動問題,沒必要添加多余的硬件。 本設(shè)計是用軟件消抖方 法編寫一個消抖程序。當(dāng)按鍵按下去后,首先對其進行連續(xù)兩次取樣,如果兩次都為低電平,則輸出低電平;如果其中有一次高電平,則輸出高電平。 鍵盤的每一行通過一個上拉電阻接高電平,當(dāng)按鍵按下時,對應(yīng)的 I/O 口線被拉低。如表 6 所示 按鍵編碼關(guān)系表 。鍵值掃描函數(shù)的流程圖如圖 20 所示。 表 6 按鍵編碼關(guān)系表 按鍵名稱 鍵碼 (十六進制 ) 按鍵名稱 鍵碼 (十六進制 ) K1 0xfe K5 0xef K2 0xfd K6 0xdf K3 0xfb K7 0xbf K4 0xf7 K8 0x7f 重裝初值 定時中斷開始 結(jié)束 圖 18 定時中斷 流程圖 取反 鍵盤中斷開始 鍵值掃描 圖 17 鍵盤中斷 流程圖 結(jié)束 圖 19 按鍵被按下時電壓的變 化 基于 51 單片機的電子琴設(shè)計 13 void Key_Scan(void) { uint key。 key = P1。 //讀取 P1口狀態(tài) switch(key) //鍵值 { case 0xfe: //Do { Delayms(10)。 //消抖 if(key == 0xfe) { Keycode = 1。 while(P1 != 0xFF)。 //等待按鍵釋放 }break。 } … } } 音頻處理函數(shù) 樂曲由一些不同的音階構(gòu)成,而每 個音階對應(yīng)著不同的頻率,即利用單片機的定時器來產(chǎn)生所需要方波頻率信號的組合,可構(gòu)成所想要的樂曲。 本系統(tǒng)設(shè)計單片機配有 12MHZ晶振,利用 AT89C51 的內(nèi)部定時器使其工作定時器模式的工作方式 1 下,其對應(yīng)的定時器初值計算公式為: 16 61 2 / (1 2 )102 TX ?? ? 式中 T 為定時時間,是所需頻率的倒數(shù)。 如表 7 所示為所需頻率對應(yīng)的定時器初值表(簡稱 頻率 初值表 )。如圖 21 所示音頻處理函數(shù)的流程圖。 表 7 頻率 初值表 音調(diào) 簡譜 (鍵值 ) 頻率( Hz) 定時器初值 (16 進制 ) 備注 Do 1 523 0FBE9H 此處的 定時器初值 是在工作方式 1和 12MHZ 晶振時算得的 Re 2 587 0FC5FH Mi 3 659 0FCC1H Fa 4 698 0FCEFH So 5 754 0FD45H La 6 880 0FD92H 按鍵掃描開始 有按鍵按下? 有按鍵按下? 按鍵釋放? 執(zhí)行相應(yīng)代碼 延時 10ms 結(jié)束 N Y Y Y N N 圖 20 鍵值掃描流程圖 基于 51 單片機的電子琴設(shè)計 14 void Sound_Player(void) { if(Flag == 0) //Do~Si七
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1