找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5242|回复: 5
打印 上一主题 下一主题
收起左侧

PIC12F509,PIC12F508单片机仿真空调摇控器源程序

  [复制链接]
跳转到指定楼层
楼主
ID:375003 发表于 2018-7-19 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 guangshi_wq 于 2018-7-30 20:39 编辑

制作出来的遥控器实物图如下:


单片机源程序如下:
  1. #include "pic12f509.h"//下面我有的精彩点评,不容错过

  2. //#include<htc.h>
  3. //  _CONFIG (0x02); //表示用内部的RC震荡器;
  4. // 配置文件在编程器写入的时候指定选项
  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. //按键必须用以下三个脚,不然睡眠后不能唤醒;
  15. //发射二极管正极接电源,负极经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//定义一个可以位操作的结构体
  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;引脚变化可以唤醒,开上拉
  47.     OSCCAL=0b00000000;//晶振频率不校正.
  48. }

  49. void dly(uint Delay) /*延时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负脉冲;
  58.    { IR_out=L;ii=2;//输出负脉冲
  59.      while(--ii);
  60.      IR_out=H;     //输出正脉冲
  61.    }
  62.    i=171;
  63.    while(i--)//输出4.5ms正脉冲;
  64.    { IR_out=H;ii=2;//输出负脉冲
  65.      while(--ii);
  66.      IR_out=H;    //输出正脉冲
  67.    }
  68. }
  69. output_0()
  70. {
  71.   uint i=19;
  72.   while(i--)//输出9ms负脉冲;
  73.    { IR_out=L;ii=2;//输出负脉冲
  74.      while(--ii);
  75.      IR_out=H;     //输出正脉冲
  76.    }
  77.    i=26;
  78.    while(i--)//输出4.5ms正脉冲;
  79.    { IR_out=H;ii=2;//输出负脉冲
  80.      while(--ii);
  81.      IR_out=H;    //输出正脉冲
  82.    }
  83. }
  84. output_1()
  85. {
  86.   uint i=19;
  87.   while(i--)//输出9ms负脉冲;
  88.    { IR_out=L;ii=2;//输出负脉冲
  89.      while(--ii);
  90.      IR_out=H;     //输出正脉冲
  91.    }
  92.    i=66;
  93.    while(i--)//输出4.5ms正脉冲;
  94.    { IR_out=H;ii=2;//输出负脉冲
  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();
复制代码

pic12f509.zip

1.47 KB, 下载次数: 65, 下载积分: 黑币 -5

评分

参与人数 4黑币 +66 收起 理由
jkangk123 + 5 很给力!
xiaoxx666 + 8 赞一个!
desig + 3 赞一个!实用的PIC资料。
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:375003 发表于 2018-7-29 20:51 | 只看该作者
没有人点评,自我点评一下,
第一,为什么这样定义可位寻址的变量?
为什么别人能这样定义位变量?
#define _BIT_TST(val,bitno) (val&_BV(bitno))
我试了很多办法,C51的方法根本行不通,
最后发现和编译器有关.
第二,为什么不用定时器?
因为定时器操作的时间用的周期太多,
第三,延时为什么不用子程序?
我实际试过,子程序太费时;
第四,为什么低的时候要while(--ii);而高的时候不用?
第五,为什么不用for?
第六,为什么定义为局部变量不会被清0,
还有那个,程序跑飞判断.if(nFUN>6)nFUN=6;
第七,单片机睡了,唤醒了从哪儿开始跑?
这个程序我在编程器上写了几十遍.
用示波器读过频率,38KHZ.
人家503的晶振把码写成了38KHZ,是为什么方法呢?
占空比也能满足要求.
我从STC单片机上面移植过来的,
写SLEEP把STC的单片机都写死了.无法唤醒,无法再下载程序了.
花了很长时间才写通.
对你学习解码有帮助,知已知彼.
空调的码是48位.
对你帮助,留个言,感谢一下,不花黑币,提个问题也行啊.

睡不醒的单片机.JPG (1.82 MB, 下载次数: 71)

睡不醒的单片机.JPG

评分

参与人数 2黑币 +95 收起 理由
jkangk123 + 5 共享资料的黑币奖励!
admin + 90 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:330538 发表于 2018-7-30 16:24 | 只看该作者
51黑有你更精彩
回复

使用道具 举报

地板
ID:338171 发表于 2018-7-30 17:11 | 只看该作者
给大哥点赞  分享好资料
回复

使用道具 举报

5#
ID:72649 发表于 2018-8-12 06:46 | 只看该作者
有原理图吗?
回复

使用道具 举报

6#
ID:379367 发表于 2019-9-23 11:05 | 只看该作者
给大哥点赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表