我是靠谱客的博主 敏感玫瑰,最近开发中收集的这篇文章主要介绍C语言if只能执行第一个指令,C语言程序为什么我的第二个if里的语句无法实现?只能产生一个pwm波...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include

#include

#include

// 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;

}

}

}

我来回答

最后

以上就是敏感玫瑰为你收集整理的C语言if只能执行第一个指令,C语言程序为什么我的第二个if里的语句无法实现?只能产生一个pwm波...的全部内容,希望文章能够帮你解决C语言if只能执行第一个指令,C语言程序为什么我的第二个if里的语句无法实现?只能产生一个pwm波...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部