標題: 基于STC15F104單片機解碼PT2262 EV1527軟件解碼 2272學習遙控器芯片 [打印本頁]
作者: yuanyuananfang0 時間: 2024-5-7 09:41
標題: 基于STC15F104單片機解碼PT2262 EV1527軟件解碼 2272學習遙控器芯片
STC15F104W解碼原理圖.jpg (76.48 KB, 下載次數: 28)
下載附件
2024-5-7 09:31 上傳
1.png (18.78 KB, 下載次數: 35)
下載附件
2024-5-7 09:33 上傳
315-433MHZ學習遙控器芯片支持1527 2264 2260 2262 SC5211 HS2240等解碼,自動適應振蕩電阻
2260 2262 2264 如果不進行人工地址編碼,好多個遙控器地址編碼一樣的,只要學習一個遙控器,所有的遙控器都能同時用
一:如何設置自鎖,互鎖,點動輸出1:斷電。按住學習鍵然后上電保持1-2秒鐘后松開,學習燈閃3次,設置為自鎖輸出。
2:斷電。按住學習鍵然后上電保持1-2秒鐘后松開,學習燈閃1次,設置為互鎖輸出。
3:斷電。按住學習鍵然后上電保持1-2秒鐘后松開,學習燈閃2次,設置為點動輸出。
二:遙控器學習:以上輸出模式設置后斷開電源,然后上電,按一下學習鍵,學習燈保持亮,再按遙控器上的任意一鍵,學習燈熄滅,遙控器學習成功。重復上述操作可以學習多達20個遙控器。1527 2260 2262 2264等的遙控器可以混合學習使用。
三:如何清空已學習過的遙控器:斷電,按住學習鍵然后上電保持4秒以上再松開按鍵,學習燈閃爍4次,說明已學習過的遙控器已被清空。
單片機源程序如下:
//內部晶振:11.0592M
//測試芯片:STC15F104E/STC11F04W
//硬件最簡版
//實現2262、1527解碼輸出,學習、自適應多阻值,片內EEPROM存儲相關信息
#include <reg52.h>
#include <intrins.h>
sfr AUXR=0x8e;
sfr IAP_DATA = 0xC2; //片內EEPROM資源聲明
sfr IAP_ADDRH = 0xC3;
sfr IAP_ADDRL = 0xC4;
sfr IAP_CMD = 0xC5;
sfr IAP_TRIG = 0xC6;
sfr IAP_CONTR = 0xC7;
sfr P3M0 =0xb2;
sfr P3M1 =0xb1;
#define uchar unsigned char
#define uint unsigned int
sbit RF = P3^4; //射頻引腳定義
sbit set = P3^3; //設置鍵定義
sbit keya = P3^0; //第一路
sbit keyb = P3^1; //第二路
sbit keyc = P3^2; //第三路
sbit keyd = P3^5; //第四路
uint ll_w;
uchar hh_w; //高,低電平寬度
uchar ma_x; //接收到第幾位編碼了
uchar idata bma1,bma2,bma3; //用于接收過程存放遙控編碼,編碼比較兩次,這是第一次
uchar idata mmb1,mmb2,mmb3; // 用于接收過程存放遙控編碼,第二次
uchar key_data;
uchar short_k;
uchar mma1,mma2,mma3; //用于解碼過程
uchar L_M_select;
uchar xplx;
uint s,s1;
bit old_rc5; //保存上一次查詢到的電平狀態
bit tb_ok; //接收到同步的馬時置1
bit rf_ok1,rf_ok2; //解碼過程中的臨時接收成功標志
bit rf_ok; //接收到一個完整的遙控命令后置1,通知解碼程序可以解碼了
bit study; //進入學習狀態標志
bit system_int; //系統清零標志
bit m1,m2,m3,m4;
bit flag_zs;
bit decode_ok; //解碼成功
uchar idata key_number[61];
void delay_1ms(uint x) //1毫秒延時
{
uchar b,c;
for(x;x>0;x--)
{
for(b=5;b>0;b--)
{
for(c=150;c>0;c--);
}
}
}
void BB(uint size,uchar Number)
{
if(Number)
{
for(Number;Number>0;Number--)
{
set=0;
delay_1ms(size);
set=1;
delay_1ms(size);
}
}
else
{
set=0;
delay_1ms(size);
set=1;
}
}
void chick1527(uchar d)
{
uchar u;
for(u=0;u<4;u++)
{
if(((d>>(u*2)) & 3)==2)
{
xplx=0x55;
}
}
}
//====================================================
/////////片內EEPROM讀寫驅動程序///////////////////////////
//====================================================
void IAP_Disable() //關閉IAP
{
//關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處于安全狀態,
//一次連續的IAP 操作完成之后建議關閉IAP 功能,不需要每次都關
IAP_CONTR = 0; //關閉IAP 功能
IAP_CMD = 0; //清命令寄存器,使命令寄存器無命令,此句可不用
IAP_TRIG = 0; //清命令觸發寄存器,使命令觸發寄存器無觸發,此句可不用
IAP_ADDRH = 0;
IAP_ADDRL = 0;
}//
//讀一字節,調用前需打開IAP 功能,入口:DPTR = 字節地址,返回:A = 讀出字節
uchar read_add(uint addr) //讀EEPROM
{
IAP_DATA = 0x00;
IAP_CONTR = 0x84; //打開IAP 功能, 設置Flash 操作等待時間
IAP_CMD = 0x01; //IAP/ISP/EEPROM 字節讀命令
IAP_ADDRH = addr>>8; //設置目標單元地址的高8 位地址
IAP_ADDRL = addr&0xff; //設置目標單元地址的低8 位地址
EA = 0;
IAP_TRIG = 0x5a; //先送 46h,再送B9h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG = 0xa5; //送完 B9h 后,ISP/IAP 命令立即被觸發起動
_nop_();
EA = 1;
IAP_Disable(); //關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處于安全狀態,
//一次連續的IAP 操作完成之后建議關閉IAP 功能,不需要每次都關
return (IAP_DATA);
}//------------------------------------------------------------------------------
//字節編程,調用前需打開IAP 功能,入口:DPTR = 字節地址, A= 須編程字節的數據
void write_add(uint addr,uchar ch) //直接寫EEPROM
{
IAP_CONTR = 0x84; //打開 IAP 功能, 設置Flash 操作等待時間
IAP_CMD = 0x02; //IAP/ISP/EEPROM 字節編程命令
IAP_ADDRH = addr>>8; //設置目標單元地址的高8 位地址
IAP_ADDRL = addr&0xff; //設置目標單元地址的低8 位地址
IAP_DATA = ch; //要編程的數據先送進IAP_DATA 寄存器
EA = 0;
IAP_TRIG = 0x5a; //先送 46h,再送B9h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG = 0xa5; //送完 B9h 后,ISP/IAP 命令立即被觸發起動
_nop_();
EA = 1;
IAP_Disable(); //關閉IAP 功能, 清相關的特殊功能寄存器,使CPU 處于安全狀態,
//一次連續的IAP 操作完成之后建議關閉IAP 功能,不需要每次都關
}//------------------------------------------------------------------------------
//擦除扇區, 入口:DPTR = 扇區地址
void Sector_Erase(uint addr) //扇區擦除
{
IAP_CONTR = 0x84; //打開IAP 功能, 設置Flash 操作等待時間
IAP_CMD = 0x03; //IAP/ISP/EEPROM 扇區擦除命令
IAP_ADDRH =addr>>8; //設置目標單元地址的高8 位地址
IAP_ADDRL =addr&0xff; //設置目標單元地址的低8 位地址
EA = 0;
IAP_TRIG = 0x5a; //先送 46h,再送B9h 到ISP/IAP 觸發寄存器,每次都需如此
IAP_TRIG = 0xa5; //送完 B9h 后,ISP/IAP 命令立即被觸發起動
_nop_();
EA = 1;
下載燒錄說明
IRC頻率選11.0592M
如果已燒錄過的單片機,燒錄前必須下載后恢復下出廠設置。才能再燒錄,新單片機不用恢復
操作:按住學習鍵,上電保持10秒以上松開即可。
Protel99格式的PCB和源程序燒寫文件等資料下載:
資料.7z
(435.33 KB, 下載次數: 71)
2024-5-7 15:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
-
IO口設置.png
(177.4 KB, 下載次數: 56)
下載附件
2024-5-7 09:32 上傳
-
STC15F104W解碼原理圖.jpg
(76.48 KB, 下載次數: 45)
下載附件
2024-5-7 09:37 上傳
電路原理圖
作者: yuanyuananfang0 時間: 2024-5-7 09:43
保證能用哦
作者: fhl323225577 時間: 2024-5-9 22:13
能接收多少距離?和用硬解碼差距大嗎?
作者: yuanyuananfang0 時間: 2024-5-13 20:52
同等功率遙控距離一樣
作者: 紫色的云 時間: 2024-5-14 08:36
學習了,謝謝樓主的資料
作者: yuanyuananfang0 時間: 2024-5-17 10:01
客氣了
作者: 我是栗子 時間: 2024-9-9 10:46

感謝樓主
作者: hxszrb 時間: 2024-10-3 22:53
好東西,學習了
作者: wenwu2013 時間: 2024-10-12 15:05
感謝分享,已下載。請問設置與外圍電路P3.0-P3.3起什么作用,可以忽略嗎
作者: wkman 時間: 2024-10-17 16:00
資料.7z 里面只有 hex ???
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲性视频
|
国产美女在线观看
|
久久精品国产亚洲
|
亚洲国产精品一区二区久久
|
亚洲精品不卡
|
日韩视频免费看
|
国产精品久久网
|
精品一区电影
|
精品日韩一区二区三区
|
亚洲国产精品久久久久婷婷老年
|
在线成人精品视频
|
成人精品视频免费
|
久久在线看
|
欧美精品一区二区三区在线四季
|
国产区精品
|
男女国产网站
|
午夜寂寞影院在线观看
|
亚洲经典一区
|
免费观看一级毛片
|
国产a一区二区
|
一区二区三区四区不卡
|
亚洲精品一|
色综合99|
精品国产精品一区二区夜夜嗨
|
亚洲一二三在线
|
亚洲一区二区久久久
|
久久久蜜桃一区二区人
|
亚洲第一天堂无码专区
|
成人av电影天堂
|
www免费视频|
国产自产c区
|
精品久久久久久国产
|
91精品久久久久久久久
|
91精品久久久久久久
|
成人av在线网站
|
九九九久久国产免费
|
免费观看一级特黄欧美大片
|
久久最新|
国产精品中文
|
亚洲国产精品一区二区三区
|
性色av网站
|