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

正文內容

單片機課程設計——紅外遙控音樂播放器-文庫吧

2025-01-03 14:09 本頁面


【正文】 路如圖25所示:圖25 顯示及播放電路圖:八進制3態(tài)非反轉透明鎖存器。其真值表如表21所示:表21 74HC573真值表輸入輸出LEDQLHLLLHHHLLXQ0HXXZ由真值表可知:當=0、LE=1時,輸出端數據等于輸入端數據;當=0、LE=0時,輸出端保持不變;當=1時,無論LE、D為何,輸出端為高阻態(tài)。74HC573與74HC138在電路中主要用于由數碼管組成的顯示電路。在數碼管顯示時,如果要維持一個數據的顯示,往往要持續(xù)的快速的刷新。尤其是在四段八位數碼管等這些要選通的顯示設備上。在人類能夠接受的刷新頻率之內,大概每三十毫秒就要刷新一次。這就大大占用了處理器的處理時間,消耗了處理器的處理能力,還浪費了處理器的功耗。鎖存器的使用可以大大的緩解處理器在這方面的壓力。當處理器把數據傳輸到鎖存器并將其鎖存后,鎖存器的輸出引腳便會一直保持數據狀態(tài)直到下一次鎖存新的數據為止。這樣在數碼管的顯示內容不變之前,處理器的處理時間和I/O引腳便可以釋放。可以看出,處理器處理的時間僅限于顯示內容發(fā)生變化的時候,這在整個顯示時間上只是非常少的一個部分。而處理器在處理完后可以有更多的時間來執(zhí)行其他的任務。這就是鎖存器數碼管顯示方面的作用:節(jié)省了寶貴的MCU時間。鎖存器就是把當前的狀態(tài)鎖存起來,使CPU送出的數據在接口電路的輸出端保持一段時間鎖存后狀態(tài)不再發(fā)生變化,直到解除鎖定。還有一些芯片具有鎖存器,比如芯片74LS244 (3態(tài)8位緩沖器)就具有鎖存器的功能,它可以通過把一個引腳置高電平后,輸出就會保持現(xiàn)有的狀態(tài),直到把該引腳清0后才能繼續(xù)變化。 緩沖寄存器又稱緩沖器,它分輸入緩沖器和輸出緩沖器兩種。前者的作用是將外設送來的數據暫時存放,以便處理器將它取走;后者的作用是用來暫時存放處理器送往外設的數據。有了數控緩沖器,就可以使高速工作的CPU與慢速工作的外設起協(xié)調和緩沖作用,實現(xiàn)數據傳送的同步。由于緩沖器接在數據總線上,故必須具有三態(tài)輸出功能。:三通道輸入、八通道輸出譯碼器。其真值表如表22所示:表22 74HC138真值表EnableAddressOutputE3E2E1A2A1A0Y0Y1Y2Y3Y4Y5Y6Y7XXHXXXHHHHHHHHLXXXXXHHHHHHHHXHXXXXHHHHHHHHHLLLLLLHHHHHHHHLLLLHHLHHHHHHHLLLHLHHLHHHHHHLLLHHHHHLHHHHHLLHLLHHHHLHHHHLLHLHHHHHHLHHHLLHHLHHHHHHLHHLLHHHHHHHHHHL74HC138譯碼器可接受3位二進制加權地址輸入(A0, A1和A2),并當使能時,提供8個互斥的低有效輸出(Y0至Y7)。74HC138特有3個使能輸入端:兩個低電平有效(E1和E2)和一個高電平有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復合使能特性,74HC138充當一個8輸出多路分配器,本設計中用于進行數碼管的位選。:高壓大電流達林頓晶體管陣列,由七個硅NPN復合晶體管組成。電路特點: ,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統(tǒng)。本設計中用于無源蜂鳴器的驅動,同時可以為再次擴展時提供驅動電路。第3章 程序設計分析紅外遙控音樂播放的功能,包括選擇播放兩首歌曲、暫停、暫停后斷點播放、結束播放歌曲,播放下一曲,播放上一曲,并且使用數碼管顯示紅外信號解碼后的兩位16進制的數據碼。根據以上功能,可心得出結論:該程序設計的主要工作,即核心問題是紅外信號的解碼。因為,無論是播放音樂的哪一個操作,還是顯示紅外信號的數據碼,都是建立在對紅外信號的正確解碼下的。首先進行正確的紅外解碼,然后根據解碼后的鍵值進行播放歌曲與顯示按鍵值。按照以上得出的結論,畫出程序流程圖如圖31所示:開始主函數判斷有無紅外信號收到紅外信號未收到紅外信號處理紅外信號顯示解碼鍵值播放選擇歌曲暫停與結束曲播放上一曲播放下一曲圖31 程序流程圖結合程序流程圖,可以知道:將整個程序的設計分為兩個模塊,即:紅外解碼、播放及顯示。 紅外解碼程序在進行程序設計之前,先分析一下紅外信號的波形。每當次按鍵按下,紅外發(fā)射器會發(fā)出一串脈沖,紅外接收器會收到這一串脈沖寬度不等的脈沖波形流,其脈沖流包括:(1)前導碼:第1個脈沖波形;(2)用戶碼1:第2到第9個脈沖波形;(3)用戶碼2:第10到第17個脈沖波形;(4)數據碼:第18到第25個脈沖波形;(5)數據反碼:第26到第33個脈沖波形;(6) 連續(xù)按鍵脈沖:第34和第35個脈沖為結束脈沖,在每次按鍵結束后會有兩個結束脈沖,如果一直按鍵不放的話,會一直發(fā)送連續(xù)按鍵脈沖,并可以認為在收到10個連續(xù)按鍵脈沖后是下一個按鍵(本次設計中不考慮連續(xù)按鍵脈沖)。其碼型結構如圖32所示:圖32 紅外信號碼型圖由圖32可知:紅外信號碼型中本次設計中要使用的部分,即是圖32中的8位鍵數據碼。下面分析具體的怎樣進行紅外信號的解碼。紅外信號為采用脈寬調制的串行碼,、“0”;、“1”,其波形如圖33所示。圖33 紅外信號脈沖寬度圖上述“0”和“1”組成的32位二進制碼經38kHz的載頻進行二次調制以提高發(fā)射效率,達到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產生紅外線向空間發(fā)射,即產生了如圖32所示的有效碼組序列。在圖33中同樣可以看到引導碼脈寬為9ms,。在紅外信號經過解碼電路后,原碼型中的高低電平進行反轉。在得到的新碼型中,去掉第一個下降沿(引導碼),第二個下降沿開始即為有效碼序列,應該進行解碼并記錄。在本設計中,將解碼后的信號引入外部中斷1,由于是下降沿有效,故IT1=1[2]。紅外解碼源碼如下:unsigned char irtime。 //脈沖寬度時間值unsigned char startflag。//接收開始標志unsigned char bitnum。 //碼組位數unsigned char irreceok。 //接收完成標志unsigned char irprocok。 //解碼完成標志unsigned char irdata[33]。//脈沖寬度數組unsigned char ircode[4]。 //解碼值數組void timer0init(void) { TMOD=0x02。 //定時器0 定時方式2 8位自動重裝 TH0=0x00。 //初值為0 實現(xiàn)定時256us TL0=0x00。 ET0=1。 //開定時器0中斷 EA=1。 //開總中斷 TR0=1。 //啟動定時器0}void int1init(void){ IT1=1。 //外部中斷1負跳變沿有效 EX1=1。 //開外部中斷1中斷 EA=1。 //開總中斷}void irproc(void) //解碼函數 { uchar k,value,m,j。 k=1。 for(j=0。j4。j++) //4組二進制碼 { for(m=0。m8。m++) //每組8位 { value=value1。 //由于低位在前,所以右移到正常順序 if(irdata[k]6) //irtime大于6*256us 則解碼數據為1 { value=value | 0x80。 //解碼數據為1 則高位或1 則高位置1 } k++。 //所有二進制碼的位 } ircode[j]=value。 //每組解碼后的值存入ircode } irprocok=1。 //解碼完成}void main(){ timer0init()。 //定時器初始化 int1init()。 //外部中斷初始化 while(1) { if(irreceok) //接收完成 { irproc()。 //解碼 irreceok=0。 } if(irprocok) //解碼完成 { irwork()。 //把解碼后的數據轉成16進制的兩位數 irprocok=0。 }}}void timer0() interrupt 1{ irtime++。}void int1() interrupt 2{ if(startflag==1) { if(irtime32) //檢測9ms引導碼 { bitnum=0。 } irdata[bitnum]=irtime。 irtime=0。 bitnum++。 if(bitnum==33) //接收結束 { bitnum=0。 irreceok=1。 //接收完成 } } else { startflag=1。 //接收開始標志位 irtime=0。 }} 播放及顯示程序分析音樂播放的過程,其為不同頻率聲音的組合,當一組恰當頻率聲音組合按照一定的先后順序與節(jié)拍播放時,即可產生音樂。故要產生音頻信號,只要算出某一音頻的周期,將此周期除以2即為半周期的時間,利用定時器計時此半周期時間,計時到后取反輸出,重復此過程即得到此頻率的聲音信號。,用ULN2003驅動蜂鳴器播放音樂。其中每個音符使用兩個字節(jié)表示:低位字節(jié)(偶地址)代表音級,表示的音級為c、﹟c、d、﹟d、e、f、……a﹟ab3;高位字節(jié)(奇地址)代表音符的時值(節(jié)拍),表示拍數為1/8拍()~8拍()。程序設計中用軟件延時程序來控制音級, 與紅外解碼共用定時
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1