⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hello.c

📁 基于 keil下编写的用ADC0809采用查寻法测电压的代码 新手可以参考学习
💻 C
字号:
/***********************************************

         用ADC0809采用查寻法测电压

***********************************************/

#include <time_interrupt.h>


void main()
{
	while(1)
	{
		 TimeInitial();
		 ADC0809();//用ADC0809采样电压
		 display();// 显示ADC0809采样的电压
		 keyboard_fun(); //从按键获取与PWM相比较的电压值
		 compare();//比较 voltage 与  PWM_voltage的值

	}
		
}


// ADC0809 使用程序
void   ADC0809() 
{
	ADC0809_ALE = 0;
	ADC0809_OE=0;
	ADC0809_START = 0 ;
	ADC0809_EOC = 1 ;

	ADC0809_ADDRESS_A = ~ADC0809_ADDRESS_A  ;
	ADC0809_ALE = 1;
	ADC0809_ALE = 0 ;
	ADC0809_START = 1 ;
	ADC0809_START = 0 ;	
	delay(100);	 //等待AD转换结束,此延时搞死老子
	while(!ADC0809_EOC);	 //	ADC0809_EOC 为0,即没有转换束,不停循环

	ADC0809_OE = 1;
	if(ADC0809_ADDRESS_A == 0)
	{
	 voltage = P1;            //从ADC0809获取的电压放在变量 voltage 上
	 voltage=voltage*19.607843;
	}
	else
	{
	current = P1;
	current=current*19.607843;
	}	
	ADC0809_OE = 0;
	display();
}


//显示电压大小程序
void display()
{
	
	LEDcom1=table2[voltage/1000];
	LEDcom2=table[voltage/100%10];
	LEDcom3=table[voltage/10%10];
	LEDcom4=table[voltage%10];

	
	LEDcom5=table2[current/1000];
	LEDcom6=table[current/100%10];
	LEDcom7=table[current/10%10];
	LEDcom8=table[current%10];
}


//从按键获取与PWM相比较的电压值
void keyboard_fun()
{
	if(keyboard==0xfe) //电压增加1
	{	 		
		delay(100);
		if(keyboard==0xfe) //消抖 
		{
			while(keyboard==0xfe);//按键释放,再运行以下程序
			PWM_voltage++;					
		}
		
	}
	if(keyboard==0xfd) //电压增加1
	{	 		
		delay(100);
		if(keyboard==0xfd) //消抖 
		{
			while(keyboard==0xfd);//按键释放,再运行以下程序
			PWM_voltage--;					
		}		
	}
	if(PWM_voltage<25||PWM_voltage>36)
	{
		PWM_voltage=30;
	}
}


//比较 voltage 与  PWM_voltage的值
void compare()
{

}


//延时子程序
//时间 = t*10 us
void delay(unsigned int t)
{
    unsigned int i,j;
    for(i = 0;i<t;i++)
      for(j = 0;j<10;j++); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -