久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機紅外解碼程序能每條代碼都解釋下么?看不懂
[打印本頁]
作者:
清御
時間:
2023-12-21 08:17
標題:
單片機紅外解碼程序能每條代碼都解釋下么?看不懂
謝謝大家
//包含頭文件
#include "REG51.h"
#include "stdio.h"
//定義數據類型
#define uchar unsigned char
#define uint unsigned int
//控制變量
uchar Buffer[20];
uint Old_HW = 0xff;
extern void delayms(uint x);
extern void Init_1602(void);
extern void Xian_String(uchar x,uchar y,uchar *p);
//定義引腳
sbit IRED=P3^2;
//紅外控制變量
uchar gired_data[4];//存儲4個字節接收碼(地址碼+地址反碼+控制碼+控制反碼
/*******************************************************************************
* 函 數 名 : delay_10us
* 函數功能 : 延時函數,ten_us=1時,大約延時10us
* 輸 入 : ten_us
* 輸 出 : 無
*******************************************************************************/
void delay_10us(unsigned int ten_us)
{
while(ten_us--);
}
/*******************************************************************************
* 函 數 名 : ired_init
* 函數功能 : 紅外端口初始化函數,外部中斷0配置
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void ired_init(void)
{
IT0=1; //下降沿觸發
EX0=1; //打開中斷0允許
EA=1; //打開總中斷
IRED=1; //初始化端口
}
//紅外函數
void Hongwai(void)
{
if(gired_data[2] != Old_HW)
{
Old_HW = gired_data[2];
}
}
//顯示函數
void Display(void)
{
sprintf(Buffer,"Key:0X%02X ",Old_HW);
Xian_String(0,0,Buffer);
}
//主函數
int main(void)
{
//初始化
uchar Old_ZhuangTai = 0xff;
ired_init();
Init_1602();
while(1)
{
Hongwai(); //紅外
Display(); //顯示
delayms(100); //延時
}
}
void ired() interrupt 0 //外部中斷0服務函數
{
uchar ired_high_time=0;
unsigned int time_cnt=0;
uchar i=0,j=0;
if(IRED==0)
{
time_cnt=1000;
while((!IRED)&&(time_cnt))//等待引導信號9ms低電平結束,若超過10ms強制退出
{
delay_10us(1);//延時約10us
time_cnt--;
if(time_cnt==0)return;
}
if(IRED)//引導信號9ms低電平已過,進入4.5ms高電平
{
time_cnt=500;
while(IRED&&time_cnt)//等待引導信號4.5ms高電平結束,若超過5ms強制退出
{
delay_10us(1);
time_cnt--;
if(time_cnt==0)return;
}
for(i=0;i<4;i++)//循環4次,讀取4個字節數據
{
for(j=0;j<8;j++)//循環8次讀取每位數據即一個字節
{
time_cnt=600;
while((IRED==0)&&time_cnt)//等待數據1或0前面的0.56ms結束,若超過6ms強制退出
{
delay_10us(1);
time_cnt--;
if(time_cnt==0)return;
}
time_cnt=20;
while(IRED)//等待數據1或0后面的高電平結束,若超過2ms強制退出
{
delay_10us(10);//約0.1ms
ired_high_time++;
if(ired_high_time>20)return;
}
gired_data[i]>>=1;//先讀取的為低位,然后是高位
if(ired_high_time>=8)//如果高電平時間大于0.8ms,數據則為1,否則為0
gired_data[i]|=0x80;
ired_high_time=0;//重新清零,等待下一次計算時間
}
}
}
if(gired_data[2]!=~gired_data[3])//校驗控制碼與反碼,錯誤則返回
{
for(i=0;i<4;i++)
gired_data[i]=0;
return;
}
復制代碼
作者:
heicad
時間:
2023-12-21 15:25
這里有詳細的注釋,你看他的解碼函數 和你這個一樣的
http://m.zg4o1577.cn/bbs/dpj-108717-1.html
http://m.zg4o1577.cn/bbs/dpj-29835-1.html
作者:
man1234567
時間:
2023-12-22 09:39
感覺這個已經注釋得很清楚了
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲资源在线
|
亚洲人精品
|
99cao
|
亚洲国产网站
|
亚洲国产精品久久久久久久
|
精品国产视频
|
视频一区在线观看
|
日本天天操
|
日本黄色录像
|
亚洲色欲色欲www在线观看
|
精品国产91乱码一区二区三区
|
一级淫片观看
|
成人免费福利视频
|
黄色免费视频网站
|
日本理论片午伦夜理片在线观看
|
精品毛片一区二区三区
|
欧美日韩视频在线
|
国产香蕉av
|
久久性视频
|
亚洲a在线观看
|
黄色录像一级片
|
欧美一区二区三区的
|
高h乱l高辣h文短篇h
|
黄色在线视频播放
|
av网站免费看
|
亚洲激情在线视频
|
免费成人深夜夜行网站
|
成人免费视频网址
|
中文字幕在线观看一区二区三区
|
国产性生活视频
|
日韩在线不卡
|
国产视频一
|
www.99色
|
亚洲欧美日韩一区二区
|
国产无遮挡又黄又爽又色
|
午夜视频在线看
|
久久综合激情
|
91精品国
|
特黄aaaaaaaaa真人毛片
|
欧美精品亚洲
|
老司机免费福利视频
|