?? ad_lcd._c
字號:
/******************************************************
雙龍電子公司http://www.sl.com.cn
AT90S8535--AD轉換演示程序(ICCAVR)
作者:詹衛(wèi)前
使用注意:1、應包含頭文件slavr.h
2、在工程選項中的Additional Lib中填入slavr
使用編譯器使用附加庫文件libslavr.a
3、使用SL-AVRAD實驗設備
接線說明:1、PA.0(PIN40)處接電平指示LED的短路塊跳開
2、A/D和VX之間的短路塊閉合
3、AREF(PIN32)和AVCC(PIN30)接VCC
4、AGND(PIN31)接GND
*******************************************************/
#include<io8535.h>
#include<slavr.h>
#include<macros.h>
unsigned int ad_con;//存放PA0的AD轉換結果
unsigned char adcval[6];//存放電壓ASCII碼
/* 將AD結果轉換成電壓 */
#define vref 497
unsigned char * adctoasc(unsigned int adc)
{
unsigned int temp;
unsigned char i;
unsigned char *char_p;
temp=(unsigned int)(((unsigned long)((unsigned long)adc*vref))/1024);
for(i=0;i<3;i++)
{
adcval[3-i]=temp%10+0x30;
temp=temp/10;
}
adcval[0]=adcval[1];
adcval[1]='.';
adcval[4]='V';
adcval[5]=0;
char_p=adcval;
return char_p;
}
/* AD轉換程序 */
#pragma interrupt_handler adc_isr:IT_ADC
void adc_isr(void)
{
unsigned int temp=0;
while(temp<6)
temp++;
ad_con=ADC;
ADCSR|=(1<<ADSC);//啟動轉換
}
//將AD轉換結果轉換成電壓數(shù)值,然后在LCD上顯示
void main(void)
{
MCUCR=0;
ADMUX=0x00;//0通道
ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIF)|(1<<ADIE)|0x06;
lcd_init();
SEI();
while(1)
{
lcd_gotoxy(2,0);
lcd_puts("AD--Converter");
lcd_gotoxy(2,1);
lcd_puts("Voltage:");
lcd_gotoxy(10,1);
lcd_puts(adctoasc(ad_con));
delay_ms(500);
lcd_clear();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -