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

正文內(nèi)容

基于單片機(jī)的窄帶脈沖寬度檢測(cè)數(shù)字鐘頻率計(jì)電子琴程序-資料下載頁(yè)

2025-06-20 12:43本頁(yè)面
  

【正文】 便。但由于硬件電路較復(fù)雜,因而價(jià)格較貴。 非編碼鍵盤(pán):鍵盤(pán)只簡(jiǎn)單地提供按鍵開(kāi)關(guān)的行列矩陣。有關(guān)按鍵的識(shí)別、鍵碼的確定與輸入、去抖動(dòng)等功能均由軟件完成。目前微機(jī)系統(tǒng)中,一般為了降低成本大多數(shù)采用非編碼鍵盤(pán)。 鍵盤(pán)接口必須具有去抖動(dòng)、防串鍵、按鍵識(shí)別和鍵碼產(chǎn)生4個(gè)基本功能。 (1)去抖動(dòng):每個(gè)按鍵在按下或松開(kāi)時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為5—20mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開(kāi)抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開(kāi)狀態(tài)才能保證識(shí)別正確無(wú)誤。去抖問(wèn)題可通過(guò)軟件延時(shí)或硬件電路解決。 (2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒(méi)有釋放又有新的按鍵按下時(shí)產(chǎn)生的問(wèn)題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。N鍵輪回,是當(dāng)檢測(cè)到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。 (3)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問(wèn)題,一般可通過(guò)軟硬結(jié)合的方法完成。常用的方法有行掃描法和線(xiàn)反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤(pán)逐行掃描,通過(guò)檢測(cè)到的列輸出狀態(tài)來(lái)確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線(xiàn)反轉(zhuǎn)法的基本思想是通過(guò)行列顛倒兩次掃描來(lái)識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。 (4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤(pán)編碼表,通過(guò)查表獲得被按鍵的鍵碼。用AT89S51的并行口P1接44矩陣鍵盤(pán),-,-;在數(shù)碼管上顯示每個(gè)按鍵的“0-F”序號(hào)??傮w電路具體原理如下:3 系統(tǒng)硬件設(shè)計(jì) 系統(tǒng)硬件總體設(shè)計(jì)本系統(tǒng)由鍵盤(pán)矩陣、LED顯示管、揚(yáng)聲器這幾個(gè)部分組成,LED顯示管顯示當(dāng)前按鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)音符。硬件總體設(shè)計(jì)圖如下:(模塊)一LED顯示模塊如圖22所示,--h(huán)的筆段上,數(shù)碼管的公共端接電源。矩陣掃描顯示當(dāng)前按鍵模塊如下:(模塊)二矩陣掃描揚(yáng)聲器發(fā)出對(duì)應(yīng)音符模塊如下:(模塊)三矩陣鍵盤(pán)模塊圖如下:4 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件總體設(shè)計(jì)本系統(tǒng)的軟件流程圖如下: 子系統(tǒng)一七段LED顯示器內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的極管的接線(xiàn)形式,可分成共陰極型和共陽(yáng)極型。 LED數(shù)碼管的g~a七個(gè)發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不以發(fā)亮,不同亮暗的組合就能形成不同的字形,這種組合稱(chēng)之為字形碼。本系統(tǒng)按鍵顯示模塊軟件流程圖如下:一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系正確即可。利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系式(如式21所示)是: N=fi247。2247。fr 21式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下: T=65536-N=65536-fi247。2247。fr 例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。 T=65536-N=65536-fi247。2247。fr=65536-1000000247。2247。fr=65536-500000/fr 低音DO的T=65536-500000/262=63627 中音DO的T=65536-500000/523=64580 高音DO的T=65536-500000/1046=65059本系統(tǒng)按鍵發(fā)出對(duì)應(yīng)音符模塊軟件流程圖如下:5 系統(tǒng)使用說(shuō)明 系統(tǒng)安裝及配置說(shuō)明 系統(tǒng)運(yùn)行環(huán)境WINDOWS XP PROTEUS SP2 Keil uv3 系統(tǒng)安裝及配置安裝Protues 和keil uVsision3。 系統(tǒng)操作說(shuō)明(1)Keil下編譯,產(chǎn)生目標(biāo)HEX文件,Proteus下Programme Files選擇產(chǎn)生的HEX文件,點(diǎn)擊運(yùn)行開(kāi)始模擬。(2)開(kāi)啟本系統(tǒng),數(shù)碼管顯示“”。(3)按任意鍵盤(pán),數(shù)碼管顯示所按下的鍵盤(pán)數(shù),揚(yáng)聲器發(fā)出相應(yīng)的音符。6 結(jié)論通過(guò)這次課程設(shè)計(jì),我學(xué)到了不少課本上沒(méi)有的知識(shí),也鍛煉了自己的動(dòng)手能力,將以前學(xué)過(guò)的零散的知識(shí)串到一起。經(jīng)過(guò)我長(zhǎng)時(shí)間的設(shè)計(jì)及調(diào)試,本系統(tǒng)基本能實(shí)現(xiàn)按下鍵盤(pán)矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的音符。但由于仿真系統(tǒng)原因,本設(shè)計(jì)音頻效果不是很好。不足之處有:,只能在一定范圍內(nèi)滿(mǎn)足用戶(hù)需要。我的綜合設(shè)計(jì)主要涉及硬件和軟件兩方面的內(nèi)容,通過(guò)這些我的硬件和軟件開(kāi)發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開(kāi)發(fā)流程和所要做的工作?;菊莆樟薖rotel99SE原理圖的方法,并設(shè)計(jì)了一個(gè)單片機(jī)最小系統(tǒng)。通過(guò)開(kāi)發(fā)板的設(shè)計(jì)和硬件搭建的過(guò)程,使我對(duì)51系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤(pán)等。并且我學(xué)會(huì)了分析問(wèn)題解決問(wèn)題的能力,加深了對(duì)所學(xué)理論知識(shí)的理解和運(yùn)用。我的動(dòng)手能力得到了很大的提高,創(chuàng)新意識(shí)得到了鍛煉。 參考文獻(xiàn)[1] [2] 吳運(yùn)昌.模擬電子線(xiàn)路基礎(chǔ).廣州:華南理工大學(xué)出版社,2004年[3] 閻石.?dāng)?shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1997年[4] 張曉麗等.?dāng)?shù)據(jù)結(jié)構(gòu)與算法.北京:機(jī)械工業(yè)出版社,2002年[5] 馬忠梅等. ARMamp。Linux嵌入式系統(tǒng)教程.北京:北京航空航天大學(xué)出版社,2004年[6] 李建忠.單片機(jī)原理及應(yīng)用.西安:西安電子科技大學(xué),2002年[7] [M].機(jī)械工業(yè)出版社,2004[8] 周潤(rùn)景等. Proteus在MCS51amp。ARM7系統(tǒng)中的應(yīng)用百例[M].電子工業(yè)出版社,2006[9] [M].北京航空航天大學(xué)出版社,2006[10] 劉樹(shù)中,孫書(shū)膺,[J].微計(jì)算機(jī)信息,2007 附錄本系統(tǒng)總體代碼如下:includedefine uchar unsigned chardefine uint unsigned intuchar code DSY_Table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF}。uint code Tone_Delay_Table[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178}。sbit BEEP=P3^0。uchar KeyNo。void DelayMS(uchar x){ uchar i。 while(x) for(i=0。i120。i++)。}void Keys_Scan(){ uchar Tmp,k。 P1=0x0F。 DelayMS(2)。 Tmp=P1^0x0F。 switch(Tmp) { case 1:k=0。break。 case 2:k=1。break。 case 4:k=2。break。 case 8:k=3。break。 default:return。 } P1=0xF0。 DelayMS(2)。 Tmp=(P14)^0x0F。 switch(Tmp) { case 1:k+=0。break。 case 2:k+=4。break。 case 4:k+=8。break。 case 8:k+=12。break。 default:return。 } KeyNo=k。}void play_Tone() interrupt 1{ TH0=Tone_Delay_Table[KeyNo]/256。 TL0=Tone_Delay_Table[KeyNo]%256。 BEEP=~BEEP。}void main(){ P0=0xBF。 TMOD=0x01。 IE=0x82。 while(1) { P1=0xF0。 if(P1!=0xF0) { Keys_Scan()。 P0=DSY_Table[KeyNo]。 TR0=1。 } else { TR0=0。 } DelayMS(2)。 }}
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1