📄 hello.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 + -