標(biāo)題: PIC12F509,PIC12F508單片機(jī)仿真空調(diào)搖控器源程序 [打印本頁(yè)]

作者: guangshi_wq    時(shí)間: 2018-7-19 17:28
標(biāo)題: PIC12F509,PIC12F508單片機(jī)仿真空調(diào)搖控器源程序
本帖最后由 guangshi_wq 于 2018-7-30 20:39 編輯

制作出來(lái)的遙控器實(shí)物圖如下:


單片機(jī)源程序如下:
  1. #include "pic12f509.h"//下面我有的精彩點(diǎn)評(píng),不容錯(cuò)過(guò)

  2. //#include<htc.h>
  3. //  _CONFIG (0x02); //表示用內(nèi)部的RC震蕩器;
  4. // 配置文件在編程器寫入的時(shí)候指定選項(xiàng)
  5. //**************************************************
  6. //                       __________
  7. //               VDD-| 1             8 |-VSS
  8. //                GP5-| 2            7 |-GP0/DAT
  9. //                GP4-| 3            6 |-GP1/CLK
  10. //  GP3/RMCLR--| 4            5 |-GP2
  11. //                       |_________|
  12. //                 12F508
  13. //***************************************************
  14. //按鍵必須用以下三個(gè)腳,不然睡眠后不能喚醒;
  15. //發(fā)射二極管正極接電源,負(fù)極經(jīng)100歐電阻接5腳;
  16. #define uchar unsigned char
  17. #define uint unsigned int
  18. #define IR_out  GP2
  19. #define pwr_KEY GP1
  20. #define up_KEY  GP3
  21. #define down_KEY GP0

  22. union//定義一個(gè)可以位操作的結(jié)構(gòu)體
  23. {
  24. struct{
  25.        unsigned b0:1;
  26.        unsigned b1:1;
  27.        unsigned b2:1;
  28.        unsigned b3:1;
  29.        unsigned b4:1;
  30.        unsigned b5:1;
  31.        unsigned b6:1;
  32.        unsigned b7:1;
  33.       }oneBit;
  34.       unsigned char allBits;
  35. }myFlag;

  36. #define wHB myFlag.oneBit.b7
  37. #define wBYT myFlag.allBits

  38. const uchar chuai[]={0x41,0x49,0x45,0x4d,0x43,0x4b,0x47};//26度到32度
  39. static bit key;
  40. uchar ii;

  41. #define H 1
  42. #define L 0

  43. void init()
  44. {
  45.     TRISGPIO=0b11111011;//只有GP2輸出;
  46.     OPTION=0b00001000;//TIM0不用分頻器0x80;引腳變化可以喚醒,開(kāi)上拉
  47.     OSCCAL=0b00000000;//晶振頻率不校正.
  48. }

  49. void dly(uint Delay) /*延時(shí)t/0.5ms*/
  50.   {
  51.     uchar i=50;
  52.     while(--Delay)while(--i);
  53.    }


  54. start()
  55. {
  56.    uint i=342;
  57.   while(i--)//輸出9ms負(fù)脈沖;
  58.    { IR_out=L;ii=2;//輸出負(fù)脈沖
  59.      while(--ii);
  60.      IR_out=H;     //輸出正脈沖
  61.    }
  62.    i=171;
  63.    while(i--)//輸出4.5ms正脈沖;
  64.    { IR_out=H;ii=2;//輸出負(fù)脈沖
  65.      while(--ii);
  66.      IR_out=H;    //輸出正脈沖
  67.    }
  68. }
  69. output_0()
  70. {
  71.   uint i=19;
  72.   while(i--)//輸出9ms負(fù)脈沖;
  73.    { IR_out=L;ii=2;//輸出負(fù)脈沖
  74.      while(--ii);
  75.      IR_out=H;     //輸出正脈沖
  76.    }
  77.    i=26;
  78.    while(i--)//輸出4.5ms正脈沖;
  79.    { IR_out=H;ii=2;//輸出負(fù)脈沖
  80.      while(--ii);
  81.      IR_out=H;    //輸出正脈沖
  82.    }
  83. }
  84. output_1()
  85. {
  86.   uint i=19;
  87.   while(i--)//輸出9ms負(fù)脈沖;
  88.    { IR_out=L;ii=2;//輸出負(fù)脈沖
  89.      while(--ii);
  90.      IR_out=H;     //輸出正脈沖
  91.    }
  92.    i=66;
  93.    while(i--)//輸出4.5ms正脈沖;
  94.    { IR_out=H;ii=2;//輸出負(fù)脈沖
  95.      while(--ii);
  96.      IR_out=H;    //輸出正脈沖
  97.    }
  98. }
  99. void main()
  100. {
  101. uchar dat3=0,dat4=0,zz=0,zr=0;
  102. uchar dat1=0,dat2=0;
  103. init();
復(fù)制代碼

pic12f509.zip

1.47 KB, 下載次數(shù): 66, 下載積分: 黑幣 -5


作者: guangshi_wq    時(shí)間: 2018-7-29 20:51
沒(méi)有人點(diǎn)評(píng),自我點(diǎn)評(píng)一下,
第一,為什么這樣定義可位尋址的變量?
為什么別人能這樣定義位變量?
#define _BIT_TST(val,bitno) (val&_BV(bitno))
我試了很多辦法,C51的方法根本行不通,
最后發(fā)現(xiàn)和編譯器有關(guān).
第二,為什么不用定時(shí)器?
因?yàn)槎〞r(shí)器操作的時(shí)間用的周期太多,
第三,延時(shí)為什么不用子程序?
我實(shí)際試過(guò),子程序太費(fèi)時(shí);
第四,為什么低的時(shí)候要while(--ii);而高的時(shí)候不用?
第五,為什么不用for?
第六,為什么定義為局部變量不會(huì)被清0,
還有那個(gè),程序跑飛判斷.if(nFUN>6)nFUN=6;
第七,單片機(jī)睡了,喚醒了從哪兒開(kāi)始跑?
這個(gè)程序我在編程器上寫了幾十遍.
用示波器讀過(guò)頻率,38KHZ.
人家503的晶振把碼寫成了38KHZ,是為什么方法呢?
占空比也能滿足要求.
我從STC單片機(jī)上面移植過(guò)來(lái)的,
寫SLEEP把STC的單片機(jī)都寫死了.無(wú)法喚醒,無(wú)法再下載程序了.
花了很長(zhǎng)時(shí)間才寫通.
對(duì)你學(xué)習(xí)解碼有幫助,知已知彼.
空調(diào)的碼是48位.
對(duì)你幫助,留個(gè)言,感謝一下,不花黑幣,提個(gè)問(wèn)題也行啊.

睡不醒的單片機(jī).JPG (1.82 MB, 下載次數(shù): 90)

睡不醒的單片機(jī).JPG

作者: xiaoxx666    時(shí)間: 2018-7-30 16:24
51黑有你更精彩

作者: jkangk123    時(shí)間: 2018-7-30 17:11
給大哥點(diǎn)贊  分享好資料
作者: hjx5548    時(shí)間: 2018-8-12 06:46
有原理圖嗎?
作者: samtyo    時(shí)間: 2019-9-23 11:05
給大哥點(diǎn)贊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1