找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2182|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語言程序為什么我的第二個if里的語句無法實現(xiàn)?只能產(chǎn)生一個pwm波

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:543151 發(fā)表于 2019-7-18 16:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
5黑幣
#include <reg51.h>
#include <intrins.h>
#include <delay.h>
// sbit  EN1=P3^0;
// sbit  IN1=P3^1;
sbit  IN2=P2^0;
  sbit   IN1=P2^1;
sfr  AUXR       =   0x8e;
#define FOSC    11059200L
#define BAUD    9600
#define uchar unsigned char
typedef unsigned char BYTE;
typedef unsigned int WORD;
unsigned char x,y;
uchar t=0;
void Timer0Init(void);
void InitADC();
BYTE GetADCResult(BYTE ch);
void ShowResult();
void Delay(WORD n);
uchar count=0;

sfr T2H   = 0xd6;               //???2?8?
sfr T2L   = 0xd7;               //???2?8?

sfr ADC_CONTR   =   0xBC;           //ADC?????
sfr ADC_RES     =   0xBD;           //ADC?8???
sfr ADC_LOW2    =   0xBE;           //ADC?2???
sfr P1ASF       =   0x9D;           //P1??2???????
#define ADC_POWER   0x80            //ADC?????
#define ADC_FLAG    0x10            //ADC????
#define ADC_START   0x08            //ADC?????
#define ADC_SPEEDLL 0x00            //540???
#define ADC_SPEEDL  0x20            //360???
#define ADC_SPEEDH  0x40            //180???
#define ADC_SPEEDHH 0x60
/*----------------------------
??ADC???PC
----------------------------*/
void ShowResult()
{
  x=GetADCResult(1);
// k=GetADCResult(7);
//    SendData(ADC_LOW2);           //???2???
}
/*----------------------------
??ADC??
----------------------------*/
BYTE GetADCResult(BYTE ch)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //??4?NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//??ADC????
    ADC_CONTR &= ~ADC_FLAG;         //Close ADC
    return ADC_RES;                 //??ADC??
}
void InitADC()
{
    P1ASF = 0xff;                   //??P1??AD?
    ADC_RES = 0;                    //???????
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
    Delay(2);                       //ADC?????
}
void Delay(WORD n)
{
    WORD N;
    while (n--)
    {
        N = 5000;
        while (N--);
    }
}
void Timer0Init(void)  //100??@11.0592MHz
{
AUXR |= 0x80;  //?????1T??
TMOD &= 0xF0;  //???????
TL0 = 0xAE;  //??????
TH0 = 0xFB;  //??????
TF0 = 0;  //??TF0??
TR0 = 1;  //???0????
  EA=1;
}
void tiii () interrupt 1
{
count++;
if(count==t)
{
    IN2=~IN2;
  }
  if(count==200)
{
    IN2=~IN2;  
   count=0;
  }
}
void main()
{
InitADC();
Timer0Init();
while(1)
{
  x=GetADCResult(1);
P0=x;
  if(x>=200)
  {
   t=15;
   ET0=1;
  }
   else if(x<=50)
  {
   t=25;
   ET0=1;
   }
  else
  {
     ET0=0;
   }
}
}

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表