久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1956|回復(fù): 2
收起左側(cè)

單片機(jī)紅外解碼程序能每條代碼都解釋下么?看不懂

[復(fù)制鏈接]
ID:1103643 發(fā)表于 2023-12-21 08:17 | 顯示全部樓層 |閱讀模式
100黑幣
謝謝大家
  1. //包含頭文件
  2. #include "REG51.h"
  3. #include "stdio.h"
  4. //定義數(shù)據(jù)類型
  5. #define uchar unsigned char
  6. #define uint unsigned int

  7. //控制變量
  8. uchar Buffer[20];
  9. uint Old_HW = 0xff;

  10. extern void delayms(uint x);
  11. extern void Init_1602(void);
  12. extern void Xian_String(uchar x,uchar y,uchar *p);

  13. //定義引腳
  14. sbit IRED=P3^2;
  15. //紅外控制變量
  16. uchar gired_data[4];//存儲(chǔ)4個(gè)字節(jié)接收碼(地址碼+地址反碼+控制碼+控制反碼

  17. /*******************************************************************************
  18. * 函 數(shù) 名       : delay_10us
  19. * 函數(shù)功能                 : 延時(shí)函數(shù),ten_us=1時(shí),大約延時(shí)10us
  20. * 輸    入       : ten_us
  21. * 輸    出             : 無(wú)
  22. *******************************************************************************/
  23. void delay_10us(unsigned int ten_us)
  24. {
  25.         while(ten_us--);        
  26. }

  27. /*******************************************************************************
  28. * 函 數(shù) 名         : ired_init
  29. * 函數(shù)功能                   : 紅外端口初始化函數(shù),外部中斷0配置
  30. * 輸    入         : 無(wú)
  31. * 輸    出         : 無(wú)
  32. *******************************************************************************/
  33. void ired_init(void)
  34. {
  35.         IT0=1;        //下降沿觸發(fā)
  36.         EX0=1;        //打開(kāi)中斷0允許
  37.         EA=1;        //打開(kāi)總中斷
  38.         IRED=1;        //初始化端口
  39. }

  40. //紅外函數(shù)
  41. void Hongwai(void)
  42. {
  43.         if(gired_data[2] != Old_HW)
  44.         {
  45.                 Old_HW = gired_data[2];
  46.                
  47.         }
  48. }

  49. //顯示函數(shù)
  50. void Display(void)
  51. {
  52.         sprintf(Buffer,"Key:0X%02X   ",Old_HW);
  53.         Xian_String(0,0,Buffer);
  54. }

  55. //主函數(shù)
  56. int main(void)
  57. {
  58.         //初始化
  59.         uchar Old_ZhuangTai = 0xff;
  60.         ired_init();
  61.         Init_1602();
  62.         while(1)
  63.         {               
  64.                 Hongwai(); //紅外
  65.                 Display(); //顯示
  66.                 delayms(100); //延時(shí)
  67.          }                  
  68. }

  69. void ired() interrupt 0        //外部中斷0服務(wù)函數(shù)
  70. {
  71.         uchar ired_high_time=0;
  72.         unsigned int time_cnt=0;
  73.         uchar i=0,j=0;

  74.         if(IRED==0)
  75.         {
  76.                 time_cnt=1000;
  77.                 while((!IRED)&&(time_cnt))//等待引導(dǎo)信號(hào)9ms低電平結(jié)束,若超過(guò)10ms強(qiáng)制退出
  78.                 {
  79.                         delay_10us(1);//延時(shí)約10us
  80.                         time_cnt--;
  81.                         if(time_cnt==0)return;               
  82.                 }
  83.                 if(IRED)//引導(dǎo)信號(hào)9ms低電平已過(guò),進(jìn)入4.5ms高電平
  84.                 {
  85.                         time_cnt=500;
  86.                         while(IRED&&time_cnt)//等待引導(dǎo)信號(hào)4.5ms高電平結(jié)束,若超過(guò)5ms強(qiáng)制退出
  87.                         {
  88.                                 delay_10us(1);
  89.                                 time_cnt--;
  90.                                 if(time_cnt==0)return;        
  91.                         }
  92.                         for(i=0;i<4;i++)//循環(huán)4次,讀取4個(gè)字節(jié)數(shù)據(jù)
  93.                         {
  94.                                 for(j=0;j<8;j++)//循環(huán)8次讀取每位數(shù)據(jù)即一個(gè)字節(jié)
  95.                                 {
  96.                                         time_cnt=600;
  97.                                         while((IRED==0)&&time_cnt)//等待數(shù)據(jù)1或0前面的0.56ms結(jié)束,若超過(guò)6ms強(qiáng)制退出
  98.                                         {
  99.                                                 delay_10us(1);
  100.                                                 time_cnt--;
  101.                                                 if(time_cnt==0)return;        
  102.                                         }
  103.                                         time_cnt=20;
  104.                                         while(IRED)//等待數(shù)據(jù)1或0后面的高電平結(jié)束,若超過(guò)2ms強(qiáng)制退出
  105.                                         {
  106.                                                 delay_10us(10);//約0.1ms
  107.                                                 ired_high_time++;
  108.                                                 if(ired_high_time>20)return;        
  109.                                         }
  110.                                         gired_data[i]>>=1;//先讀取的為低位,然后是高位
  111.                                         if(ired_high_time>=8)//如果高電平時(shí)間大于0.8ms,數(shù)據(jù)則為1,否則為0
  112.                                                 gired_data[i]|=0x80;
  113.                                         ired_high_time=0;//重新清零,等待下一次計(jì)算時(shí)間
  114.                                 }
  115.                         }
  116.                 }
  117.                 if(gired_data[2]!=~gired_data[3])//校驗(yàn)控制碼與反碼,錯(cuò)誤則返回
  118.                 {
  119.                         for(i=0;i<4;i++)
  120.                                 gired_data[i]=0;
  121.                         return;
  122.                 }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

ID:262 發(fā)表于 2023-12-21 15:25 | 顯示全部樓層
這里有詳細(xì)的注釋,你看他的解碼函數(shù) 和你這個(gè)一樣的
http://www.zg4o1577.cn/bbs/dpj-108717-1.html
http://www.zg4o1577.cn/bbs/dpj-29835-1.html
回復(fù)

使用道具 舉報(bào)

ID:584814 發(fā)表于 2023-12-22 09:39 | 顯示全部樓層
感覺(jué)這個(gè)已經(jīng)注釋得很清楚了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日想夜夜操 | 国产精品嫩草影院精东 | 色综合久久天天综合网 | 日p视频免费看 | 999精彩视频 | 中文字幕一页二页 | 99亚洲| 国产欧美一区二区精品忘忧草 | 激情av在线 | 亚洲一区二区中文字幕 | 成人午夜毛片 | 欧美国产精品一区二区 | 成人免费网站www网站高清 | 久久久久久久久久久久久9999 | 男女免费在线观看视频 | 欧美精品在线一区 | 中文字幕精品一区二区三区精品 | 国产欧美日韩一区二区三区在线观看 | 中文字幕一区二区三区四区 | 亚洲成人一区二区 | 啪一啪在线视频 | 国产精品一区二区三区免费观看 | 亚洲精品福利视频 | 一级在线观看 | 亚洲精品小视频在线观看 | 在线观看国产wwwa级羞羞视频 | 亚洲先锋影音 | 亚洲欧美一区二区三区国产精品 | 九九精品在线 | 日韩视频 中文字幕 | 日韩一区二区视频 | 欧产日产国产精品视频 | 精品亚洲一区二区三区 | 欧日韩在线 | 欧美精品一区在线观看 | 日韩一区二区黄色片 | 古装人性做爰av网站 | 国产精品日本一区二区在线播放 | 久久亚洲一区二区三区四区 | 久久久久国产精品一区 | 国产精品精品3d动漫 |