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

正文內(nèi)容

基于at89c52單片機的簡易電子琴設(shè)計畢業(yè)論文(編輯修改稿)

2024-09-30 17:35 本頁面
 

【文章內(nèi)容簡介】 位操作。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。 手動按鈕復(fù)位需要人為在復(fù)位輸入端 RST上加入高電平(圖 1)。一般采用的辦法是在 RST端和正 電源 Vcc之間接一個按鈕。當人為按下按鈕時,則 Vcc的 +5V電平就會直接加到 RST端。手動按鈕復(fù)位的電路如所示。 即使 人的動作再快也會 讓 按鈕保持接通 的狀態(tài) 達數(shù)十毫秒, 因此 , 它能夠 完全滿足復(fù)位的時間要求。 手動復(fù)位 的 要求 是, 在電源接通的條件下,在單片機運行 的 期間 內(nèi) , 使用按鈕開關(guān)操作 將 單片機復(fù)位。單片機小系統(tǒng) 一般 采用 手動按鍵 復(fù)位和 上電 復(fù)位兩種 方法來 實現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求 是, 接通電源后, 系統(tǒng)能夠 自動實現(xiàn) 復(fù)位操作。手動復(fù)位要求 是, 在電源接通的條件下,在單片機運行期間 內(nèi) ,用按鈕開關(guān)操作使單片機復(fù)位。 它的 結(jié)構(gòu) 見 下圖。 圖 34 復(fù)位電路 10 鍵盤設(shè)計 在設(shè)計的過程中由于 鍵盤 中按鍵數(shù)量 比 較多,為了減少 I/O口的占用, 一般 將按鍵排列成 矩陣 形式。 在 矩陣 式 鍵盤 里 , 各個 水平線和垂直線在交叉處 是 不直接連通 的 ,而是通過一個按鍵 將它們 加以連接的 。 所以 一個端口就可以構(gòu)成 4*4=16 個按鍵, 與 直接將端口線用于 鍵盤 相比之下 多出了一倍,而且 在 線數(shù) 更 多 的情況下 ,區(qū)別 就會 越明顯, 或者 再多加一條線就 能夠 構(gòu)成 20 鍵的 鍵盤 ,而直接用端口線 就 只能多出一鍵( 9 鍵)。 綜上所述 ,在需要的鍵數(shù)比較多 的情況時 , 使用 矩陣 法來做鍵盤是 很 合理的。 在 單片機 的 系統(tǒng)中, 假如 按鍵 比 較多, 一般就會 采用矩陣式(也稱行列式)鍵盤, 此次畢業(yè)設(shè)計 就采用了此 種 鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上。 很明顯, 在按鍵數(shù)量 比 較多 的 時 候 ,矩陣式鍵盤要節(jié)省 很多 I/O口。 雖然 矩陣鍵盤在硬件電路上 相比其他鍵盤比較復(fù)雜 ,而且在程序算法上 還比較麻煩 , 不過 它在節(jié)省端口資源上 非常具有優(yōu)勢 ,因 所以 它 比較 適合于多按鍵電路。 采用矩陣式鍵盤電路,可以大大的節(jié)省單片機 I/O的開銷。 圖 35 鍵盤 軟件主要由初始化程序、鍵盤掃描程序、音調(diào)發(fā)生程序、延時程序和曲調(diào)播放程序組成 。程序框圖如 11 圖 41 所示。 主程序流程圖 本設(shè)計共兩種播放模式,包括自動播放存儲音樂和按鍵發(fā)音。上電 之 后,首 第一先 開中斷 ,設(shè)置 定時器 0 為工作方式 1,當自動播放鍵按下 的時 候 ,進入中斷,根據(jù)樂譜在音頻數(shù)組中查找相應(yīng) 的 音律,給定時器賦 上 初值, 最后 開始播放音樂。當 DO、 RE、 MI、 FA、 SO、 LA、 SI、 DO(高音)八種音符鍵按下時,根據(jù)音階值和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時器賦初值,即按鍵發(fā)音。下為主程序流程圖。 【播放程序見附錄】 12 圖 41 程序流程圖 程序設(shè)計內(nèi)容 ( 1) 44 矩陣鍵盤識別處理 之中 每個按鍵有它 們自己 的行值和列值, 它們 的組合就是 能夠 識別這個按鍵的編碼。 在 矩陣 中,它的 的行線和列線分別通過兩并行接口和 CPU通 信。每個按鍵的狀態(tài) 都 需 要 變成數(shù)字量 “0” 和 “1” ,開關(guān)的一端(列線)通過電阻接 VCC,而接地 就 是通過程序輸出數(shù)字 “0” 所 實現(xiàn)的。 ( 2) 鍵盤處理程序的 目的 是:確定有 沒有 鍵按下, 再 判斷 是 哪一個鍵按下 的 , 這個鍵所展示的功能是什么 ; 而且 還要消除按鍵在閉合或斷開 的狀態(tài) 時的抖動。兩個并行口中,一個輸出掃描碼,另一個并行口 開始 開中斷并設(shè)置工作式寄存器 有鍵按下 自動播放鍵按下 進入中斷 查找相應(yīng)音律 給定時器賦值 播放音樂 進入中斷 查找相應(yīng)音律 給定時器賦值 播放鍵值對應(yīng)音符 13 隨之 輸入按鍵狀態(tài), 將 按鍵逐行動態(tài)接地,行掃描值和回饋信號共同形成鍵編碼而識別按鍵, 該鍵功能可以通過軟件查表來看到 。 下為主函數(shù)鍵盤處理部分 void main (void) { uchar num,k,i。 lcd_init()。 lcd_string(0,10,dis1[0])。 // 開機畫面 lcd_string(11,5,dis1[1])。//開機畫面 Init_Timer0()。 //初始化定時器 0,主要用于數(shù)碼管動態(tài)掃描 SPK=0。 //在未按鍵時,喇叭低電平,防止長期高電平損壞喇叭 lcd_string(0x40+0,5,NOTE:)。 while (1) { switch(KeyPort) { case 0xfe:num= 1。break。 case 0xfd:num= 2。break。 case 0xfb:num= 3。break。 case 0xf7:num= 4。break。 case 0xef:num= 5。break。 case 0xdf:num= 6。break。 case 0xbf:num= 7。break。 case 0x7f:num= 8。break。 default:num= 0。break。 } lcd_string(0x40+7,1,YINFU[num])。 14 if(num==0) { TR0=0。 SPK=0。 //在未按鍵時,喇叭低電平,防止長期高電平損壞喇叭 } else { High=freq[num1][1]。 Low =freq[num1][0]。 TR0=1。 } if(tab==0) { delayms(10)。 if(tab==0) { i=0。 while(i100) { k=MUSIC[i]+7*MUSIC[i+1]1。//去音符振蕩頻率所需數(shù)據(jù) High=FREQH[k]。 Low=FREQL[k]。 Time=MUSIC[i+2]。 //節(jié)拍時長 i=i+3。 if(P1!=0xff)//長按任意 8 音鍵退出播放 { 15 delayms(10)。 if(P1!=0xff) i=101。 } Song()。 } TR0=0。 } } } } ( 3) 音樂播放設(shè)計: 一首 曲子 是 很多種 不同的音階 所 組成的,而每個音階對應(yīng)著 各不相 同的頻率, 所以就可以 利用不同的頻率 之間的 組合構(gòu)成 人們 所想要的音樂了,我們可以利用單片機的定時 /計數(shù)器 T0發(fā)出 這樣方波頻率信號, 所以 , 本設(shè)計中 只 需 要把一首 曲子 的音階對應(yīng)頻 率關(guān)系 弄清楚就行了 。 想要 產(chǎn)生音頻脈沖 的話 , 一般 算出某一音頻的周期( 1/頻率),再將此 它 除以 2, 就是所謂的 半周期的時間。 使 用定時器計時半 個 周期 時長 , 的時間是每次計時結(jié)束之后 , 然后不斷重復(fù)上面的過程,這個 頻率的脈沖 就能夠在 。利用 AT89C52單片機 的內(nèi)部定時器 讓它的 工作計數(shù)器模式( MODE1)下,改變計數(shù)值 TH0 及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生不同 的 音階, 比如 ,頻率為 523Hz,其周期 T= 1/523=1912μs , 所以 只要 讓 計數(shù)器計時 956μs/1μs = 956,每計數(shù) 956次時將 I/O反相,就可得到中音 DO( 523Hz)。下為歌曲處理函數(shù)部分 void Song() { TH0=High。//賦值定時器時間,決定頻率 TL0=Low。 TR0=1。 //打開定時器 delayjie(Time)。 //延時所需要的節(jié)拍 } 另, 計數(shù)脈沖值與頻率的關(guān)系式 為 : 16 N= fi247。2247。fr 在上 式中, N 是計數(shù)值; fi 是機器頻率(晶體振蕩器為 12MHz 時,其頻率為 1MHz); fr 就 是想要產(chǎn)生的頻率。 其計數(shù)初值 T的求法如下: T= 65536- N= 65536- fi247。2247。fr 5.調(diào)試 Proteus 簡介 Proteus 是英國 Labcenter 公司嵌入式系統(tǒng)仿真開發(fā)平臺。 Proteus 由兩個主要程序系統(tǒng)構(gòu)成 ( 電路原理圖設(shè)計系統(tǒng) )和 (印刷電路版設(shè)計系統(tǒng))。 本論文設(shè)計主要是運用 ( 電路原理圖設(shè)計系統(tǒng) )仿真單片機控制 1616LED 點陣,下面將簡單介紹 Proteus 的 電路原理圖設(shè)計系統(tǒng)。 Proteus的元件庫:有分離元件、集 成器件、還有多種帶 CPU的可編程序器件。既有理想元件模型。還有各種不同廠家及時更新的實際元件模型。 Proteus 的電路原理圖設(shè)計系統(tǒng)的仿真實驗功能:電路不僅能做電路基礎(chǔ)實驗、模擬電路實驗與數(shù)字電路實驗,而且能做單片機與接口實驗。為課程設(shè)計與畢業(yè)設(shè)計提供綜合系統(tǒng)仿真。 它的仿真要求為: ,檢測數(shù)字電路模型是否連通,有無連接錯誤。 2. Keil軟件編譯 C 語言,要求最終編譯結(jié)果程序 0 錯誤,將其導(dǎo)入到 Proteus 仿真軟件中。 3. Proteus 仿真電路最終能成功顯示 C 語言程序編譯后的結(jié)果。 keil 簡介 單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)?CPU 可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于 MCS51 單片機的匯編軟件有早期的 A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展, Keil軟件是目前最流行開發(fā) MCS51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持 Keil即可看出。 Keil提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā) 17 方案,通過一個集成開發(fā)環(huán)境( uVision)將這些部份組合在一起。運行 Keil 軟件需要 Pentium 或以上的CPU, 16MB或更多 RAM、 20M 以上空閑的硬盤空間、 WIN9 NT、 WIN20 WINXP 等操作系統(tǒng)。掌握這一軟件的使用對于使用 51 系列單片機的愛好者來說是十分必要的,如果使用 C 語言編程,那么 Keil幾乎就是不二之選 , 即使不使用 C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會 使工作 事 半功倍。 該軟件的優(yōu)點為: ( 1) Keil C51 生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 ( 2) 與匯編相比, C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用 C 來開發(fā),體會更加深刻。 注意事項 : ( 1) 仿真器 標配 的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 ( 2) 仿真器 上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標系統(tǒng)。 ( 3) 仿真芯片的 31 腳( /EA)已接至高電平,所以仿真時只能使用片內(nèi) ROM,不能使用片外 ROM;但 仿真器 外引插針中的 31 腳并不與仿真芯片的 31 腳相連,故該仿真器仍可插入到擴展有外部 ROM(其CPU 的 /EA引腳接至低電平)的目標系統(tǒng)中使用。 18 仿真步驟 首先用 Protel99se 軟件繪制電路原理圖,如圖 51 1 2 3 4 5 6ABCD654321DCBAT i t l eN um b e r R e vi s i o nS i z eBD a t e : 19 M a y 20 13 S h e e t o f F i l e : C
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1