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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

HC15P013A0_dome

[復制鏈接]
跳轉到指定樓層
樓主
ID:1135245 發表于 2024-11-4 10:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include "holychip_define.h"
  2. #include "inital.h"
  3. #include "T0_INTERRUPT.h"
  4. ////////////////////////////////////////////////////////////////////////
  5. ////////////////////////////          子程序        ////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////
  7. //******************************延時子程序******************************
  8. /*
  9. uS延時函數,含有輸入參數 unsigned char t,無返回值
  10. unsigned char 是定義無符號字符變量,其值的范圍是
  11. 0~255 精確延時請使用匯編,大致延時
  12. ------------------------------------------------*/
  13. void DelayUs(unsigned char t)
  14. {   
  15. while(--t);
  16. }
  17. /*------------------------------------------------
  18. mS延時函數,含有輸入參數 unsigned int t,無返回值
  19. unsigned int 是定義無符號字符變量,其值的范圍是
  20. 0~1024 精確延時請使用匯編
  21. ------------------------------------------------*/
  22. void DelayMs(unsigned int t)
  23. {
  24.         unsigned char count = 195;          
  25.         while(t--)
  26.         {
  27.                 while(count--);
  28.         }
  29. }
  30. ////////////////////////////////////////////////////////////////////////
  31. ////////////////////////////          變量定義        ////////////////////////////
  32. ////////////////////////////////////////////////////////////////////////

  33. //typedef unsigned char uchar;
  34. //typedef unsigned int uint;
  35. unsigned char timer_5ms=0;
  36. unsigned char key1_press_time=0;
  37. unsigned char key1_up_time=0;
  38. unsigned char key1_hold=0;
  39. unsigned char on=0;
  40. unsigned char k_on=0;
  41. unsigned char time1=0;
  42. unsigned char time2=0;
  43. //unsigned char time3=0;
  44. ////////////////////////////////////////////////////////////////////////
  45. ////////////////////////////          主程序        ////////////////////////////
  46. ////////////////////////////////////////////////////////////////////////

  47. void pwm_data()
  48. {                       
  49.         T1IE = 0;
  50. //        GIE  = 0;        
  51.         T1   = 0xF4;        //        244
  52.         T1LOAD = 0x34;        //重載  52
  53.         PWM0P = 26;                //占空比
  54.         T1CON = 0xC0;//11000000
  55. }
  56. void S1_scan()  
  57. {
  58.         if(!PORTB4)
  59.         {
  60.                 key1_up_time=0;
  61.                 key1_press_time++;
  62.                 if(key1_press_time>=6)
  63.                 {
  64.                         key1_press_time = 0;
  65.                         if(!key1_hold)
  66.                         {
  67.                                 key1_hold = 1;
  68.                                 on=1;
  69.                                 time1=0;
  70.                                 time2=0;
  71.                                 pwm_data();
  72.                         }
  73.                 }
  74.         }
  75.         else
  76.         {
  77.                 key1_press_time = 0;
  78.                 key1_up_time++;
  79.                 if(key1_up_time >= 6)
  80.                 {
  81.                         key1_up_time = 0;
  82.                         key1_hold = 0;
  83.                         k_on=0;
  84.                         on=0;
  85.                 }
  86.         }       
  87. }
  88. void        play1()
  89. {
  90.         if(on==1)
  91.         {
  92.                 PORTB0=0;
  93.                 time1++;
  94.                 if(time1>=100)
  95.                 {
  96.                         time1=0;
  97.                         time2++;
  98.                         if(time2>=200)
  99.                         {
  100.                                 time2=0;
  101.                                 on=0;
  102.                                 T1   = 0x00;
  103.                                 PORTB2=0;
  104.                         }
  105.                 }       
  106.         }
  107.         else
  108.         {       
  109.                 T1CON   = 0x00;
  110.                 PORTB2=0;
  111.                 PORTB0=1;
  112.         }
  113. }
  114. void        d_sleep()
  115. {
  116.         if(PORTB4&&key1_hold==0)
  117.         {
  118.                 if(!on)
  119.                 {
  120.                         if(!k_on)
  121.                         {
  122.                                 time1=0;
  123.                                 time2=0;
  124.                                 T1CON   = 0x00;
  125.                                 PORTB2=0;
  126.                                 PORTB0=1;
  127.                                 PORTB5=0;
  128.                                
  129.                                 TRISB=0X10;                //PORTB1端口為輸入
  130.                                 IOCB=0X10;                //使能PORTB1端口為電平變化中斷
  131.                                
  132.                                 PBIF=0;                        // PORTB電平變化中斷請求標志清零
  133.                                 PBIE=1;                        //使能PORTB電平變化中斷

  134.                                 GIE=1;                        //使能GIE
  135.                                
  136.                                
  137.                                 #asm
  138.                                 sleep
  139.                                 #endasm;
  140.                         }
  141.                 }
  142.         }
  143. }
  144. void main(void)
  145. {
  146.         inital();                                        //端口初始化
  147.         DelayMs(100);                                //延時等待系統供電穩定
  148.         T0_interrupt_inital();                //T0定時中斷初始化
  149.        
  150. //        T1=0XFF;
  151. //        T1LOAD=0X31;                //設置T1周期,延時5ms,理論值為0X32,由于需要補償其他語句的延時所以需要試湊為0X31
  152. //        T1CON=0X01;                        //設置分頻比1:2
  153. ///        T1IE=1;                                //使能T1中斷
  154. //        GIE=1;                                //使能全局中斷
  155. //        T1EN=1;                                //使能T1
  156.        
  157. //        pwm_data();
  158.         while(1)
  159.         {       
  160.                
  161.         }
  162. }
  163. //*****************************中斷服務程序*****************************
  164. //進中斷時間=1/(時鐘源/xT/分頻比)*(256-T0初值)
  165. void interrupt Timer0_Isr(void)
  166. {
  167.         if(T0IF)                                //Judge T0IF
  168.         {
  169.                 T0IF=0;                                //Clear T0IF
  170.                 T0=100;                        //重置T0值,延時5ms,理論值為CE,由于需要補償其他語句的延時所以需要試湊為D5
  171.                 timer_5ms++;
  172.                 if(timer_5ms>=12)
  173.                 {
  174.                         timer_5ms=0;
  175.                         if(!PORTB5)
  176.                         {
  177.                                 PORTB5=1;
  178.                         }
  179.                         else
  180.                         {
  181.                                 PORTB5=0;
  182.                         }
  183.                         S1_scan();
  184.                         play1();
  185.                         d_sleep();       
  186.                 }       
  187.         }
  188.         if(PBIF)                                        //Judge PBIF
  189.         {
  190.                 PBIF=0;                                        //Clear PBIF
  191.                 k_on=1;       
  192.         }
  193. }
復制代碼

原理圖: 無
仿真: 無
代碼: HC15P013A0_dome.7z (112.61 KB, 下載次數: 3)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产男女猛烈无遮掩视频免费网站 | 久久在线免费 | 狠狠干影院 | 久久精品二区亚洲w码 | 久久久久网站 | 成人免费视频久久 | 午夜男人免费视频 | 黄a免费看 | h片在线看 | 中文字幕成人在线 | 久草视频在 | 久久亚| 国产精品7777777 | 久久久久久久久久久丰满 | 国产99久久精品一区二区300 | 精品一区二区三 | 国产一区二区三区四区 | 国产精品久久久久久久久免费樱桃 | 激情久久网 | 亚洲国产日韩欧美 | 久久久久久亚洲国产精品 | 一区二区三区不卡视频 | 久久精品一 | 欧美成人精品一区 | 99视频在线看 | 亚洲欧美在线观看 | 久久伊人操 | 日本精品视频一区二区 | 亚洲综合国产精品 | 国产精品久久久久久吹潮 | 国产精品色一区二区三区 | 亚洲国产黄色av | 日韩中文一区二区三区 | 蜜桃av鲁一鲁一鲁一鲁 | 国产最新视频在线 | 国产一区中文字幕 | 亚洲午夜精品 | 久色激情 | 国产精品高潮呻吟久久av野狼 | 91超碰在线 | 日韩二区 |