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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

電機調速+1602顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:518059 發表于 2021-1-5 13:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg51.h>
  2. #include"lcd.h"

  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. unsigned char table2[]={"Speed control   "};
  6. unsigned char table1[]={"Model:1      OFF"};
  7. sbit PWM_OUT = P1^0;
  8. sbit KEY1 = P3^1;  //    ON/OFF
  9. sbit KEY2 = P3^0; //     1檔
  10. sbit KEY3 = P3^2; //     2檔
  11. sbit KEY4 = P3^3; //     3檔

  12. uchar heigh = 1;  //檔位大小標志  1:1檔  2:2檔  3:3檔
  13. bit ON_OFF = 0;   //0:OFF 1:ON
  14. uchar time_1ms = 0;

  15. void T0_init();
  16. void Delay5ms();        //@11.0592MHz
  17. void kaiguan()
  18. {
  19.     if(ON_OFF == 0)
  20.     {
  21.         LcdWriteCom(0x80+0x40+13);
  22.         LcdWriteData('O');
  23.         LcdWriteCom(0x80+0x40+14);
  24.         LcdWriteData('F');
  25.         LcdWriteCom(0x80+0x40+15);
  26.         LcdWriteData('F');
  27.     }
  28.     else
  29.     {
  30.         LcdWriteCom(0x80+0x40+13);
  31.         LcdWriteData(' ');
  32.         LcdWriteCom(0x80+0x40+14);
  33.         LcdWriteData('O');
  34.         LcdWriteCom(0x80+0x40+15);
  35.         LcdWriteData('N');
  36.     }
  37. }

  38. void main()
  39. {
  40.     unsigned char i,j;
  41.     LcdInit();
  42.     T0_init();
  43.     for(i=0;i<16;i++)
  44.     {
  45.         LcdWriteCom(0x80+i);
  46.         LcdWriteData(table2[i]);   
  47.     }
  48.     for(j=0;j<16;j++)
  49.     {
  50.         LcdWriteCom(0x80+0x40+j);
  51.         LcdWriteData(table1[j]);   
  52.     }
  53.    
  54.     while(1)
  55.     {
  56.         //開關按鍵檢測
  57.         if(KEY1 == 0)
  58.         {
  59.             Delay5ms();//軟件按鍵消抖處理
  60.             if(KEY1 == 0)
  61.             {
  62.                 ON_OFF = !ON_OFF;
  63.             }
  64.             while(KEY1 == 0);//按鍵松手檢測
  65.         }
  66.         
  67.         //1檔按鍵檢測
  68.         if(KEY2 == 0)
  69.         {
  70.             Delay5ms();//軟件按鍵消抖處理
  71.             if(KEY2 == 0)
  72.             {
  73.                 heigh = 1;
  74.             }
  75.             while(KEY2 == 0);//按鍵松手檢測
  76.         }

  77.         //2檔按鍵檢測
  78.         if(KEY3 == 0)
  79.         {
  80.             Delay5ms();//軟件按鍵消抖處理
  81.             if(KEY3 == 0)
  82.             {
  83.                 heigh = 2;
  84.             }
  85.             while(KEY3 == 0);//按鍵松手檢測
  86.         }
  87.    
  88.         //3檔按鍵檢測
  89.         if(KEY4 == 0)
  90.         {
  91.             Delay5ms();//軟件按鍵消抖處理
  92.             if(KEY4 == 0)
  93.             {
  94.                 heigh = 3;
  95.             }
  96.             while(KEY4 == 0);//按鍵松手檢測
  97.         }
  98.         LcdWriteCom(0x80+0x40+6);
  99.         LcdWriteData('0'+heigh);
  100.         kaiguan();
  101.     }
  102.    
  103.    
  104. }

  105. /*定時器0初始化函數*/
  106. void T0_init()
  107. {
  108.     TMOD = 0X01;            //定時器0工作模式1
  109.     TH0 = (65536-1000)/256;
  110.     TL0 = (65536-1000)%256; //定時中斷時間為1MS
  111.     EA = 1;                 //允許總中斷
  112.     ET0 = 1;                //允許定時器0中斷
  113.     TR0 =  1;              //開始計時
  114. }

  115. void Delay5ms()        //@11.0592MHz
  116. {
  117.     unsigned char i, j;

  118.     i = 18;
  119.     j = 244;
  120.     do
  121.     {
  122.         while (--j);
  123.     } while (--i);
  124. }

  125. void time0() interrupt 1
  126. {
  127.    
  128.     time_1ms++;
  129.     if(time_1ms >= 10) //脈沖周期為10MS
  130.         time_1ms = 0;
  131.    
  132.    
  133.     if(ON_OFF == 1)
  134.     {
  135.       if(heigh == 1)  //如果是1檔
  136.         {
  137.             if(time_1ms<=4)
  138.             {
  139.                 PWM_OUT =1;
  140.             }
  141.             else PWM_OUT = 0;
  142.         }
  143.         
  144.       if(heigh == 2)  //如果是2檔
  145.         {
  146.             if(time_1ms<=7)
  147.             {
  148.                 PWM_OUT = 1;
  149.             }
  150.             else PWM_OUT = 0;
  151.         }
  152.         
  153.       if(heigh == 3)  //如果是3檔
  154.         {
  155.             PWM_OUT = 1;
  156.         }
  157.     }
  158.    
  159.     else PWM_OUT =0;
  160.    
  161.     TH0 = (65536-1000)/256;
  162.     TL0 = (65536-1000)%256; //定時中斷時間為1MS
  163. }
復制代碼

電機調速+1602顯示.zip

33.07 KB, 下載次數: 10, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2021-1-5 17:15 | 只看該作者
直流電機還是步進電機能分享下電路圖嗎?
回復

使用道具 舉報

板凳
ID:518059 發表于 2021-1-10 21:14 | 只看該作者
51hei團團 發表于 2021-1-5 17:15
直流電機還是步進電機能分享下電路圖嗎?

步進電機,直流電機原理不同
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 青青久久久 | 亚洲精品久久久久久下一站 | 亚洲图片一区二区三区 | 国产一区二区精品在线观看 | 2020天天操| 夜夜爆操 | 国产精品自拍一区 | 成人99| 久久性| 欧美日韩三级在线观看 | 国产精品免费播放 | 国产日韩欧美二区 | 亚洲五码久久 | 黄色小视频大全 | 狠狠做深爱婷婷综合一区 | 亚洲欧美在线一区 | 精品欧美乱码久久久久久 | 日本91av视频 | 91高清视频在线观看 | 97精品超碰一区二区三区 | 午夜精品久久久久久不卡欧美一级 | 久久99精品久久久久久 | 亚洲欧美一区二区三区视频 | 精品成人佐山爱一区二区 | 天天综合久久 | 国产三区在线观看视频 | 青青草网站在线观看 | 亚洲成人av | 欧美一二三 | 性高湖久久久久久久久3小时 | 天天看夜夜 | 欧美久久一区二区三区 | 国产区在线观看 | 久久久日韩精品一区二区三区 | 欧美久久天堂 | 日韩精品一区二区三区在线播放 | 日韩欧美在线观看 | 欧美福利 | 视频一区二区在线观看 | 大乳boobs巨大吃奶挤奶 |