源代码:
//-----------------------------------------------------------------
// 液晶控制与显示程序
//-----------------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include <math.h>
#define INT8U unsigned char
#define INT16U unsigned int
sbit SDO = P2^0; //寄存器选择线
sbit SCK = P2^1; //读/写控制线
sbit CONV = P2^2; //使能控制线
extern void Initialize_LCD();
extern void LCD_ShowString(INT8U r,INT8U c,INT8U*str);
extern void delay_ms(INT16U x) ;
//-----------------------------------------------------------------
//读取LTC1864模数转换值(16位,2字节)
//-----------------------------------------------------------------
INT16U Read_ADC ()
{
INT8U i; INT16U dat = 0x00;
SCK = 1;
CONV=0;CONV=1;
_nop_();_nop_();_nop_();_nop_();
CONV = 0;
for(i=0;i<16;i++)
{
SCK=0;_nop_();SCK=1;
dat = (dat<<1)| SDO;
}
SCK = 0;
return dat;
}
//-----------------------------------------------------------------
//主程序
//-----------------------------------------------------------------
void main()
{
char dispBuff[17] ;
Initialize_LCD() ;
LCD_ShowString(0,0, "LTC1864 A/D Test");
while (1)
{
sprintf(dispBuff,"Curr Volt:%4.2fv",Read_ADC() * 5.0 / 65535.0);
LCD_ShowString(1,0,dispBuff) ;
}
}
//-----------------------------------------------------------------
// 液晶控制与显示程序
//-----------------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
#include <stdio.h>
#include <math.h>
#define INT8U unsigned char
#define INT16U unsigned int
sbit SDO = P2^0; //寄存器选择线
sbit SCK = P2^1; //读/写控制线
sbit CONV = P2^2; //使能控制线
extern void Initialize_LCD();
extern void LCD_ShowString(INT8U r,INT8U c,INT8U*str);
extern void delay_ms(INT16U x) ;
//-----------------------------------------------------------------
//读取LTC1864模数转换值(16位,2字节)
//-----------------------------------------------------------------
INT16U Read_ADC ()
{
INT8U i; INT16U dat = 0x00;
SCK = 1;
CONV=0;CONV=1;
_nop_();_nop_();_nop_();_nop_();
CONV = 0;
for(i=0;i<16;i++)
{
SCK=0;_nop_();SCK=1;
dat = (dat<<1)| SDO;
}
SCK = 0;
return dat;
}
//-----------------------------------------------------------------
//主程序
//-----------------------------------------------------------------
void main()
{
char dispBuff[17] ;
Initialize_LCD() ;
LCD_ShowString(0,0, "LTC1864 A/D Test");
while (1)
{
sprintf(dispBuff,"Curr Volt:%4.2fv",Read_ADC() * 5.0 / 65535.0);
LCD_ShowString(1,0,dispBuff) ;
}
}












