|
以前沒有弄過紅外發(fā)射,這兩天惡補(bǔ)了一下,寫了一個(gè)程序調(diào)試中出現(xiàn)了問題,先把程序貼出來:
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//==== 紅外遙控器發(fā)射程序 ====//
At89s52, 晶振12,
38KHz, 1/38=26.3μS
方波高低各50%,也就是:中斷2次: 26.3/2=13.15μS =13μS
幾個(gè)時(shí)序需要的中斷次數(shù)的計(jì)算:
9ms/13μS = 692(次實(shí)現(xiàn))
4.5ms/13 = 346
0.56ms/13 = 43
1.69ms/13 = 130
定時(shí)器初值計(jì)算:
初值 = 65536 - (f(晶振) * (y)需定時(shí)數(shù))/ 12(分頻)
本例:f=12 y=13μS
計(jì)算:初值 = 65536-13 = 65523 = fff3
紅外傳輸發(fā)射協(xié)議:
引導(dǎo)碼+16位用戶數(shù)據(jù)碼+8位設(shè)備碼+8位識別反碼
引導(dǎo)碼: 9ms高電平 + 4.5ms低電平
用戶碼和設(shè)備碼中:
“1”: 0.56ms高電平 + 1.69ms低電平
“0”: 0.56ms低電平 + 0.56ms低電平
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
問題是:
紅外發(fā)射專用計(jì)時(shí)器(定時(shí)器1)出現(xiàn)如下情況,看圖:
=================================
截圖05.JPG (31.85 KB, 下載次數(shù): 50)
下載附件
2020-7-24 21:44 上傳
==================================
截圖06.JPG (27.72 KB, 下載次數(shù): 39)
下載附件
2020-7-24 21:45 上傳
===============================
上圖的定時(shí)器值是FF,FA;再一個(gè)單步就是下圖的00 04 了,再一單步就重裝初值。
這個(gè)定時(shí)器初值是TH1=0XFF, TL1=0XF3, 定時(shí)13μs,重裝初值時(shí)TH1是不應(yīng)該變的,
由于這一變,定時(shí)值變?yōu)榱?2μs,多出了9μs,
實(shí)際定時(shí)值是通過上圖所示的sec算出的,定時(shí)器1工作方式1,換成工作方式0也不行,
弄一天 了,找不出原因了,望高手們出手相幫,先謝謝了!!
|
|