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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1540|回復(fù): 5
收起左側(cè)

單片機(jī)風(fēng)扇控制程序出錯(cuò)

[復(fù)制鏈接]
ID:1117783 發(fā)表于 2024-4-22 15:52 | 顯示全部樓層 |閱讀模式
大佬們這是我的風(fēng)扇控制程序代碼顯示是沒(méi)有報(bào)錯(cuò)的,但是輸入進(jìn)單片機(jī)里面卻是無(wú)法運(yùn)行的。麻煩各位大佬看看這是哪里的問(wè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:;}
        
        
        }
        }
        }

}

回復(fù)

使用道具 舉報(bào)

ID:8455 發(fā)表于 2024-4-22 18:12 | 顯示全部樓層
后兩個(gè)IF判斷最好不在嵌套在S1按鍵內(nèi)部。
回復(fù)

使用道具 舉報(bào)

ID:277550 發(fā)表于 2024-4-22 18:36 | 顯示全部樓層
程序代碼的邏輯有問(wèn)題吧,,,,,沒(méi)有需求、說(shuō)明也不詳細(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ù)制代碼




回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-4-23 10:21 | 顯示全部樓層
這pwm用delay完成,那pwm期間按鍵不是就掃不到了?
回復(fù)

使用道具 舉報(bào)

ID:11804 發(fā)表于 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;}
   
}
回復(fù)

使用道具 舉報(bào)

ID:421260 發(fā)表于 2024-4-25 15:26 | 顯示全部樓層
PWM和按鍵掃描建議不要用delay,換一種方式。
按鍵掃描中使用delay都是在教學(xué)視頻中的程序,實(shí)戰(zhàn)絕對(duì)不能用。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品福利在线 | 美女福利视频网站 | 一区二区三区在线播放 | 日韩一区二区在线视频 | 九九精品视频在线 | 日韩一区二区在线观看 | 一级毛片在线播放 | 91精品国产一区二区三区 | 黄色av免费网站 | 国外成人免费视频 | 国产91网站在线观看 | 日韩精品在线看 | 国产精品视频免费播放 | 超碰免费在线观看 | 99热激情 | 亚洲欧美久久 | 91视在线国内在线播放酒店 | 久久不卡区 | 91免费版在线 | 91一区二区 | 九九综合 | 国产99小视频 | 欧美一区视频 | 亚洲香蕉在线视频 | 久久国产免费 | 久久高清亚洲 | 婷婷色国产偷v国产偷v小说 | 在线观看亚洲精品视频 | 夜夜操天天艹 | 精品99爱视频在线观看 | 亚洲影音| 国产精品久久99 | 欧美一区免费 | 天天爽夜夜爽精品视频婷婷 | 国产精品1区2区 | 精精国产xxxx视频在线播放 | 日日日色 | 91精品免费视频 | 盗摄精品av一区二区三区 | 国产精品毛片一区二区在线看 | 91久久精品一区二区二区 |