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

正文內(nèi)容

參考單片機(jī)基于at89s52單片機(jī)的遙控器設(shè)計(jì)畢業(yè)論文-在線瀏覽

2025-01-20 22:12本頁面
  

【正文】 2為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。另外, AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持 2種軟件可選擇節(jié)電模式。掉電保護(hù)方式下, RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。作為輸出口,每位能驅(qū)動(dòng) 8個(gè) TTL邏輯電平。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí), P0口也被作為低 8位地址 /數(shù)據(jù)復(fù)用。在 flash編程時(shí), P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。 P1 口 : P1 口是一個(gè)具有內(nèi)部上拉電 阻的 8 位雙向 I/O 口, p1 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流( IIL)。對(duì) P2 端口寫“ 1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。在訪問外部程序存儲(chǔ)器或用 16位地址讀 取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 MOVX DPTR)時(shí), P2 口送出高八位地址。在使用 8位地址(如 MOVX RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí), P2口輸出 P2鎖存器的內(nèi)容。 P3 口 : P3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口, p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因 ,將輸出電流( IIL)。在 flash編程和校驗(yàn)時(shí), P3口也接收一些控制信號(hào)。晶振工作時(shí), RST腳持續(xù) 2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。特殊寄存器 AUXR(地址 8EH)上的 DISRTO位可以使此功能無效。 ALE/PROG: 地址鎖存控制信號(hào)( ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低 8 位地址的輸出脈沖。 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 9 在一般情況下, ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。如果需要,通過將地址為 8EH的 SFR的第 0位置 “ 1” , ALE操作將無效。否則, ALE 將被微弱拉高。 PSEN:外部程序存儲(chǔ)器選通信號(hào)( PSEN)是外部程序存儲(chǔ)器選通信 號(hào)。 EA/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為了執(zhí)行內(nèi)部程序指令, EA應(yīng)該接 VCC。 XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 系統(tǒng)復(fù)位 通過某種方式,使單片機(jī)內(nèi)各寄存器的值變?yōu)槌跏紶顟B(tài)的操作 稱為復(fù)位。 復(fù)位分為上電復(fù)位和外部 按鍵 復(fù)位兩種方式 。復(fù)位不影響片內(nèi) RAM 存放的內(nèi)容,而 ALE 在復(fù)位期間將輸出高電平。 表 32 江蘇信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì) 10 時(shí)鐘電路 單片機(jī)的時(shí)鐘電路由振蕩電路和分頻電路組成,其振蕩電路由反相器以及并聯(lián)外接的石英晶體和電容組成,用于產(chǎn)生振蕩脈沖。 振蕩電路如圖 33 所示 : 圖 33 振蕩電路 寄存器 名稱 復(fù) 位 狀 態(tài) 寄存器 名稱 復(fù) 位 狀 態(tài) PC 0000H TCON 00H A 00H T2CON 00H B 00H TH0 00H PSW 00H TL0 00H SP 07H TH1 00H DPTR 0000H TL1 00H P0~P3 FFH SCON 00H 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 11 其輸入端為引腳 XTAL1,輸出端為引腳 XTAL2。振蕩器的頻率主要取決于晶體的振蕩頻率 , 一般晶體可在 ~ 12 MHz之間任選 , 電容 C C2 可在 5~ 30 pF 之間選擇 , 電容的大小對(duì)振蕩頻率有微小的影響 , 可起頻率微調(diào)作用。時(shí)鐘信號(hào)經(jīng)六分頻得到機(jī)器周期信號(hào)。這樣就存在一個(gè)快速的 CPU與慢速的外設(shè)之間的矛盾。 CPU 正在處理某一程序時(shí),發(fā)生了另一突發(fā)事件請(qǐng)求 CPU 迅速去處理 (中斷發(fā)生 ); CPU 暫時(shí)停止當(dāng)前的工作,轉(zhuǎn)到需要處理的中斷源的服務(wù)程序的入口 (中斷響應(yīng) ),一般在入口處執(zhí)行一跳轉(zhuǎn)指令轉(zhuǎn)去處理中斷事件 (中斷服務(wù) );待 CPU將中斷事件處理完畢后,再回到原來程序被中斷的地方繼續(xù)處理執(zhí)行程序 (中斷返回 ),這一處理過程稱為中斷 。 本程序中只用到了外部中斷 1。 IE各位的定義如表 34 所示 : 表 34 江蘇信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì) 12 位地址 0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8H 位符號(hào) EA / / ES ET1 EX1 ET0 EX0 EA——中斷允許總控制位 EA= 0 中斷總禁止,禁止所有中斷 EA= 1 中斷總允許,總允許后中斷的禁止或允許由各中斷源的中斷允許控制位設(shè)置。 3定時(shí)器控制寄存器( TCON) 該寄存器用于保存外部中斷請(qǐng)求以及定時(shí)器的計(jì)數(shù)溢出。按位操作時(shí),各位的地址為 88H~ 8FH。 當(dāng) CPU 采樣到 INT0(或 INT1) 端出現(xiàn)有效中斷請(qǐng)求時(shí), IE0( IE1)位由硬件置 “ 1”。 TR0 和 TR1——定時(shí)器運(yùn)行控制位 : TR0 ( TR1 )= 0 定時(shí)器 /計(jì)數(shù)器不工作 TR0 ( TR1 )= 1 定時(shí)器 /計(jì)數(shù)器開始工作 TF0 和 TF1——計(jì)數(shù)溢出 標(biāo)志位 。 并自動(dòng)產(chǎn)生定時(shí)中斷請(qǐng)求。 圖 41 紅外 遙控單元發(fā)射框圖 發(fā)射端采用具有在線下載功能的 AT89S52 芯片作為控制中心 ,與鍵盤掃描電路和發(fā)射電路共同構(gòu)成。 圖 42 為該遙控系統(tǒng)的發(fā)射原理圖,其中 P1 口作為 鍵盤掃描口,具有 16 個(gè)功能操作鍵,第 9 腳為單片機(jī)復(fù)位腳,采用復(fù)位電路如圖 所示, 15 腳作為紅外遙控碼的輸出口,用于 38MHZ 載波編碼, 18 19 腳 12MHZ 晶振。 圖 44 紅外 遙控接收單元框圖 接收控制器 由 一個(gè) AT89S52芯片作為控制中心 ,與接收電路和各自的控制電路共同構(gòu)成。 圖 45 為該遙控器的接收器原理圖,其中 P0 口作為數(shù)碼管的二進(jìn)制數(shù)據(jù)輸出,顯示按鍵號(hào), 第 9 腳為單片機(jī)復(fù)位腳,采用復(fù)位電路如圖所示, 18 19 腳為12MHZ 晶振。 圖 51 遙控發(fā)射程序流程圖 開始 鍵按下 初始化 調(diào)用按鍵 掃描程序 掃描 按鍵信號(hào)發(fā)送程序 發(fā)送完畢 發(fā)送 N Y 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 19 程序開始是對(duì)單片機(jī)進(jìn)行初始化設(shè)置, 使用顯示程序 , 循環(huán)掃描判斷信號(hào)是否有效, 如果有 效就接收 , 接收后調(diào)用相應(yīng)功能程序, 遙控 接收 程序流程圖如圖46 所示 。 /**************************************************************** * 名稱 : delay_1ms() * 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms * x * 輸入 : x (延時(shí)一毫秒的個(gè)數(shù) ) ****************************************************************/ void delay_1ms(uint i) { uchar x,j。ji。x=148。 } /*************************************************************** * 名稱 : time0_init() * 功能 : 定時(shí)器的初始化,定時(shí) 10ms ****************************************************************/ void time0_init() { TMOD = 0x01。 TH0 = 0x15。 } /**************************************************************** * 名稱 : time0_int() * 功能 : 定時(shí)器中斷 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 21 ****************************************************************/ void time0_int() interrupt 1 { count++。 TL0 = 0xA0。 for(j=0。 j++) { P1 = buffer[j]。作用為讓 P1 口的 狀態(tài)穩(wěn)定 */ _nop_()。 _nop_()。 for(i=0。 i++) { if(!(P1 amp。 //返回取得的按鍵值 } temp = 1。 //讀出的鍵值 while(1) { P1 = 0xf0。 //按鍵消抖 if(P1 != 0xf0) { key_value = keyscan() + 1。 TR0 = 1。 for(。) //發(fā)射首部 P2 = 0x00。 for(。) P2 = 0xff。 for(i = 0。 i++) //發(fā)射數(shù)據(jù) { for(。) P2 = 0x00。 for(。) P2 = 0xff。 } TR0 = 0。 } } } } 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 23 : 紅外遙控接收端軟件設(shè)計(jì) /**************************************************************** * 文件名 : 紅外遙控接收端 2 ****************************************************************/ include include define uchar unsigned char define uint unsigned int uchar count = 0。 //脈沖計(jì)時(shí) uchar num = 0。 //為 0 時(shí)不是接收狀態(tài),為 1 時(shí)為正在接收數(shù)據(jù)狀態(tài) void receive()。 for(i=0。 i++) for(j=0。 j++) 。 PX0 = 0。 //下降沿觸發(fā) } /**************************************************************** * 外部中斷 0 inter0_int() ****************************************************************/ void inter0_int() interrupt 0 { TR0 = 1。 TR0 = 0。 if(time 450 amp。 time 750) { receiv = 1。 num = 0。 } /**************************************************************** * 定時(shí)器 0 初始化 ****************************************************************/ void time0_init() { EA = 1。 PT0 = 1。 TL0 = 0x78。 TL0 = 0x78。 } /**************************************************************** * 鍵碼接收 ****************************************************************/ void receive() { TR0 = 1。 //計(jì)時(shí)高電平的時(shí) TR0 = 0。 if(time 180 amp。 time 420) { num++。 基于 AT89S52 單片機(jī)的遙控器設(shè)計(jì) 25 } else { receiv = 0。 } time = 0。 while(1) { time0_init()。 while(receiv)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1