¿-

来自「atmega128串行操作lcd12864」· 代码 · 共 47 行

TXT
47
字号
#include"adc.h"
#include "12864.h"		//包含头文件

void mega128_adc(void)
{
DDRF=0X00;
PORTF=0X00;
DDRA=0X00;
PORTA=0X00;
ADMUX=0xd0;//F 差分 ADC0 ADC1  内部2.56V基准电压
ADCSRA=0x86;//64分频  转换使能
}
uint adc_ready(void)
{
uint addate=0;
ADCSRA|=(1<<ADSC);//启动第一次转换
while(!(ADCSRA&(1<<ADIF)));//等待转换结束
ADCSRA&=~(1<<ADIF);//结束清零
addate=ADCL;
addate=addate+ADCH*256;
addate=addate*0.474;//数据恢复
return addate;
}
void display(void)//测电压
{
uint num=0;
uchar bai=0,shi=0,ge=0,i=0;
mega128_adc();//放入定时器中完成
for(i=100;i>0;i--)//测100次
{
    num+=adc_ready();
}
    num=num/100; 
	bai=num/100;
	shi=num%100/10;
	ge=num%10;
	Write_Command(0x90);
	Write_Command(0x90+3);
	Write_one_char(bai+0x30);
	Write_one_char('.');
	Write_Command(0x90+4);
	Write_one_char(shi+0x30);
	Write_one_char(ge+0x30);
	Write_Command(0x90+5);
	Write_one_char('V');
}

⌨️ 快捷键说明

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