标题:
单片机串口可以输出对应电压AD值,通过断码屏没法显示,是什么问题?
[打印本页]
作者:
qwettyuio
时间:
2022-1-13 17:36
标题:
单片机串口可以输出对应电压AD值,通过断码屏没法显示,是什么问题?
串口可以打印对应的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);
}
}
原理图.png
(73.93 KB, 下载次数: 47)
下载附件
2022-1-14 08:20 上传
作者:
npn
时间:
2022-1-13 22:00
具体提供下段码屏是什么样的,具体怎样接线?
作者:
qwettyuio
时间:
2022-1-14 08:22
npn 发表于 2022-1-13 22:00
具体提供下段码屏是什么样的,具体怎样接线?
原理图在上面,使用ch552芯片ADC转换通道三,串口可以打印出AD值,但是转换显示不通过,想求解一下原因
作者:
qwettyuio
时间:
2022-1-14 11:12
已解决
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1