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

標(biāo)題: 單片機(jī)風(fēng)扇控制程序出錯 [打印本頁]

作者: 單片機(jī)我C你馬    時間: 2024-4-22 15:52
標(biāo)題: 單片機(jī)風(fēng)扇控制程序出錯
大佬們這是我的風(fēng)扇控制程序代碼顯示是沒有報錯的,但是輸入進(jìn)單片機(jī)里面卻是無法運(yùn)行的。麻煩各位大佬看看這是哪里的問題,用的是52單片機(jī)
#include <REGX52.H>
#include<stdio.h>
sbit DJA=P2^0;
sbit DJB=P2^1;
sbit S1=P3^2;
sbit S2=P3^3;
bit flag;
unsigned char number;
void delay(unsigned int i)
{
        unsigned int k;
        for(k=0;k<i;k++);
}
void pwm(bit a,bit b,unsigned int d1,unsigned int d2)
{
        DJB=a;
        DJA=b;
        delay(d1);
        DJA=0;
        DJB=0;
        delay(d2);
}
void main()
{
        flag=0;
        number=0x00;
        DJA=0;
        DJB=0;
        while(1)
        {
        if(S1==0)
        {
        delay(1200);
        if(S1==0)
        {
        while(!S1);
                flag=~flag;
        }
        if(S2==0)
        {delay(1200);
                if(S2==0)
                {
                        while(!S2);
                        if(number<=3)
                                number++;
                        else number=0x01;}
        }
        if(!flag)
        {
                switch(number)
                {
                        case 0x01:pwm(0,1,720,1680);break;
                        case 0x02:pwm(0,1,1250,1250);break;
                        case 0x03:pwm(0,1,1680,720);break;
                        default:;
                }
        }
        else
        {
        switch(number)
        {
                case 0x01:pwm(0,1,720,1680);break;
                case 0x02:pwm(0,1,1250,1250);break;
                case 0x03:pwm(0,1,1680,720);break;
                default:;}
        
        
        }
        }
        }

}


作者: ymt    時間: 2024-4-22 18:12
后兩個IF判斷最好不在嵌套在S1按鍵內(nèi)部。
作者: devcang    時間: 2024-4-22 18:36
程序代碼的邏輯有問題吧,,,,,沒有需求、說明也不詳細(xì),,,,大概理解,應(yīng)該是這樣

  1. #include <REGX52.H>
  2. #include<stdio.h>
  3. sbit DJA=P2^0;
  4. sbit DJB=P2^1;
  5. sbit S1 =P3^2;
  6. sbit S2 =P3^3;
  7. bit flag;
  8. unsigned char number;

  9. void delay(unsigned int i){
  10.         unsigned int k;
  11.         for(k=0;k<i;k++);
  12. }

  13. void pwm(bit a,bit b,unsigned int d1,unsigned int d2){
  14.         DJB=a;
  15.         DJA=b;
  16.         delay(d1);
  17.         DJA=0;
  18.         DJB=0;
  19.         delay(d2);
  20. }

  21. void main(){
  22.         flag=0;
  23.         number=0x00;
  24.         DJA=0;
  25.         DJB=0;
  26.         
  27.         while(1){
  28.                 if(S1==0){
  29.                         delay(1200);
  30.                         if(S1==0){
  31.                                 while(!S1);
  32.                                 flag=~flag;
  33.                         }
  34.                 }
  35.                
  36.                 if(S2==0){
  37.                         delay(1200);
  38.                         if(S2==0){
  39.                                 while(!S2);
  40.                                 if(number<=3) number++; else number=0x01;
  41.                         }
  42.                 }
  43.                
  44.                 if(!flag){
  45.                         switch(number){
  46.                         case 0x01:pwm(0,1, 720,1680);break;
  47.                         case 0x02:pwm(0,1,1250,1250);break;
  48.                         case 0x03:pwm(0,1,1680, 720);break;
  49.                         default:;
  50.                         }
  51.                 }else{
  52.                         switch(number){
  53.                         case 0x01:pwm(0,1, 720,1680);break;
  54.                         case 0x02:pwm(0,1,1250,1250);break;
  55.                         case 0x03:pwm(0,1,1680, 720);break;
  56.                         default:;
  57.                         }
  58.                 }
  59.         }
  60. }
復(fù)制代碼





作者: xiaobendan001    時間: 2024-4-23 10:21
這pwm用delay完成,那pwm期間按鍵不是就掃不到了?
作者: heyanrog    時間: 2024-4-24 17:37
#define pwm_max   100
uchar pwm,set_pwm;//set_pwm不大于pwm_max
void pwm_out
{   
    pwm++;
    if(pwm>pwm_max)pwm=0;
    iif(set_pwm>=pwm){DJA=1;DJB=1;}//
    else {DJA=0;DJB=0;}
   
}
作者: szqinyi    時間: 2024-4-25 15:26
PWM和按鍵掃描建議不要用delay,換一種方式。
按鍵掃描中使用delay都是在教學(xué)視頻中的程序,實(shí)戰(zhàn)絕對不能用。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久www成人免费无遮挡大片 | 国产精品视频在线播放 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 高清国产午夜精品久久久久久 | 97久久久 | 日韩不卡一区二区三区 | 精品在线观看一区 | 国产日韩一区二区三区 | 久久av影院 | 成人一区二区三区 | 99re热精品视频国产免费 | 91成人精品视频 | 在线亚洲欧美 | 中文字幕第一页在线 | 日韩中文字幕一区二区 | 91视频91| 国产精品久久久久久一区二区三区 | 国产传媒在线观看 | 91精品成人久久 | 国产一区二区三区四区五区加勒比 | 午夜一区二区三区在线观看 | 免费亚洲网站 | 亚洲成人免费在线观看 | 97人人超碰 | 蜜桃五月天 | 涩涩视频在线播放 | 在线区| 国产精品一区二区福利视频 | 中文字字幕一区二区三区四区五区 | 成人精品一区二区三区中文字幕 | 日本国产精品视频 | 天堂中文在线观看 | 黄色一级大片在线免费看产 | 免费网站国产 | 夜夜撸av| 国产一区二区三区视频免费观看 | www久久国产 | 久久久久亚洲 | 天天干狠狠干 | 自拍偷拍第一页 | 亚洲精品久久久蜜桃 |