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

📄 main.c.130217153658

📁 ATmega16-ad1602
💻 130217153658
字号:
#include"includes.h"


unsigned int adc(void)
{	 
	 unsigned int temp;
 	 DDRA&=~BIT(7);       //PA0口输入数据
	 ADMUX=0x40;
	 ADCSRA=0xC6;
	 while(!(ADCSRA&(BIT(4))));//查询方式
	 temp=ADCL;
	 temp=temp+ADCH*256;
	 ADCSRA|=BIT(4);
	 return temp;
}
void ADtoBCD(unsigned int temp)
{   
    
	float j;
	unsigned int count;
	unsigned int Vref=50000;
	
	j = (float)(((float)((Vref/1024)))*temp)/1000.00;
	count = j*100;						
    adcbuf[0] = count /1000+0x30;
	count = count %1000;
    adcbuf[2] = count /100+0x30;
    count = count %100;
    adcbuf[3] = count  /10 + 0x30;			 
    adcbuf[4] = count  %10 + 0x30;
}
	
//主函数
void main(void)
{	
	static volatile unsigned int adcbuf[];//ADC值
	unsigned int tmp;
	unsigned char *value = "0.000 V";	
	Init_LCD();
	LCD_DisplayString(2,1,value);  
	
	while(1)
	{
	 tmp=adc();//启动AD并返回temp值
	 ADtoBCD(tmp);//将temp值转换成BCD码并写入adcbuf[]
	  
	 LCD_DisplayString(2,1,adcbuf);  
	}
}


⌨️ 快捷键说明

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