久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機做紅外遙控器,信號發射不出去啊
[打印本頁]
作者:
hys123h
時間:
2023-11-30 11:00
標題:
51單片機做紅外遙控器,信號發射不出去啊
//模擬格力空調遙控器
//邏輯0 低550us+高550us(或600+600)
//邏輯1 低550us+高1660us(或600+1600)
//9000+4500引導碼,
//第一數組數據 0011 1110 , 0111 0000, 0000 0000,0000 1010,
//010 ,低600us+20ms連接碼
//第二數組數據 1000 1000, 0000 0010, 0000 0000, 0000 1001
//空閑 低490us+高40ms
//9000+4500引導碼,
//第三數組數據 0011 1010, 0111 0000 , 0000 0000, 0000 1110
//010, 低490us+高20ms連接碼
//第四數組數據 0000 0000 , 0000 0000, 0000 1011, 0000 100
#include <reg52.h>
sbit sendon =P3^0; //按鍵
sbit send=P2^1; //發射口
void delay_10us(int us) //10us延時函數//
{
while(us--);
}
void delay0() //邏輯0高低電平脈寬
{
send=0;
delay_10us(64);
send=1;
delay_10us(55);
}
void delay1() //邏輯1高低電平脈寬
{
send=0;
delay_10us(64);
send=1;
delay_10us(168);
}
char arr_time1[]={0x3e,0x70,0x00,0x0a}; //第一組發送的數據
char arr_time2[]={0x88,0x02,0x00,0x09}; //第二組發送的數據
char arr_time3[]={0x3a,0x70,0x00,0x0e}; //第三組發送的數據
char arr_time4[]={0x00,0x00,0x0b,0x08}; //第四組發送的數據
int main()
{
while(1)
{
send=1; //初始高電平
if (sendon==0) //判斷按鍵按下
{
int a,b;
char s1,s2,s3,s4 ;
delay_10us(2000); //判斷按鍵按下
if (sendon==0) //判斷按鍵按下
{
send=0; //9ms低電平引導碼
delay_10us(900);
send=1;
delay_10us(450); //4.5ms高電平引導碼
for(a=0;a<4;a++) //循環第一個數組的四個數據
{
s1=arr_time1[a]; //將第一個數組賦值到S1
for (b=0;b<8;b++) //將每個數據的8位循環
{
if (s1&0x80) //數據&0x80后進行判斷
{
delay1();
}
else
{
delay0();
}
s1 <<= 1; //左移一位再循環判斷
}
}
delay0(); //010+高20000us連接碼
delay1(); //010+高20000us連接碼
delay0(); //010+高20000us連接碼
send=0; //010+高20000us連接碼
delay_10us(60); //010+高20000us連接碼
send=1; //010+高20000us連接碼
delay_10us(2000); //010+高20000us連接碼
a=0;
b=0;
//s1
for(a=0;a<4;a++) //第二個數組發送
{
s2=arr_time2[a];
for (b=0;b<8;b++)
{
if (s2&0x80)
{
delay1();
}
else
{
delay0();
}
s2 <<= 1;
}
}
send=0; //40ms空閑
delay_10us(49); //40ms空閑
send=1; //40ms空閑
delay_10us(4000); //40ms空閑
//s2
a=0;
b=0;
send=0; //空閑之后再次引導碼
delay_10us(900); //9ms低電平引導碼
send=1;
delay_10us(450); //4.5ms高電平引導碼
for(a=0;a<4;a++) //第三數組發送
{
s3=arr_time3[a];
for (b=0;b<8;b++)
{
if (s3&0x80)
{
delay1();
}
else
{
delay0();
}
s3 <<= 1;
}
}
delay0(); //010+高20000us連接碼
delay1(); //
delay0(); //
send=0;
delay_10us(49);
send=1;
delay_10us(2000);
a=0;
b=0;
//s3
for(a=0;a<3;a++) //第四數組發送,第四數組在for循環中只有三個數據
{
s4=arr_time4[a];
for (b=0;b<8;b++)
{
if (s4&0x80)
{
delay1();
}
else
{
delay0();
}
s4 <<= 1;
}
}
delay0(); //第四個數據發送 數據為000100
delay0();
delay0();
delay0();
delay1();
delay0();
delay0();
//s4
while(!sendon); //按鍵松開
}
}
}
}
用示波器檢測輸出口有信號,但是用紅外線接收頭接收不到。
作者:
gongnn
時間:
2023-11-30 13:37
38K載波怎么產生的?
作者:
s1gm
時間:
2023-11-30 14:23
你這是直接發送數據當然不行了,紅外遙控是需要38K載頻的,要么你在程序里做,要么你在電路里做。
作者:
devcang
時間:
2023-11-30 16:19
軟件延時,不是很可靠。
先檢測發送的脈沖波形,是否正確
作者:
hys123h
時間:
2023-12-1 10:25
s1gm 發表于 2023-11-30 14:23
你這是直接發送數據當然不行了,紅外遙控是需要38K載頻的,要么你在程序里做,要么你在電路里做。
38k載波咋做啊,搜了一頓沒看懂
作者:
597329015
時間:
2023-12-1 11:03
根據你提供的代碼,你在發送紅外信號之前已經正確地設置了引導碼和邏輯0、邏輯1的時序。然而,有幾個可能的原因會導致紅外接收器無法接收到信號: 發送功率不足:請確保你的紅外發射器輸出的紅外功率足夠強,以便能夠被紅外接收器接收到。你可以嘗試將發射器與接收器之間的距離縮短,并確保沒有任何物體阻擋紅外信號的傳輸。 發射頻率不匹配:不同品牌和型號的空調使用不同的紅外發射頻率。請檢查你使用的紅外發射器和空調遙控器的發射頻率是否一致。如果不一致,可能需要更換相應頻率的紅外發射器。 紅外接收器故障:如果你確定發送端的代碼和硬件設置都正確無誤,但仍然無法接收到紅外信號,那么可能是紅外接收器本身存在問題。你可以嘗試更換一個不同的紅外接收器來進行測試。
作者:
a399288395
時間:
2023-12-1 11:23
要有38K的載波信號 才能正確發送和接收; 可以用定時器模擬, 或者外部555產生載波再硬件合成
作者:
coody_sz
時間:
2023-12-1 15:18
紅外收發都是簡單應用,基本初學者都要過的基本要求。
樓主先產生38K的載波,示波器看看輸出了沒有?然后加程序用數據調制輸出。
作者:
大漠落日
時間:
2023-12-2 08:10
用示波器查看一下載波信號
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲成人精品久久
|
看片91
|
久久免费精彩视频
|
欧美成人a∨高清免费观看 老司机午夜性大片
|
蜜桃毛片
|
一级做a爰片久久毛片免费看
|
亚洲精品一区二区在线观看
|
亚洲精品成人免费
|
亚洲在线免费
|
欧美 日韩 国产 成人 在线
|
97精品超碰一区二区三区
|
免费成人在线网站
|
国产91网站在线观看
|
成人免费视频播放
|
人人九九精
|
亚洲综合无码一区二区
|
天天色图
|
欧美 日韩 国产 一区
|
天天色av
|
亚洲精品一区二三区不卡
|
久久免费视频观看
|
国产999精品久久久久久绿帽
|
亚洲一区二区三区四区视频
|
欧美激情综合色综合啪啪五月
|
在线国产一区
|
91视频免费视频
|
一区二区三区免费
|
欧美v在线
|
亚洲成人一区二区
|
国产一区在线视频
|
成人精品一区二区三区
|
中文字幕一区二区视频
|
国产成人精品高清久久
|
国产精品久久久久久中文字
|
91久久综合
|
亚洲男女视频在线观看
|
中文字幕亚洲视频
|
国产精品美女久久久久aⅴ国产馆
|
亚洲一区二区视频在线播放
|
中文字幕国产精品
|
久草影视在线
|