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

標題: PT2262 STC89C516單片機軟件解碼失敗怎么回事? [打印本頁]

作者: 51jia    時間: 2018-4-29 00:47
標題: PT2262 STC89C516單片機軟件解碼失敗怎么回事?
12M晶振,反碼方式解碼,數據輸入P3^2口,外部中斷0。請各位幫忙看看是那里出了問題,我現在沒有查到原因,本人先謝謝各位了!!!
我寫的代碼如下:
/*-----------------------------------------------------------------------------------------
說明:
1  反碼方式解碼4.7M 6.8K 1t147us 4t588us 12t1764us 124t18228us
2  編程思路:定時器測量脈沖寬度,長脈沖標記1,短脈沖標記0,共記24個脈沖保存于數組中與地址碼對比.
-------------------------------------------------------------------------------------------*/
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit din=P3^2;
  5. sbit d1=P1^0;
  6. sbit d2=P1^1;
  7. sbit d3=P1^2;
  8. sbit d4=P1^3;//4個解碼成功指示燈
  9. uchar b,c;
  10. uint a;
  11. bit datend=0;
  12. uchar dateok[24];
  13. void init();
  14. void delayus(uchar c);
  15. void delay160ms();
  16. void timer();
  17. void outcode();//輸出
  18. void main()
  19. {
  20.         init();
  21.         while(1)
  22.                 {
  23.                         outcode();
  24.                 }
  25. }
  26. void delayus(uchar c)//c=1 200us
  27. {
  28.     uchar a,b;
  29.     for(b=c;b>0;b--)
  30.         for(a=98;a>0;a--);
  31. }
  32. void delay160ms()
  33. {
  34.     uchar a,b,c;
  35.     for(c=193;c>0;c--)
  36.         for(b=118;b>0;b--)
  37.             for(a=2;a>0;a--);
  38. }

  39. void init()
  40. {
  41.         P1=0x00;
  42.         IT0=1;
  43.         EX0=1;
  44.         EA=1;
  45.         TMOD=0x09;
  46.         TH0=0;
  47.         TL0=0;
  48. }
  49. void int0() interrupt 0
  50. {
  51.         EX0=0;
  52.         timer();
  53.         if((a>17000)&&(a<19000))//同步碼確認
  54.                 {
  55.                         TH0=0;
  56.                         TL0=0;
  57.                         for(b=0;b<24;b++)
  58.                                 {
  59.                                         timer();
  60.                                         if((a>550)&&(a<620))
  61.                                                 {
  62.                                                         c=0x00;//窄脈沖標記0
  63.                                                         TH0=0;
  64.                                                         TL0=0;
  65.                                                         delayus(8);
  66.                                                 }
  67.                                         else if((a>1600)&&(a<1900))
  68.                                                 {
  69.                                                         c=0x01;//寬脈沖標記1
  70.                                                         TH0=0;
  71.                                                         TL0=0;
  72.                                                         delayus(2);
  73.                                                 }
  74.                                         dateok[b]=c;
  75.                                 }
  76.                                 datend=1;//解碼成功標志位
  77.                                 delay160ms();//150528us 等待第3第4組結束
  78.                                 EX0=1;        
  79.         }
  80.         else
  81.                 {
  82.                         TH0=0;
  83.                         TL0=0;
  84.                         EX0=1;
  85.                 }
  86. }
  87. void timer()//中斷字函數
  88. {
  89.         while(din);
  90.         TR0=1;
  91.         while(!din);
  92.         TR0=0;
  93.         a=TH0*256+TL0;
  94. }
  95. void outcode()//輸出
  96. {
  97.         if(datend==1)
  98.                                 {
  99.                                         datend=0;
  100.                                         if((dateok[0]==0)&&(dateok[1]==0)&&(dateok[2]==1)&&(dateok[3]==1)&&
  101.                                         (dateok[4]==1)&&(dateok[5]==0)&&(dateok[6]==0)&&(dateok[7]==0)&&
  102.                                         (dateok[8]==0)&&(dateok[9]==0)&&(dateok[10]==1)&&(dateok[11]==1)&&
  103.                                         (dateok[12]==1)&&(dateok[13]==1)&&(dateok[14]==0)&&(dateok[15]==0))//地址碼確認10f11001
  104.                                                 {//解碼后數據
  105.                                                         if((dateok[16]==0)&&(dateok[17]==0)&&(dateok[18]==1)&&(dateok[19]==1)&&
  106.                                                         (dateok[20]==1)&&(dateok[21]==1)&&(dateok[22]==1)&&(dateok[23]==1))//d0
  107.                                                                 {
  108.                                                                         d1=~d1;
  109.                                                                 }
  110.                                                         if((dateok[16]==1)&&(dateok[17]==1)&&(dateok[18]==0)&&(dateok[19]==0)&&
  111.                                                         (dateok[20]==1)&&(dateok[21]==1)&&(dateok[22]==1)&&(dateok[23]==1))//d1
  112.                                                                 {
  113.                                                                         d2=~d2;
  114.                                                                 }
  115.                                                         if((dateok[16]==1)&&(dateok[17]==1)&&(dateok[18]==1)&&(dateok[19]==1)&&
  116.                                                         (dateok[20]==0)&&(dateok[21]==0)&&(dateok[22]==1)&&(dateok[23]==1))//d2
  117.                                                                 {
  118.                                                                         d3=~d3;
  119.                                                                 }
  120.                                                         if((dateok[16]==1)&&(dateok[17]==1)&&(dateok[18]==1)&&(dateok[19]==1)&&
  121.                                                         (dateok[20]==1)&&(dateok[21]==1)&&(dateok[22]==0)&&(dateok[23]==0))//d3
  122.                                                                 {
  123.                                                                         d4=~d4;
  124.                                                                 }
  125.                                                         delayus(20);
  126.                                                 }
  127.                                 }
  128. }
復制代碼





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: av黄在线观看 | 欧美一级二级在线观看 | 在线一区二区国产 | 欧美黑人国产人伦爽爽爽 | 福利片在线| 成人亚洲 | 日韩欧美在线免费观看视频 | 九九热这里只有精品6 | 高清成人免费视频 | 国产原创在线观看 | 91精品国产综合久久精品 | 在线成人 | 一色一黄视频 | 五月激情综合 | 亚洲综合在线一区二区 | 99精品免费视频 | 天堂av中文在线 | 找个黄色片 | 成人免费网站在线 | 国内精品免费久久久久软件老师 | gav成人免费播放视频 | av在线免费观看不卡 | 国产精品国产a级 | 亚洲一区二区三区视频在线 | 久久69精品久久久久久久电影好 | 久久久一 | 日韩精品在线观看网站 | 成年人免费在线视频 | 日韩精品一区二区不卡 | 日韩有码一区二区三区 | 亚洲成人久久久 | 黑人精品欧美一区二区蜜桃 | 中文字幕精品一区二区三区精品 | 狠狠操天天干 | 高清免费av | 日韩欧美国产精品综合嫩v 一区中文字幕 | 国产美女一区二区三区 | 久久日韩粉嫩一区二区三区 | 欧美a在线看 | 91五月婷蜜桃综合 | 欧美亚洲国产日韩 |