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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1717|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天综合成人网 | 亚洲视频在线播放 | 精品国产乱码久久久久久蜜退臀 | 国产色播av在线 | 国产日韩精品在线 | 日韩中文字幕av | 拍真实国产伦偷精品 | 国产第二页 | 国产高清在线精品 | 人人九九精 | 操操日| 自拍 亚洲 欧美 老师 丝袜 | 国产91视频一区二区 | 亚洲日韩中文字幕 | 99精品国产一区二区三区 | 久久国内 | 久久精品网 | 精品1区2区 | 国产精品高清在线 | 一级a爱片久久毛片 | 中文亚洲视频 | 国产亚洲精品综合一区 | 欧美日一区二区 | 国产精品久久久久久中文字 | 久久久久久久夜 | 亚洲第一免费播放区 | 国产成人在线一区二区 | www成年人视频 | 天天夜夜操 | www.亚洲精品| 天堂一区| 日本人麻豆 | 天天插天天操 | 草久视频 | 中文字幕三区 | 国产精品免费一区二区三区四区 | 国产欧美精品一区二区三区 | 国产精品夜色一区二区三区 | 国产视频一区在线观看 | 国产成人亚洲精品 | 精品免费国产视频 |