找回密码
 立即注册

QQ登录

只需一步,快速开始

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

HT66F004单片机继电器控制风扇源程序

[复制链接]
跳转到指定楼层
楼主
HT66F004

单片机源程序如下:
  1. #include "MyDefine.h"
  2. #include "DefineRAM.h"

  3. extern void ChuShiHua();
  4. extern void ChuShiHua();
  5. uint AD_CaiJi();
  6. extern void Key_ShiBie_fun();
  7. extern void Scan_Key();
  8. extern void Release_Laser();


  9. void main()
  10. {
  11.         uchar i,j;
  12.         ChuShiHua();
  13.         Key_Buzzer_Count=25;
  14.        
  15.         Enter_Halt_3s_DaoJiShi_flag = 1;                //上电,如果没有开机键,就进入休眠倒计时
  16.        
  17.         while(1)
  18.         {
  19.                 _clrwdt1();
  20.                 _clrwdt2();
  21.                
  22.                 if(Key_Debounce_flag==1)
  23.                 {
  24.                         Key_Debounce_flag = 0;
  25.                                                
  26.                         Scan_Key();
  27.                                
  28.                         if(AD_CaiYang_flag==1)
  29.                         {
  30.                                 AD_CaiYang_flag = 0;
  31.                                 if(Power_flag==1)
  32.                                 {
  33.                                         if(Mode_flag == 0)                        //松开自锁按键时,才要去检测低电压
  34.                                         {
  35.                                                 u16_VCC_AD_Value=AD_CaiJi();
  36.                                                        
  37.                                                 if(u16_VCC_AD_Value<VDD_3p0AD_Value)
  38.                                                 {
  39.                                                         if(Power_VDD_Index!=2)
  40.                                                         {
  41.                                                                 Power_VDD_Index = 2;                                       
  42.                                                                 Backup_pwm_flag = PWM_flag;
  43.                                                                 PWM_flag = 0;                                                                                                                                  
  44.                                                         }       
  45.                                                         Laser_no10K_OFF
  46.                                                         LED_B_Pin = LED_OFF;
  47.                                                         LED_G_Pin = LED_OFF;        LED_R_Pin = LED_ON;
  48.                                                 }
  49.                                                 else
  50.                                                 {
  51.                                                          if(u16_VCC_AD_Value<VDD_3p3AD_Value)
  52.                                                         {
  53.                                                                 if(Power_VDD_Index!=1)
  54.                                                                 {
  55.                                                                         if(Power_VDD_Index == 2)                                //恢复为低压关闭前的状态
  56.                                                                         {
  57.                                                                                 PWM_flag=Backup_pwm_flag;       
  58.                                                                         }
  59.                                                                         Power_VDD_Index = 1;                  LED_G_Pin = LED_OFF;        LED_R_Pin = LED_ON;       
  60.                                                                 }       
  61.                                                         }
  62.                                                         else
  63.                                                         {
  64.                                                                 if(Power_VDD_Index!=0)
  65.                                                                 {
  66.                                                                         if(Power_VDD_Index == 2)                                //恢复为低压关闭前的状态
  67.                                                                         {
  68.                                                                                 PWM_flag=Backup_pwm_flag;
  69.                                                                         }                                               
  70.                                                                        
  71.                                                                         Power_VDD_Index = 0;                LED_G_Pin = LED_ON;                LED_R_Pin = LED_OFF;       
  72.                                                                 }
  73.                                                         }
  74.                                                        
  75.                                                         if(ALM_flag==0)
  76.                                                         {
  77.                                                                 if(PWM_flag==0)
  78.                                                                 {
  79.                                                                         if(Power_flag==1)
  80.                                                                         {
  81.                                                                                 LED_B_Pin = LED_OFF;        Laser_no10K_ON                                                                                               
  82.                                                                         }
  83.                                                                         else
  84.                                                                         {
  85.                                                                                 Laser_no10K_OFF
  86.                                                                                 LED_R_Pin = LED_G_Pin = LED_B_Pin = LED_OFF;
  87.                                                                         }
  88.                                                                 }
  89.                                                                 else
  90.                                                                 {
  91.                                                                         LED_B_Pin = LED_ON;                        Laser_10K                                                       
  92.                                                                 }
  93.                                                         }                                       
  94.                                                 }
  95.                                         }
  96.                                 }
  97.                                 else
  98.                                 {
  99.                                         KeyCZ_flag = 0;                ALM_flag = 0;        Power_VDD_Index = 0;                                        //关机,清零状态标志
  100.                                         PWM_flag = 0;
  101.                                        
  102.                                         Laser_no10K_OFF
  103.                                         LED_R_Pin = LED_G_Pin = LED_B_Pin = LED_OFF;                               
  104.                                 }
  105.                         }               
  106.                                                                        
  107.                 }               
  108.                
  109.                 if(Yes_Halt_flag==1)
  110.                 {
  111.                         Yes_Halt_flag = 0;
  112.                        
  113.                         _wdtc  = 0b10101100;                                        //禁止WDT
  114.                         _clrwdt1();        _clrwdt2();
  115.                         Key_PWM_PinC = 0;        Key_PWM_Pin = 0;        //输出为0,避免按键按下时,耗电
  116.                         Key_Mode_PinC = 0;        Key_Mode_Pin=0;               
  117.                                                        
  118.                         _halt();
  119.                         _clrwdt1();        _clrwdt2();       
  120.                         _wdtc  = 0b01010100;                                        //内部LIRC                128ms       
  121.                         Key_PWM_PinC = 1;        Key_PWM_Pin = 1;        //恢复按键口
  122.                         Key_Mode_PinC = 1;        Key_Mode_Pin= 1;                       
  123.                        
  124.                         u16_Enter_Halt_Count = 0;
  125.                         Enter_Halt_3s_DaoJiShi_flag = 1;                //如果被唤醒,依旧进入休眠倒计时,除非真的有按键
  126.                                                
  127.                 }                       
  128.         }
  129. }
复制代码

所有资料51hei提供下载:
87361046HT66F002.rar (153.64 KB, 下载次数: 62)


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

使用道具 举报

沙发
ID:425466 发表于 2018-11-13 10:26 | 只看该作者
自己支持下
回复

使用道具 举报

板凳
ID:387856 发表于 2018-11-29 15:25 | 只看该作者
楼主你确定您这个是合泰的单片机??合泰的单片机能用KEILL编译!!!????????????合泰单片机只能用合泰的编译器。
回复

使用道具 举报

地板
ID:465596 发表于 2019-1-20 17:36 | 只看该作者
支持,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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