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

正文內(nèi)容

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

2025-08-02 18:41上一頁面

下一頁面
  

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