|
串口可以打印對應(yīng)的AD值,想通過斷碼屏顯示卻沒法顯示出來?求解一下
uint num1;
#define ADC_INTERRUPT 1
UINT16 UserData;
/*******************************************************************************
* Function Name : Show_Init()
* Description : 顯示對應(yīng)的電壓
*******************************************************************************/
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 中斷服務(wù)程序
*******************************************************************************/
void ADCInterrupt( void ) interrupt INT_NO_ADC using 1 //ADC中斷服務(wù)程序,使用寄存器組1
{
if(ADC_IF == 1) //ADC完成中斷
{
UserData = ADC_DATA; //取走ADC采樣數(shù)據(jù)
ADC_IF = 0; //清空ADC中斷標(biāo)志
}
}
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采樣電源開啟和通道設(shè)置,采樣通道AIN3
ADC_START = 1; //開啟采樣,等待采樣完成進(jìn)入中斷
while(ADC_START);
num1=UserData;
mDelaymS(1000);
}
// printf("ADC1: %d\n",num1); //串口打印AD值
Show(num1); //顯示函數(shù)
mDelaymS(1000);
}
}
|
-
原理圖.png
(73.93 KB, 下載次數(shù): 47)
下載附件
2022-1-14 08:20 上傳
|