|
串口可以打印对应的AD值,想通过断码屏显示却没法显示出来?求解一下
uint num1;
#define ADC_INTERRUPT 1
UINT16 UserData;
/*******************************************************************************
* Function Name : Show_Init()
* Description : 显示对应的电压
*******************************************************************************/
void Show(uchar num1) //判断AD值
{
if(num1>=150&&num1<160)
{
Write_1621(9,0x80,4); //显示一格电量
}
else if(num1>=160&&num1<170)
{
Write_1621(9,0xC0,4); //显示两格电量
}
else if(num1>170&&num1<180)
{
Write_1621(9,0xE0,4); //显示三格电量
}
else if(num1>=180)
{
Write_1621(9,0xF0,4); //显示四格电量
}
}
/*******************************************************************************
* Function Name : ADCInterrupt(void)
* Description : ADC 中断服务程序
*******************************************************************************/
void ADCInterrupt( void ) interrupt INT_NO_ADC using 1 //ADC中断服务程序,使用寄存器组1
{
if(ADC_IF == 1) //ADC完成中断
{
UserData = ADC_DATA; //取走ADC采样数据
ADC_IF = 0; //清空ADC中断标志
}
}
void main( )
{
ADCInit(0);
CfgFsys( );
mDelaymS(20);
mInitSTDIO( );
Init_1621(); //初始化HT1621
HT1621_all_off(); //清空LCD显示
CH554UART0Alter(); //串口映射
EA=1; //开启全局中断
while(1)
{
//检测电压,通道3
{
ADC_ChannelSelect(3); //ADC采样电源开启和通道设置,采样通道AIN3
ADC_START = 1; //开启采样,等待采样完成进入中断
while(ADC_START);
num1=UserData;
mDelaymS(1000);
}
// printf("ADC1: %d\n",num1); //串口打印AD值
Show(num1); //显示函数
mDelaymS(1000);
}
}
|
|