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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6399|回復: 5
打印 上一主題 下一主題
收起左側

單片機模擬EV1527的發射程序,輸出是錯的

[復制鏈接]
跳轉到指定樓層
樓主


圖上紅色是keil 仿真輸出,藍色是是實際輸出,keil仿真是我想要的,但輸出是錯的不知道為什

單片機源程序
  1. #include<STC8.h>
  2. #define T_SYN_H 1 //發送狀態1 發送同步碼高電平,存儲同步碼高電平脈寬
  3. #define T_SYN_L 2 //發送狀態3 發送同步碼低電平,
  4. #define T_DATA_H 3 //發送狀態3 發送數據碼高電平,
  5. #define T_DATA_L 4 //接收狀態4 發送數據碼低電平,
  6. sbit RF_T =P3^4; //發射端口


  7. struct RF_Code
  8. {

  9. unsigned int y;
  10. unsigned char x2;
  11. };

  12. struct RF_Code RF_Send_Code={42405,2};
  13. unsigned char Send_Times=0;

  14. bit RF_T0_Send(struct RF_Code *SendCode)
  15. {
  16. static unsigned char RF_T_Step;
  17. static unsigned char i; //i發送編碼的字節數,j發送取位輔助變量,每次發射完成重新清零
  18. static unsigned char j;
  19. //static bit abit; static bit bbit;
  20. //Lcd_Show_Str(50,28,Num2Str(RF_T_Step,2,0),WHITE,BLUE,1); //測試 f(i==1)
  21. switch (RF_T_Step)
  22. {

  23. case T_SYN_H:
  24. //RF_R_STOP;
  25. P34=1; //同步碼高電平
  26. TL0 = 0x66; //8F FE 0.2ms@22.1184
  27. TH0 = 0xFC; //66 FC 0.5ms
  28. RF_T_Step=T_SYN_L;
  29. i=0;
  30. j=0x80;

  31. break;

  32. case T_SYN_L:
  33. P34=0; //同步碼低電平
  34. TL0 = 0x66; //5C D3 6.2ms@22.1184
  35. TH0 = 0x90; //66 90 15.5ms
  36. RF_T_Step=T_DATA_H;


  37. //RF_T_Step=T_SYN_H ;
  38. break;

  39. case T_DATA_H:
  40. P34=1; //數據碼高電平
  41. //abit=(((unsigned char *)SendCode)[i]) & j ;
  42. if( (((unsigned char *)SendCode)[i]) & j )

  43. {
  44. TL0 = 0x33; //AE FB 600us@22.1184
  45. TH0 = 0xF5; //33 F5 1500us
  46. }
  47. else
  48. {
  49. TL0 = 0x66; //8F FE 200us@22.1184
  50. TH0 = 0xFC; //66 FC 500US

  51. }
  52. RF_T_Step=T_DATA_L;
  53. //lcdShowChar(50,28,'3',WHITE,BLUE,1);
  54. break;

  55. case T_DATA_L:
  56. P34=0; //數據碼低電平
  57. //bbit=(((unsigned char *)SendCode)[i]) & j ;
  58. if( (((unsigned char *)SendCode)[i]) & j ) //(((unsigned char *)SendCode)[i-1]) & j
  59. {
  60. TL0 = 0x66; //8F FE 200us@22.1184
  61. TH0 = 0xFC; //66 FC 500US
  62. }
  63. else
  64. {
  65. TL0 = 0x33; //AE FB 600ms@22.1184
  66. TH0 = 0xF5; //33 F5 1500us

  67. }
  68. j >>=1;

  69. if(!j)
  70. {i++;
  71. j=0x80;
  72. }
  73. RF_T_Step = T_DATA_H;
  74. break;


  75. default:
  76. RF_T_Step = T_SYN_H;
  77. WDT_CONTR |=0x10; //喂狗
  78. break;
  79. }
  80. if(i==sizeof(*SendCode))
  81. { RF_T_Step = T_SYN_H; return 1; } // RF_T_Step = T_DATA_H;
  82. else { return 0;} //測試 f(i==1)
  83. }


  84. void Timer0Init(void) //10毫秒@22.1184MHz
  85. {
  86. //IPH |=0x08; IP |=0x00; //提到3級
  87. AUXR &= 0x7F; //定時器時鐘12T模式(cpu12分頻)
  88. TMOD &= 0xF0; //設置定時器模式 T0GATE=0,T0_C/T=0,T0M1=0,T0M0=0;16位自動重裝模式
  89. TL0 = 0x00; //設置定時初值
  90. TH0 = 0x00; //設置定時初值

  91. TF0 = 0; //清除TF0標志
  92. // TR0 = 1; //定時器0開始計時
  93. }



  94. void main()
  95. {
  96. unsigned long *ll ;
  97. ll=(unsigned long*)&RF_Send_Code;
  98. Timer0Init();
  99. ET0=1;//使能定時器0中斷

  100. EA=1;

  101. P3M1 &=0XEF; P3M0 |=0X10; //推挽輸出
  102. P34=0;
  103. //TL0=0XF0; TH0=0XFF; TR0=1;
  104. while(1)
  105. {
  106. if(!Send_Times) {Send_Times=15;TL0=0XF0; TH0=0XFF; TR0=1; }
  107. }
  108. }


  109. void Timer0_Isr() interrupt 1 //10毫秒@22.1184MHz
  110. {
  111. TF0 = 0; //清除TF0標志
  112. //lcdShowCC(140,5,"信",RED,GBLUE,1);//信號符號,不是‘信’ 字 測試
  113. if(Send_Times)
  114. {
  115. if(RF_T0_Send(&RF_Send_Code)) Send_Times--;
  116. //Lcd_Show_Str(50,28,Num2Str(Send_Times,2,0),WHITE,BLUE,1); //測試
  117. }
  118. else
  119. {
  120. RF_T=0;
  121. TR0=0; //發送完畢,停止Timer0
  122. //lcdShowCC(140,5,"信",BLACK,GBLUE,1);//信號符號,不是‘信’ 字 測試

  123. }

  124. }

復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:138119 發表于 2019-1-30 08:41 | 只看該作者
樓主先說明一下問題,是因為相位反了嗎?
回復

使用道具 舉報

板凳
ID:218365 發表于 2019-2-16 19:35 | 只看該作者
yfpc2006 發表于 2019-1-30 08:41
樓主先說明一下問題,是因為相位反了嗎?

相位反了,
我用軟件延時發送,就不會反相位
回復

使用道具 舉報

地板
ID:236699 發表于 2019-10-30 22:39 | 只看該作者
發射與接收的模塊廠家批次不同,有的會同時多個三極管,有的同時少個三極管,有的發射有、接收沒有,有的發射沒有、接收有。改一下輸出的正負邏輯就行。  原廠的遙控發射一般都多一個三級管取反,T寶上的幾元的發射小板就少一個三級管!
回復

使用道具 舉報

5#
ID:218365 發表于 2020-1-4 20:07 | 只看該作者
ztb096001 發表于 2019-10-30 22:39
發射與接收的模塊廠家批次不同,有的會同時多個三極管,有的同時少個三極管,有的發射有、接收沒有,有的發 ...

嗯,認同您的說法,謝謝
回復

使用道具 舉報

6#
ID:65237 發表于 2020-4-10 21:01 | 只看該作者
學習中 EV1527
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品久久久久久 | 久久亚洲欧美日韩精品专区 | 天天干夜夜操视频 | 一本一道久久a久久精品蜜桃 | 日韩精品一区二区在线观看 | 一级毛片免费完整视频 | 成人免费在线视频 | 中文天堂在线观看 | 午夜视频免费在线 | 91综合网 | 久久久久久电影 | 99r在线 | 日韩精品一区在线观看 | 五月综合激情婷婷 | 91精品一区 | 久久久999国产精品 中文字幕在线精品 | 天天天天天天操 | 中文字幕亚洲一区二区三区 | 亚洲精品久久久久国产 | 91久久北条麻妃一区二区三区 | 久久久国产亚洲精品 | 国产成人99久久亚洲综合精品 | 亚洲精品一区在线观看 | 国产精品久久久久久久久久免费看 | 日韩a视频 | 欧美午夜精品久久久久免费视 | 黄色播放| 亚洲精品二三区 | 一区亚洲| 亚洲精品乱码久久久久久9色 | 国产男人的天堂 | 亚洲精品一区二区三区在线 | 国产精品久久国产愉拍 | 精品欧美一区二区在线观看 | 久操国产 | 国产一区亚洲 | 欧美中文一区 | 精品美女 | 国产精品免费一区二区三区四区 | 成人欧美一区二区三区在线观看 | 亚洲最大成人综合 |