【正文】
UF2[3]。//發(fā)送低電平 =0。 //讓下一次發(fā)送間隔脈沖 } //不允許發(fā)送紅外線,進(jìn)行發(fā)送間隔狀態(tài) else { =0。 for(。 sbit OUT5=P2^3。 sbit OUT13=P3^3。 uchar OUT_P_CONT。 uchar IRF_step。 uchar old_buf。 TH0=THO_int。 if(out_flag==1) { out_flag=0。break。break。 OUT7=!OUT7。 case 9:。break。OUT_P_CONT++。 TR0=1。 p_cont=0。 old_buf=IRF_buf。 IRF_data_buf[IRF_step]=IRF_data_buf[IRF_step]amp。 if(IRF_step=4) { IRF_step=0。 IRF_step=0。 IRF_step=0。 out_control()。 } //******************************************************** } void main(void) 26 { MCU_init()。(IRF_cont_buf75)) { IRF_tmfige=1。 IRF_data_buf2[2]=IRF_data_buf[2]。 IRF_data_buf[IRF_step]=IRF_data_buf[IRF_step]|0x80。 IRF_cont=0。 zero_flag=0。 old_v=new_v。 break。 case 13:。OUT11=!OUT11。break。 23 case 5:。 case 2: OUT3=!OUT3。 key=i。 P2=0x00。 sbit zero_flag=sys_flag^1。 uchar rx_rf_cont。 //************************************************** uchar fige。 //變量定義存于 RAM********************************** uchar cont_4ms。 21 sbit OUT9=P3^7。 sbit OUT1=P2^7。 =1。amp。 //打開紅外發(fā)射 19 } } } } else { if(==0) //如果允許發(fā)送紅外線 { tx_delay=45。//清幀計(jì)數(shù)器 key_out=0。 //發(fā)送數(shù)據(jù) 0或 1紅外發(fā)送寬度 =1。 //關(guān)閉發(fā)送 } else if(==1)//是否是發(fā)送間隔時(shí)間 { if(TX_BUF[DA_step]amp。amp。 i=16。 //啟動(dòng)發(fā)送 TX_BUF2[0]=111。i++) { P2=key_scan_tap[i]。 P2=P2|0x0f。 //************************************************** //定時(shí)器初值化 void T0_int(void) { TMOD=TMOD_int。 //頭碼發(fā)送標(biāo)記 unsigned sen_en:1。 uchar old_key,new_key。 uchar tx_。 uchar old_buf。若第一位低電平碼的脈寬小于 2ms,將作為錯(cuò)誤碼處理,當(dāng)間隔位的高電平脈寬大于 3ms 時(shí),結(jié)束接收,然后根據(jù)累加器 A 中的脈沖個(gè)數(shù),執(zhí)行相應(yīng)輸出的操作。為了克服半波整流的缺點(diǎn),采用的是橋式整流電路,將交流變成脈動(dòng)直流電。 7 P P P P P P P P R S TR X D / P 3 .0T X D / P 3 .1I N T 0 / P I N T 1 / P T 0/ P T 1/ P W R /P 3. 6R D / P X A T L 2X A T L 1V S S P / A N 8P / A N 9P / A N 10P / A N 11P / A N 12P / A N 13P / A N 14P / A N 15P S E NA L E / P R O GENP / A N 7P / A N 6P / A N 5P / A N 4P / A N 3P / A N 2P / A N 1P / A N 0V C CU2A T 8 9C 5 1+5+5O U TR D _ Z E R OO U T 1O U T 2O U T 3O U T 4O U T 5O U T 6O U T 7O U T 8O U T 9O U T 10O U T 11O U T 12O U T 13O U T 14GNDVCCIR_OUTJ3H W _ R X+5abcdefg 圖 34 紅外遙控接收器電路圖 顯示電路 用單個(gè)共陰數(shù)碼管顯示的, 數(shù)碼管的二進(jìn)制數(shù)據(jù)輸出顯示數(shù)字為 0— 7, 7 代表最亮,0 代表最暗。對(duì)于 CMOS 型單片機(jī),由于在 RST 端內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至 10181。 3 系統(tǒng)硬件設(shè)計(jì) 遙控器由發(fā)射電路和接 收電路兩部分組成。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 P3 口: P3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL 門電流。 P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入 , P1 口被外部下拉為 4 低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 當(dāng)紅外線接收器輸出脈沖幀數(shù)據(jù) 時(shí),第一碼的低電平將啟動(dòng)中斷程序,實(shí)時(shí)接收數(shù)據(jù)幀。而 紅外遙控技術(shù) 近 年來得到了迅猛發(fā)展,尤其在家電領(lǐng)域如彩電、 DVD、空調(diào)等,也在其它電子領(lǐng)域得到廣泛應(yīng)用 。通過控制按鍵來控制相應(yīng)的 15電路 , 紅外遙控器 其體積小 、功耗低 、 功能強(qiáng) 、 成本低的特點(diǎn) ! 采用紅外遙控器做控制器的單片機(jī)系統(tǒng),不僅價(jià)格低廉,而且電路簡(jiǎn)單、實(shí)用,操作方便,性能穩(wěn) 定,易于推廣。 3 采取的是紅外控制技術(shù),紅外技術(shù)通過光信號(hào)傳遞數(shù)據(jù),因而不受電磁干擾 ,通訊的可靠性高。 P0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù) /地址的第八位。P2 口當(dāng)用于 外部程序存儲(chǔ)器或 16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí) , P2 口輸出地址的高八位。 /EA/VPP:當(dāng) /EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器( 0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極 COM 接到 +5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。 紅外遙控發(fā)射電路: 第 9 腳為單片機(jī)的復(fù)位腳,采用簡(jiǎn)單的 RC上電復(fù)位電路, 15腳為紅外線遙控器的輸出口,用于輸出 40KHz載波編碼。 電路如 32圖 所示。在鍵盤的設(shè)計(jì)時(shí),開始選用的是大的按鍵,但是考慮到 PCB 板的大小,我后來選用的是小的按鍵,可以節(jié)省覆銅板,按鍵的行線和列線分別接 P2 的 8 位。 9 T1T R A N S 11J1C O N 11J2C O N 1D1I N 4 0 0 7D2I N 4 0 0 7D4I N 4 0 0 7D5I N 4 0 0 7D3I N 4 0 0 7C11 0 0 0 U F / 2 5 VC21 0 0 0 U F / 2 5 VC31 0 4V i n3GND2V o u t1U17 8 0 5C91 0 4+52 2 0 V _ N+ 1 2 圖 37電源電路圖 4 系統(tǒng)軟件設(shè)計(jì) 設(shè)計(jì)與分析 采用的是 AT89C51 的單片機(jī),系統(tǒng)的軟件工作過程如下: 1)上電時(shí),顯示器上顯示的是“ 0”,代表最暗,其他按鈕是處于關(guān)閉狀態(tài)。 12 參考文獻(xiàn) [1]彭為 等編著 .單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講 [M], 電子工業(yè)出版社 , 2020, 1:15~ 32. [2]李朝青 主編 .無線發(fā)送 /接收 IC芯片及其數(shù)據(jù)通信技術(shù)選編 2[J]. 北京航天航空大學(xué)出版社 , 2020, 2:34~ 56. [3]杜小平 ,契桂花 ,雷道振 . 單片機(jī)初級(jí)教程 — 單片機(jī)基礎(chǔ) [M].北京 : 北京航空航天大學(xué)出版社 , 2020,4:77~ 56. [4]樓然苗 ,李光飛 . 51 系列單片機(jī)設(shè)計(jì)實(shí)例 [M].北京 : 北京航空航天大學(xué)出版社 , 2020, 4:46~ 89. [5]胡宴如 . 模擬電子技 [M].北京:高等教育出版社, 2020, 7: 56~ 99. [6]中國(guó)電子網(wǎng) , [7]中國(guó)電子設(shè)計(jì)網(wǎng), 13 附件 1. 元器件清單 元器件名稱 數(shù)量 元器件名稱 數(shù)量 1K 電阻 7 12V繼電器 14 3K 電阻 14 兩孔接插件 2 電阻 13 紅外接收管 1 10K 電阻 3 紅外發(fā)射頭 1 47K 電阻 1 12 電源 1 470Ω電阻 1 按鈕開關(guān) 16 100Ω電阻 1 12M 晶振 2 10uf/6V電容 3 二極管 4007 5 22pf 電容 4 LED 紅光 14 104 電容 3 共陽(yáng)數(shù)碼管 1 1000uf/25V電容 2 7805 1 AT89C51 2 可控硅 1 三極管 9014 15 三極管 9015 1 14 附件 2. 程序清單 1. 紅外發(fā)射程序 define uchar unsigned char define uint unsigned int include include include define THO_int 0xff //定時(shí)器高 8 位初值 define TL0_int 55 //定時(shí)器低 8位初值 define TMOD_int 0x01 //設(shè)置定時(shí)器工作模式 define TCON_int 0x10 //啟動(dòng)定時(shí)器 sbit HW_OUT=P1^0。 uchar IRF_cont_buf。 //****************************************** 15 uchar key_cont。 uchar code key_tap[16]={0x1e,0x1d,0x1b,0