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

標(biāo)題: L298N風(fēng)扇調(diào)速OLED顯示占空比的單片機(jī)源程序 [打印本頁(yè)]

作者: q916151989    時(shí)間: 2017-8-13 11:05
標(biāo)題: L298N風(fēng)扇調(diào)速OLED顯示占空比的單片機(jī)源程序
新人報(bào)道 發(fā)個(gè)PWM風(fēng)扇程序  OLED顯示占空比  高手勿噴




單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include "oled.h"
  3. #include "bmp.h"
  4. #define        uchar unsigned char
  5. #define uint  unsigned int
  6. sbit MOTOR_A_1=P2^2;
  7. sbit MOTOR_A_2=P2^3;
  8. sbit k1=P1^0;        //速度+
  9. sbit k2=P1^1;   //速度-
  10. sbit k3=P1^2;   //停止
  11. uchar T=0;            //定時(shí)標(biāo)記
  12. uchar W=0;            //脈寬值0~32
  13. uchar k=0;            //按鍵標(biāo)記
  14. uchar i=0;            //計(jì)數(shù)變量
  15. uchar a,b;
  16. /*******************延時(shí)***************************/
  17. void delayMs(uint a)
  18. {
  19.     uint i, j;
  20.     for(i = a; i > 0; i--)
  21.         for(j = 100; j > 0; j--);
  22. }
  23. /**********************************************************************
  24.                                                         定時(shí)器變量定義
  25. **********************************************************************/


  26. void init(void)
  27. {
  28.         //啟動(dòng)中斷
  29.         TMOD=0x01;
  30.         TH0=(65536-1000)/256;
  31.         TL0=(65536-1000)%256; //0.5ms中斷一次
  32.                
  33.         EA=1;                                               
  34.         ET0=1;
  35.         TR0=1;

  36. }

  37. void timer0() interrupt 1
  38. {                                    
  39.         //重置定時(shí)器時(shí)間
  40.         TH0=(65536-1000)/256;
  41.         TL0=(65536-1000)%256;
  42.         T++;           //定時(shí)標(biāo)記加1
  43.         if(T==16)
  44.         {       
  45.          T=0;
  46.         }
  47.          
  48.         if(T>=W)
  49.                 MOTOR_A_1 =0;
  50.         else
  51.                 MOTOR_A_1 =1;
  52. }                       

  53. /**********************************************************************
  54.                                                         獨(dú)立按鍵檢測(cè)
  55. **********************************************************************/
  56. void key(void)           //按鍵判斷程序
  57. {
  58.         if(k1==0)                                                        //按鍵1按下
  59.         {
  60.                 while(k1==0);                                //按鍵1抬起
  61.                 if(W==16)                                        //如果脈寬為100
  62.                         W=0;                                                        //脈寬置0
  63.                 else
  64.                         W+=1;                                                        //否則加1
  65.         }
  66.         else if(k2==0)                                //按鍵2按下
  67.         {                                 
  68.                 while(k2==0);                                //按鍵2抬起
  69.                 if(W==0)                                                //如果脈寬為0
  70.                         W=16;                                                //脈寬設(shè)置成100
  71.                 else
  72.                         W-=1;                                                        //否則減1
  73.         }
  74.         else if(k3==0)                                //按鍵3按下
  75.         {                          
  76.                 while(k3==0);                                //按鍵3抬起
  77.                 W=0;                                                                //脈寬清0                                                                       
  78.         }
  79. }
  80. void display1()
  81. {
  82.         if(a == 0 && b == 0)
  83.                 {
  84.                 OLED_ShowString(0,2,"  ",16);
  85.                 OLED_ShowString(96,2,"  ",16);
  86.                 OLED_ShowString(0,4,"  ",16);
  87.                 OLED_ShowString(96,4,"  ",16);
  88.                 }
  89.                 else
  90.                 {

  91.                 OLED_ShowChar(0,2,' '+95,16);         //指針旋轉(zhuǎn)
  92.                 OLED_ShowChar(8,2,' '+0,16);
  93.                 OLED_ShowChar(8,4,' '+0,16);
  94.                 OLED_ShowChar(0,4,' '+0,16);
  95.                 OLED_ShowChar(96,2,' '+95,16);
  96.                 OLED_ShowChar(104,2,' '+0,16);
  97.                 OLED_ShowChar(104,4,' '+0,16);
  98.                 OLED_ShowChar(96,4,' '+0,16);
  99.                 delayMs(100);
  100.                 OLED_ShowChar(0,2,' '+0,16);
  101.                 OLED_ShowChar(8,2,' '+15,16);
  102.                 OLED_ShowChar(8,4,' '+0,16);
  103.                 OLED_ShowChar(0,4,' '+0,16);
  104.                 OLED_ShowChar(96,2,' '+0,16);
  105.                 OLED_ShowChar(104,2,' '+15,16);
  106.                 OLED_ShowChar(104,4,' '+0,16);
  107.                 OLED_ShowChar(96,4,' '+0,16);
  108.                 delayMs(100);
  109.                 OLED_ShowChar(0,2,' '+0,16);
  110.                 OLED_ShowChar(8,2,' '+0,16);
  111.                 OLED_ShowChar(8,4,' '+95,16);
  112.                 OLED_ShowChar(0,4,' '+0,16);
  113.                 OLED_ShowChar(96,2,' '+0,16);
  114.                 OLED_ShowChar(104,2,' '+0,16);
  115.                 OLED_ShowChar(104,4,' '+95,16);
  116.                 OLED_ShowChar(96,4,' '+0,16);
  117.                 delayMs(100);
  118.                 OLED_ShowChar(0,2,' '+0,16);
  119.                 OLED_ShowChar(8,2,' '+0,16);
  120.                 OLED_ShowChar(8,4,' '+0,16);
  121.                 OLED_ShowChar(0,4,' '+15,16);
  122.                 OLED_ShowChar(96,2,' '+0,16);
  123.                 OLED_ShowChar(104,2,' '+0,16);
  124.                 OLED_ShowChar(104,4,' '+0,16);
  125.                 OLED_ShowChar(96,4,' '+15,16);
  126.        

  127. //                OLED_ShowString(0,2,"> ",16);                 //>符號(hào)跳動(dòng)
  128. //                OLED_ShowString(0,4,"> ",16);
  129. //                OLED_ShowString(96,2," <",16);
  130. //                OLED_ShowString(96,4," <",16);
  131. //                delayMs(100);
  132. //                OLED_ShowString(0,2," >",16);
  133. //                OLED_ShowString(0,4," >",16);
  134. //                OLED_ShowString(96,2,"< ",16);
  135. //                OLED_ShowString(96,4,"< ",16);
  136. //                delayMs(100);
  137.                 }
  138. }
  139. void display2()
  140. {
  141. if(W == 0)
  142.                 {
  143.                 OLED_ShowString(0,6,"                ",16);
  144.                 }
  145.                 else if(W == 1)
  146.                 {
  147.                 OLED_ShowString(0,6,">               ",16);
  148.                 }
  149.                 else if(W == 2)
  150.                 {
  151.                 OLED_ShowString(0,6,">>              ",16);
  152.                 }
  153.                 else if(W == 3)
  154.                 {
  155.                 OLED_ShowString(0,6,">>>             ",16);
  156.                 }
  157.                 else if(W == 4)
  158.                 {
  159.                 OLED_ShowString(0,6,">>>>            ",16);
  160.                 }
  161.                 else if(W == 5)
  162.                 {
  163.                 OLED_ShowString(0,6,">>>>>           ",16);
  164.                 }
  165.                 else if(W == 6)
  166.                 {
  167.                 OLED_ShowString(0,6,">>>>>>          ",16);
  168.                 }
  169.                 else if(W == 7)
  170.                 {
  171.                 OLED_ShowString(0,6,">>>>>>>         ",16);
  172.                 }
  173.                 else if(W == 8)
  174.                 {
  175.                 OLED_ShowString(0,6,">>>>>>>>        ",16);
  176.                 }
  177.                 else if(W == 9)
  178.                 {
  179.                 OLED_ShowString(0,6,">>>>>>>>>       ",16);
  180.                 }
  181.                 else if(W == 10)
  182.                 {
  183.                 OLED_ShowString(0,6,">>>>>>>>>>      ",16);
  184.                 }
  185.                 else if(W == 11)
  186.                 {
  187.                 OLED_ShowString(0,6,">>>>>>>>>>>     ",16);
  188.                 }
  189.                 else if(W == 12)
  190.                 {
  191.                 OLED_ShowString(0,6,">>>>>>>>>>>>    ",16);
  192.                 }
  193.                 else if(W == 13)
  194.                 {
  195.                 OLED_ShowString(0,6,">>>>>>>>>>>>>   ",16);
  196.                 }
  197.                 else if(W == 14)
  198.                 {
  199.                 OLED_ShowString(0,6,">>>>>>>>>>>>>>  ",16);
  200.                 }
  201.                 else if(W == 15)
  202.                 {
  203.                 OLED_ShowString(0,6,">>>>>>>>>>>>>>> ",16);
  204.                 }
  205.                 else if(W == 16)
  206.                 {
  207.                 OLED_ShowString(0,6,">>>>>>>>>>>>>>>>",16);
  208.                 }
  209. }

  210. void main()
  211. {       
  212.         
  213.                 OLED_Init();
  214.                 OLED_Display_Off();
  215.                 OLED_Clear();
  216.                 OLED_Display_On();
  217.                 OLED_ShowCHinese(0,0,12);
  218.                 OLED_ShowCHinese(16,0,5);
  219.                 OLED_ShowCHinese(32,0,6);
  220.                 OLED_ShowCHinese(48,0,7);
  221.                 OLED_ShowCHinese(64,0,8);
  222.                 OLED_ShowCHinese(80,0,9);
  223.                 OLED_ShowCHinese(96,0,10);
  224.                 OLED_ShowCHinese(112,0,11);
  225.                 OLED_DrawBMP(4,2,124,8,BMP1);
  226. ……………………

  227. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
L298N調(diào)速OLED顯示占空比.zip (61.84 KB, 下載次數(shù): 32)




作者: 持勤補(bǔ)拙    時(shí)間: 2017-8-18 10:04
學(xué)習(xí)一下




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲美女一区 | 91国内在线观看 | 久草免费电影 | 日韩精品一区二区三区中文字幕 | 亚洲a网 | 一区二区在线免费观看 | 超碰超碰 | www在线视频| 亚洲第一av | 国产精品有限公司 | 免费中文字幕 | 日日噜 | 免费激情网站 | 日本欧美黄色片 | 国产精品成人一区二区三区 | 黄色国产 | 夜夜爽99久久国产综合精品女不卡 | 国产精品久久久久久吹潮 | 黄色片网此 | a久久 | 99久久婷婷国产精品综合 | 欧美成人免费在线视频 | 又黑又粗又长的欧美一区 | 日本在线免费 | 成人午夜视频在线观看 | 亚洲精品资源 | 欧美一级免费片 | 中文字幕视频在线看5 | www.日日操 | 久久久成 | 精品不卡 | 欧美极品一区二区 | 亚洲一区二区成人 | 成人在线观看免费 | 麻豆精品一区二区三区在线观看 | 韩国久久精品 | 国产亚洲欧美在线视频 | 国产在线一区观看 | 天堂一区| 日韩一区二区三区精品 | 日本成人免费网站 |