亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC8H2K12U單片機制作電風扇遙控器

查看數: 2127 | 評論數: 6 | 收藏 3
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2024-9-22 11:33

正文摘要:

利用STC8H2K12U單片機制作電風扇遙控器,遇到問題求助大家幫助。 1、遙控不能控制,遙控頭輸入口P32口和P10口共用,要把P10口設置為高阻輸入。 2、遙控定時功能不正常, 原理圖和PCB圖如下: 問題2, ...

回復

ID:237797 發表于 2024-9-23 19:19

謝謝你的幫助,可以實現定時了。
ID:161164 發表于 2024-9-23 09:35

ID:237797 發表于 2024-9-23 07:49
lkc8210 發表于 2024-9-22 21:07
代碼不全
定時關機按鍵使能定時關機標志位
定時關機標志位使能后才開始計時
  1. /***********************
  2. OUT(低電平可控硅導通) P54 1     8 P33 P11(蜂鳴器輸出,高電平有效)
  3.                                                                                         VCC 2     7 P32 P10 INTN0(遙控輸入)
  4.                       CAP 3     6 P31
  5.                       GND 4     5 P30(按鍵)

  6. 遙控器鍵碼值
  7.                         01
  8.                        
  9.                         00
  10.                        
  11.                         01                        09
  12.                        
  13.                                         05
  14.                                        
  15.                         02        06        0A
  16.                        
  17.                                         04
  18.                                        
  19.                         03        07        0B
  20.                        
  21.                         40      48
  22.                        
  23.                                         44
  24. ***********************/
  25. #include <STC8h.h>
  26. #include <intrins.h>

  27. /* IO引腳分配定義 */
  28. sbit LED = P5^4;
  29. sbit BUZZ = P3^3;
  30. sbit KEY = P3^0;
  31. bit LEDflag = 0; //0關閉風扇,1打開風扇
  32. unsigned  char LEDSta = 1; //1,關閉風扇
  33. unsigned char i = 0;

  34. bit flag20ms = 0;
  35. unsigned int flag1s;

  36. extern bit irflag;
  37. extern unsigned char ircode[4];
  38. extern void InitInfrared();

  39. void kongzhi();
  40. void Intimer1Init(); //12MHZ12T 1US
  41. void myInit();

  42. void main()
  43. {
  44.         unsigned int cnt = 0;
  45.        
  46.         myInit();
  47.                
  48.         EA = 1;      //開總中斷       
  49.        
  50.         Intimer1Init();
  51.         InitInfrared();   //初始化紅外功能

  52.         LED = 1;
  53.         while (1)
  54.         {
  55.                 if(flag20ms==1)
  56.                 {
  57.                         flag20ms = 0;
  58.                         kongzhi();                       
  59.                 }               
  60.         }
  61. }

  62. void myInit()
  63. {
  64.         P_SW2 |= 0X80;
  65.        
  66.         P0M0 = 0XFF;
  67.         P0M1 = 0X00;
  68.         P1M0 = 0x00;
  69.         P1M1 = 0x03;
  70.         P2M0 = 0XFF;
  71.         P2M1 = 0X00;
  72.         P3M0 = 0XFB;
  73.         P3M1 = 0X00;
  74.         P4M0 = 0XFF;
  75.         P4M1 = 0X00;
  76.         P5M0 = 0XFF;
  77.         P5M1 = 0X00;
  78.        
  79.         LED = 1;
  80. }


  81. void Delay20ms(void)        //@11.0592MHz
  82. {
  83.         unsigned char data i, j, k;

  84.         i = 2;
  85.         j = 32;
  86.         k = 60;
  87.         do
  88.         {
  89.                 do
  90.                 {
  91.                         while (--k);
  92.                 } while (--j);
  93.         } while (--i);
  94. }

  95. void kongzhi()
  96. {       
  97.         if (irflag)  //接收到紅外數據時刷新顯示
  98.                 {
  99.                         irflag = 0;
  100.                         if (ircode[2] == 0x01)  //0x01為+鍵碼ON,開風扇
  101.                         {
  102.                                 LEDflag = 1;
  103.                                 LEDSta = 0;
  104.                         }

  105.                         else if (ircode[2] == 0x09)  //0x09為-鍵碼OFF,關風扇
  106.                         {
  107.                                 LEDflag = 0;
  108.                                 LEDSta = 1;
  109.                         }
  110.                         else if ((ircode[2] == 0x40)&&(1==LEDflag))  //0x40為-鍵碼3H,風扇1檔風,最大
  111.                         {
  112.                                 LEDflag = 1;
  113.                                 LEDSta = 2;
  114.                         }
  115.                         else if ((ircode[2] == 0x48)&&(1==LEDflag))  //0x48為-鍵碼5H,風扇2檔風,最次大
  116.                         {
  117.                                 LEDflag = 1;
  118.                                 LEDSta = 3;
  119.                         }
  120.                         else if ((ircode[2] == 0x44)&&(1==LEDflag))  //0x44為-鍵碼8H,風扇3檔風,最小
  121.                         {
  122.                                 LEDflag = 1;
  123.                                 LEDSta = 4;                                                                                               
  124.                         }
  125.                         else if((ircode[2] == 0x02)&&(1==LEDflag)) //+ 遙控定時關機按鍵
  126.                         {
  127.                                 if(flag1s>=10)
  128.                                 {
  129.                                         LEDflag = 0;
  130.                                         LEDSta = 1;               
  131.                                 }                                       
  132.                         }                                       
  133.         }
  134.        
  135.         switch(LEDSta)
  136.         {

  137.                 case 0:LED = 0;break;
  138.                 case 1:LED = 1;break;
  139.                 case 2:LED = 0;break;
  140.                 case 3:LED = 0;
  141.                                         Delay20ms();Delay20ms();Delay20ms();
  142.                                         Delay20ms();Delay20ms();Delay20ms();
  143.                                         Delay20ms();Delay20ms();Delay20ms();
  144.                                         Delay20ms();Delay20ms();Delay20ms();
  145.                                         Delay20ms();
  146.                                         LED = 1;
  147.                                         Delay20ms();break;
  148.                 case 4:LED = 0;
  149.                                         Delay20ms();Delay20ms();Delay20ms();
  150.                                         Delay20ms();Delay20ms();Delay20ms();
  151.                                         Delay20ms();
  152.                                         LED = 1;                                                       
  153.                                         Delay20ms();
  154.                                         break;
  155.                 default:break;
  156.         }
  157. }

  158. void Intimer1Init() //12MHZ12T 1mS
  159. {
  160.         TMOD &= 0X0F;
  161.         TMOD |= 0X10;
  162.         TH1 = 0XFC;
  163.         TL1 = 0X18;
  164.         ET1 = 1;
  165.         TR1 = 1;
  166. }


  167. void Intimer1() interrupt 3
  168. {
  169.         static unsigned char cnt = 0;
  170.         static unsigned int cnt1s = 0;
  171.        
  172.         TH1 = 0XFC;
  173.         TL1 = 0X18;
  174.        
  175.         cnt++;
  176.         if(cnt>=20)
  177.         {
  178.                 cnt = 0;
  179.                 flag20ms = 1;
  180.         }
  181.         cnt1s++;
  182.         if(cnt1s>=1000)
  183.         {
  184.                 cnt1s = 0;
  185.                 if(flag1s<65535)
  186.                 {
  187.                         flag1s++;       
  188.                 }
  189.         }
  190. }

復制代碼
ID:237797 發表于 2024-9-23 07:44
lkc8210 發表于 2024-9-22 21:07
代碼不全
定時關機按鍵使能定時關機標志位
定時關機標志位使能后才開始計時

謝謝你的回答,我直接先試試,再把全部代碼傳上來。
ID:161164 發表于 2024-9-22 21:07
代碼不全
定時關機按鍵使能定時關機標志位
定時關機標志位使能后才開始計時
時間到,關機,清零計時及定時關機標志位
ID:688428 發表于 2024-9-22 17:17
學習了

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表