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

正文內(nèi)容

基于stc89c52單片機(jī)的紅外遙控系統(tǒng)(完整版)

  

【正文】 電方面給人們帶來(lái)了方便快捷的生活。在課程設(shè)計(jì)中,我們親自動(dòng)手進(jìn)行實(shí)際應(yīng)用程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),熟練運(yùn)用DXP、protel99se等類似的畫圖軟件和編程軟件keil C等,在設(shè)計(jì)各自的課題中,每位同學(xué)通過(guò)完成一個(gè)包括電路設(shè)計(jì)和程序開發(fā)的完整過(guò)程,使大家了解開發(fā)單片機(jī)應(yīng)用系統(tǒng)的全過(guò)程,在自己的實(shí)踐設(shè)計(jì)中熟練這門技術(shù)時(shí),同時(shí)排除和解決設(shè)計(jì)中遇到的各種問(wèn)題,這是在此次課程設(shè)計(jì)中,同學(xué)們得到的最大的收益,而且為今后從事相應(yīng)工作打下基礎(chǔ)。我通過(guò)在圖書館查閱有關(guān)資料,并且設(shè)計(jì)出了合適的電路圖,經(jīng)過(guò)仔細(xì)研究并對(duì)電路圖做了多次修改,滿足了課題的要求,實(shí)現(xiàn)了紅外遙控的目的。它的理論性和實(shí)踐性都很強(qiáng),我們?cè)诶碚撜n學(xué)習(xí)中主要學(xué)習(xí)單片機(jī)的基本構(gòu)造,各部分的工作原理以及指令系統(tǒng),然而,光是理論的學(xué)習(xí)是遠(yuǎn)遠(yuǎn)不夠的,最重要的是把理論和實(shí)踐相結(jié)合。單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)不但要熟練掌握單片機(jī)程序語(yǔ)言和編程技術(shù),而且還要具備扎實(shí)的單片機(jī)硬件方面的理論和實(shí)踐知識(shí)。 振蕩脈沖經(jīng)二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),時(shí)鐘信號(hào)經(jīng)過(guò)三分頻產(chǎn)生ALE信號(hào),ALE信號(hào)用于控制把P0口的低8位地址送入鎖存器鎖起來(lái),以實(shí)現(xiàn)低地址和數(shù)據(jù)的分時(shí)傳送,ALE還可作為外部時(shí)鐘或外部脈沖使用。B 中斷控制1 中斷允許寄存器IE(A8H)CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器(IE)控制的。 當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件把IE0(或IE1)清零。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。圖25聲音提示模塊三 系統(tǒng)硬件設(shè)計(jì) 紅外遙控系統(tǒng) 通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專用集成電路芯片來(lái)進(jìn)行控制操作,如圖1所示。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在45~63ms之間,圖4為發(fā)射波形圖。根據(jù)碼的格式。sbit KEY1=P1^0。uint8 KEY(void)。 IE = 0x81。 //設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0。\039。 } // LED1 =~ LED1。} return Key。break。break。break。break。break。 //高電平9mS TT0(0,m4_5)。 TT0(0,m2_25)。 // if(tempamp。 //啟動(dòng)定時(shí)器0 if(BT == 0) while(!TF0)。if(TF0)break。 //關(guān)閉定時(shí)器0 TF0=0。 {delay(1)。 N++。 return。 lcd_pos(0x4b)。 break。 break。 //case 0x13: RELAY=1。 beep()。 if(temp != 0x0f) { temp = KEY_PORT。C39。 return key。break。// } } while(temp != 0x0f) { temp = KEY_PORT amp。 if(temp != 0x0f) { delayk()。//8 case 0xd7: key = 0。 temp = KEY_PORT amp。//4 case 0xeb: key = 7。 return key。 y++)。unsigned char code string[ ]= {HELLO WORLD}。j++) 。i++) { delay1ms()。 //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài) RW=1。 return result。 //將數(shù)據(jù)送入P0口,即寫入指令或地址 _nop_()。 _nop_()。 //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 _nop_()。 _nop_()。 delay(5)。 unsigned char temp。 //定時(shí)器清0 TR0=1。 //保存高電平寬度 if((LowTime370)||(LowTime640)) return 0。 //(1550250=1300,1550+250=1800),則該位是1 } a[i]=temp。=0x0f。 //lcd顯示低四位值 } else { date=date0x09。 two_2_bcd(a[1])。 WriteInstruction(0x01)。 i++。 //等待紅外信號(hào)產(chǎn)生的中斷}/************************************************************函數(shù)功能:紅外線觸發(fā)的外中斷處理函數(shù)*************************************************************/void Int0(void) interrupt 0 { EX0=0。 //定時(shí)器T0的高8位清0 TL0=0。amp。我學(xué)會(huì)了Protel電路板的繪圖操作,并通過(guò)上網(wǎng)搜索資料,查閱課本及課外書籍,對(duì)電路各部分組成器件的工作原理加深了解。使我受益匪淺,更加明確了自己專業(yè)的方向。我們還能從設(shè)計(jì)中檢驗(yàn)我們所學(xué)的理論知識(shí)到底有多少,鞏固我們已經(jīng)學(xué)會(huì)的,不斷學(xué)習(xí)我們所遺漏的新知識(shí),把所學(xué)的知識(shí)學(xué)的更加扎實(shí)。我們應(yīng)該具備什么樣的能力,我們適合什么樣的人生,我們應(yīng)該在怎樣的崗位上實(shí)現(xiàn)自己的人生價(jià)值。這是一個(gè)磨練意志的過(guò)程。amp。 //開啟定時(shí)器T0 while(IR==1)。 //定時(shí)器T0的高8位清0 TL0=0。 //開啟總中斷 EX0=1。 // 設(shè)置顯示位置為第一行的第1個(gè)字 i = 0。 two_2_bcd(a[2])。 } WriteData(0x48)。 //lcd顯示鍵值高四位 } else { date=date0x09。 //解碼正確,返回1}/*二進(jìn)制碼轉(zhuǎn)換為壓縮型BCD碼,并顯示*/void two_2_bcd(unsigned char date){ unsigned char temp。amp。 //關(guān)閉定時(shí)器T0 LowTime=TH0*256+TL0。i4。 //顯示模式設(shè)置:顯示開,有光標(biāo),光標(biāo)閃爍 delay(5)。 //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令 }/*****************************************************函數(shù)功能:對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置***************************************************/void LcdInitiate(void){ delay(15)。 _nop_()。 //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始 }/*****************************************************函數(shù)功能:指定字符顯示的實(shí)際地址***************************************************/ void WriteAddress(unsigned char x) { WriteInstruction(x|0x80)。 _nop_()。 //如果忙就等待 RS=0。 //E=1,才允許讀寫 _nop_()。 //BEEP取反 } BEEP=1。 for(i=0。 //儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵數(shù)據(jù)反碼unsigned int LowTime,HighTime。 //sbit RS=P2^0。 return KEY_NULL。//7 case 0xe7: key = 39。 if(temp != 0x0f) { delayk()。//0 } } while(temp != 0x0f) { temp = KEY_PORT amp。 switch(temp) { case 0xde: key = 2。 } //P1 = key。break。 temp = KEY_PORT。//C case 0x77: key = 39。A39。 }char keyscan(){ char temp,key。 // case 0x14: RELAY=1。 break。 break。 //第一位數(shù)顯示 lcd_pos(0x4c)。 0x0F。 return。j4。 //載波停止后,發(fā)射端口常態(tài)為高}/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈函數(shù) :外部中斷函數(shù) ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/void IR_IN(void) interrupt 0 //外部中斷服務(wù)程序{ unsigned char j,k,N=0。if(TF0)break。 if(TF0)break。 //發(fā)送最低位 else TT0(0,m_56)。 TT0(0,m40)。 //用戶碼高8位 Z0(USER_L)。break。+39。*39。break。break。 //TMOD = 0x01。 LED2 =~ LED2。 //顯示字符 m++。\039。 //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) IRIN=1。 //NEC編碼發(fā)送程序void Z0(uint8 temp)。sbit KEY3=P1^2。 圖51遙控發(fā)射單元原理圖 遙控接收單元原理圖 遙控接收單元由單片機(jī)最小系統(tǒng)和紅外接收器、控制對(duì)象電路等組成,遙控接收單元原理圖如圖52所示。如果鍵按下超過(guò)108ms仍未松開,接下來(lái)發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼()組成。如圖所示:
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1