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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1242|回復: 0
收起左側

單片機pwm設計案例

[復制鏈接]
ID:991158 發表于 2021-12-12 11:23 | 顯示全部樓層 |閱讀模式
  1. #include<reg51.h>


  2. #define uint unsigned int
  3. #define uchar unsigned char                                                         

  4. uchar time;
  5. double count=26;        //定義占空比,并初始占空比為26%
  6. sbit PWM=P2^0;      //P2^0口輸出PWM
  7. sbit key_add=P3^4;   //電機加速的按鍵 的I/O口
  8. sbit key_dec=P3^5;   //電機減速的按鍵 的I/O口


  9. /************函數聲明**************/
  10. void delayxms(uint z); //延時
  11. void Motor_add();          //電機加速,即增加占空比
  12. void Motor_dec();           //電機減速,即減少占空比
  13. void timer0_init();                //定時器0初始化

  14. /*********主函數********************/
  15. void main()
  16. {         
  17.         timer0_init();
  18.         delayxms(5);
  19.         while(1)
  20.         {
  21.          Motor_add();
  22.          Motor_dec();
  23.         }
  24. }

  25. /****************延時處理**********************/
  26. void delayxms(uint z) //延時xms程序
  27. {
  28.     uint x,y;
  29.         for(y=z;x>0;x--)
  30.                 for(y=110;y>0;y--);
  31. }


  32. void Motor_add()  //電機加速
  33. {
  34.   if(key_add==0)
  35.   {
  36.           delayxms(2); //此處時間不能太長,否者會的中斷產生沖突
  37.   if(key_add==0)
  38.   {
  39.           count+=0.5;        //每按一次加速按鍵占空比加0.5
  40.    if(count>=32)            //限定占空比上限
  41.         {
  42.          count=32;
  43.         }
  44.   }
  45.         while(!key_add);
  46.   }
  47. }

  48. void Motor_dec()//電機減速
  49. {
  50. if(key_dec==0)
  51. {
  52.   delayxms(2);//此處時間不能太長,否者會的中斷產生沖突
  53.   if(key_dec==0)
  54.   {
  55.           count-=0.5;                 //每按一次減速按鍵占空比減0.5
  56.    if(count<=25)    //限定占空比下限
  57.    {
  58.         count=25;
  59.    }
  60.   }
  61.         while(!key_dec);
  62.    }
  63. }

  64. /***********定時器0初始化***********/
  65. void timer0_init()
  66. {
  67.   TMOD=0x01; //定時器0工作于方式1
  68.   TH0=(65536-10)/256;
  69.   TL0=(65536-10)%256;
  70.   TR0=1;
  71.   ET0=1;
  72.   EA=1;
  73. }

  74. /**************定時0中斷處理******************/
  75. void timer0_int() interrupt 1
  76. {
  77.         
  78.   TR0=0;    //設置定時器初值期間,關閉定時器
  79.   TH0=(65536-10)/256;
  80.   TL0=(65536-10)%256;
  81.   TR0=1;
  82.          
  83.   time++;
  84.   if(time<count)          //count為占空比
  85.   {
  86.         PWM=1;           //輸出高電平
  87.   }
  88.   else
  89.         PWM=0;        
  90.   if(time>=100)
  91.   {
  92.         time=0;
  93.   }
  94. }
復制代碼


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产乱码久久久久久久 | 亚洲精品视频三区 | 二区视频 | 中文字幕在线观看一区 | 亚洲精品视频在线 | 亚洲一区毛片 | 亚洲欧美另类在线观看 | 亚洲电影免费 | 久久伊人久久 | 成人国产网站 | 日韩欧美国产一区二区 | 日本在线观看视频 | 日日拍夜夜 | 国产一区二区三区四区在线观看 | 日韩精品一区二区三区在线播放 | 综合色播 | 亚洲视频中文字幕 | 欧美日韩中文在线 | 欧美精品乱码久久久久久按摩 | av在线天堂网| 97色在线观看免费视频 | 一区二区三区四区在线 | 精品一区二区三区在线播放 | 日韩在线国产 | 国产98色在线 | 日韩 | 国产精品一卡二卡三卡 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | a级在线免费观看 | 超碰激情| 黄网站在线播放 | 欧美电影免费观看 | 亚洲免费三级 | 国产精品高潮呻吟久久久久 | 久久国产一区二区三区 | 欧美日韩免费视频 | 秋霞电影院午夜伦 | aa级毛片毛片免费观看久 | 日韩精品免费视频 | 自拍偷拍一区二区三区 | 亚洲精品区 | 国产精品美女 |