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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

幫忙看一下單片機PWM加減速程序,有些不明白

[復制鏈接]
跳轉到指定樓層
樓主
ID:684734 發(fā)表于 2020-12-26 16:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
以上程序,在加減速那里一直不明白怎么怎么改變占空比,望各位老大指點!
  while(1)  
         {  
            b=0; 
            while(!b);  
            if(N==X)    //X初始值為50
            PWM=0; 
            if(N==100)   //N為總頻率段
           // {
           //    N=0;
           // }
            break;  
            N++; 

主要是這一段,真的不明白

單片機源程序如下:
#include<reg52.h> 
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int 
uchar N=0;  //總頻率段
uchar X=50; //占空比初始值50%
uint a,b;
sbit RS=P3^0; 
sbit RW=P3^1; 
sbit EN=P3^2; 
uchar code str1[]={"FORWARD"};      //前進
uchar code str2[]={"SPEED UP"};     //加速
uchar code str3[]={"REVERSAL"};     //后退
uchar code str4[]={"SPEED DOWN"};   //減速
uchar code str5[]={"STOP"};         //停機
uchar data disdata[5]; 
void delay1ms(uint ms) //延時0.1毫秒(不夠精確的)
{
   uint i,j;
   for(i=0;i<ms;i++)
   for(j=0;j<100;j++);
}
void wr_com (uchar com) // 寫指令 // 液晶顯示屏
{
   delay1ms(1);
   RS=0;
   RW=0;
   EN=0;
   P2=com
   delay1ms(1);    
   EN=1; 
   delay1ms(1);    
   EN=0;   
} 
void wr_dat(uchar dat) // 寫數(shù)據(jù) // 液晶顯示屏
{
   delay1ms(1);
   Rs=1;
   RW=0;
   EN=0;
   P2=dat
   delay1ms(1);    
   EN=1; 
   delay1ms(1);    
   EN=0; 
} 
 void lcd_init() // 初始化設置 //
{
   delay1ms(15);
   wr_com(0x38);    
   wr_com(0x08);     
   wr_com(0x01);      
   wr_com(0x06);       
   wr_com(0x0c); } 
void display (uchar *P) // 顯示 //
{
   while(*p!='\0') 
   { 
      wr_dat(*p); 
      p++; 
      delay1ms(1); 
   } 
} 
init_ Play() / / 初始化顯示
{
   lcd_init();
   wr_com(0x80);
   display(str1);
   wr_com(0xc0);
   display(str2);
   while(1);
} 
Sbit PWM=P3^6;  // PWM 輸出腳
sbit P1_2=P1^2; // 正轉
sbit P1_3=P1^3; // 反轉
sbit P1_4=P1^4; // 加速
sbit P1_5=P1^5; // 減速
sbit P1_6=P1^6; // 停止
sbit P1_1=P1^1; 
sbit P1_0=P1^0;  
sbit P0_0=P0^0; 
sbit P0_1=P0^1; 
sbit P0_2=P0^2; 
sbit P0_3=P0^3;  
void timer1() interrupt 3
{ 
   TH1=0Xff; 
   TL1=0x17; 
   b++; 
}  
main() 
{ 
   TMOD=0x10; 
   IE=0X88; 
   TH1=0Xff; 
   TL1=0X17; 
   TR0=1; 
   TR1=1; 
   a=0; 
   b=0;  
   while(1) 
   { 
      PWM=1;  
      while(1)  
         {  
            b=0; 
            while(!b);  
            if(N==X)    //X初始值為50
            PWM=0; 
            if(N==100)   //N為總頻率段
           // {
           //    N=0;
           // }
            break;  
            N++; 
            if(P1_2==0) // M1 正轉
            {
               P1_1=1;
               P1_0=0;
               X=50;
               P0_0=0;
               P0_1=1; 
               lcd_init();
               wr_com(0x80);
               display(str1);
           } 
            if(P1_3==0) // M1 反轉
            {
               P1_1=0;
               P1_0=1;
               X=50;
               P0_0=1;
               P0_1=0; 
               lcd_init();
               wr_com(0x80);
               display(str3);
           } 
            if(P1_6==0) // M1 停止
            {
               P1_1=1;
               P1_0=1;
               P0_0=1;
               P0_1=1;
               P0_2=1;
               P0_3=1; 
               lcd_init();
               wr_com(0x80);
               display(str5);
            }  
             if(P1_4==0)  //加速
            {  
                P1_1=1;
                P1_0=0;
                X=100;
                P0_2=0; 
                P0_3=1; 
                lcd_init();
                wr_com(0xc0);
                display(str2);
            }  
             if(P1_5==0)   //減速                     

             {         
                P1_1=1;
                P1_0=0;
                X=20;
                P0_2=1;
                P0_3=0; 
                lcd_init();
                wr_ com(0xc0);
                display(str4);
            }
        } 
        N=0;
    }  
}


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

使用道具 舉報

沙發(fā)
ID:684734 發(fā)表于 2020-12-26 16:30 | 只看該作者
最好是綠色這一段,求大神解釋,謝謝啦
回復

使用道具 舉報

板凳
ID:852300 發(fā)表于 2020-12-28 11:09 | 只看該作者
程序中改占空比是直接定義X值,啟動時X=50,加速直接給X=100,減速是X=20了!
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色日批视频 | 国产视频a | 999久久久国产精品 亚洲黄色三级 | 天天天天干 | 天天干狠狠干 | 黄色成人免费视频 | 一区二区视频网站 | 色多多在线观看 | 成人特级毛片 | 午夜xxx| 国产精品va | 福利片在线 | 深夜福利网 | www.久久久久| 日本福利在线 | 免费看黄色小视频 | 视频一区二区三区在线观看 | 免费av一区二区 | 中文字幕免费观看视频 | 国产a级大片 | 日韩av手机在线观看 | 色视频www在线播放国产人成 | 超碰福利在线 | 久久精品播放 | 久久久精品在线观看 | 日本中文字幕在线观看 | 性做久久久久久 | 国产欧美一区二区三区视频在线观看 | 黄色大片在线 | 91久久久久 | 亚洲一区二区av | 免费啪视频| 欧美网站在线观看 | 午夜激情在线观看 | 国产精品手机在线观看 | 国产日本在线 | 成人免费毛片aaaaaa片 | 涩五月婷婷 | 九九国产视频 | 日韩999 | 五月婷婷影院 |