找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6312|回復: 0
打印 上一主題 下一主題
收起左側(cè)

大家?guī)臀铱纯醇t外編碼程序有什么問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:15254 發(fā)表于 2009-7-13 13:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

幫我看看下面紅外編碼的程序
問題1:我感覺我的程序?qū)懙乃悸窙]錯,編譯也能通過,但是執(zhí)行的時候不是按照code2的數(shù)據(jù)來發(fā)射的,好像是頻閃,頻率較低?
問題2:數(shù)組code2[]的長度只要長到一定的程度,keil就會編譯錯誤,但是我需要很長,怎么辦?
問題3:TH0和TL0這樣賦值是否正確,為什么書上的是-XXX/256?
誰能按照我的思路寫一個紅外編碼的程序,感激不盡。!


#include<reg51.h>

sbit led=P3^1;

float code2[]={1,2,5,1,2,3,4,5,6,7,8,9,2,5,1,2,3,4,5,6,7,8,9,2,5,1,2,3};//作為試驗數(shù)據(jù),使用時寫成一定寬度的高低電平


sent(float code1[])//發(fā)送紅外線的函數(shù)
{int i;
led=0;
for(i=0;i<30;i++);
TH0=(65536-code1*11059.2)/256;
TL0=(int)(65536-code1*11059.2)%256;
TR0=1;
while(TR0){}//直到定時計數(shù)器停止時才繼續(xù)運行
led=1;
}


intsrv() interrupt 1 using 1
{
led=!led;
TR0=0;
}


init()//初始化
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0;
TL0=0;
TR0=0;
}


main()
{init();
while(1){
sent(code2());
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表