找回密码
 注册
关于网站域名变更的通知
查看: 235|回复: 2
打印 上一主题 下一主题

使用ch552 ADC采集电压,为什么没有显示ADC的数值

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-12-10 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
主函数
" ^- J: p" R' O  n6 Z( R#include "CH554.H"                                                   
" ]9 K/ l2 z( B#include "Debug.H"* s# s, ]7 n; f3 [6 H, S& F
#include "GPIO.H"% J* x9 @4 j2 \: e! [) h
#include "HT1621.H"
% n# Y+ J, _7 w* \  ?5 ]. }#include "ADC.H"
: V# q: n* g8 ^#include "stdio.h"
5 f" T( Q& |; t9 k# O8 Y# o#include <string.h>$ Y, H' v9 K" Z  x( ]  n5 A2 v
#include <intrins.h>
; W5 p$ H- C) |# a$ y) V' @" V#define uchar unsigned char) e8 K4 h  @+ F: r# k; Q
#define uint  unsigned int& ^& a4 f5 H- q" M5 X: h7 r

' G0 }  `: h7 j7 L# A% M9 ruchar code tabe1[11] = {0xF0,0x00,0xD0,0x90,0x20,0xB0,0xF0,0x10,0xF0,0xB0};
2 x: g3 y$ v& t# m/ ruchar code tabe2[11] = {0xA0,0xA0,0x60,0xE0,0xE0,0xC0,0xC0,0xA0,0xE0,0xE0};  R, i3 Z( F' \& c  X3 X/ I2 q

* X( u) N2 z, T  Ruchar a0,a1,a2,num;
1 r& P4 f7 O9 i8 V" q8 |: f1 z3 K, W  p( k$ V4 n1 E  E5 b# E
/*******************************************************************************4 S% |1 F! c! p5 I5 M' z" C; h
* Function Name  : Show_Init()5 I; B- C) S& F% f5 I8 k* w3 F4 Q3 D
* Description    : 显示对应的电压
4 r% M# x$ E* b+ ]" `* U*******************************************************************************/
' j- M" \/ g; x" {' avoid Show_Init(uchar a0,uchar a1,uchar a2)
$ k: D; f; w* x- Z" d. ]{
! |1 V% ?9 Q5 S+ o$ j  T( T: l- y        Write_1621(15,tabe1[a0],4);
6 z: f6 h0 j( [* F/ N7 m        Write_1621(16,tabe2[a0],4);
6 E* ]) u3 H( a/ [( R. V6 u% q# ^        Write_1621(17,tabe1[a1],4);2 k" X0 G2 L# w% A3 a
        Write_1621(18,tabe2[a1],4);
6 S9 L) S( Z) Q* l% G& O8 A8 s        Write_1621(19,tabe1[a2],4);
& u; g( @8 e2 m        Write_1621(20,tabe2[a2],4);8 B2 r( h! C9 i. w3 U; B' D
}void main( )( x6 z" h8 N$ G( }  x8 C+ d$ R
{
% O1 U# Z; _, h9 }        UINT16 i;& F" U% b6 L9 _6 S5 `
        ADCInit(0);5 }9 x1 E1 Z0 x3 k" k$ C4 m
        EA=1;              //开启全局中断
1 r4 C: k8 g/ x! }( D/ v) v9 E& S        Init_1621();       //初始化HT1621& U# z8 x* U$ F! _- y1 v
        HT1621_all_off();  //清空LCD显示7 f2 f9 U5 }1 j7 v& Z' Z
        while(1)% h* k0 y. E3 ?6 I( x+ P8 C
        {' I. F# h( P" ~. J, T& U* f
                for(i=0;i<4;i++)( O6 g( }' U! x
                {$ f( Z0 U$ V& |8 b8 H( G7 j1 ?* H
                        ADC_ChannelSelect(3);         //ADC采样电源开启和通道设置,采样通道AIN3$ g  B6 f) f! S) Y
                        ADC_START = 1;                //开启采样,等待采样完成进入中断
4 K8 V* F8 B! k                        while(ADC_START);             //采样完成,ADC_START=0# B( _8 L# W4 j" m4 F
                        num=ADC_DATA;+ l9 @  e  |! ?8 q2 o) ^1 g. t
                        mDelaymS(100);                //等待,进入下通道采集数据/ b# K0 ?1 }  e' p( [
                }        
; v( F; q0 T( Q/ k$ \                a0=num/100;
; E( \3 |* l$ ~; L0 t3 k; N  ^+ t                a1=num%100/10;
9 Z+ l7 u9 H- Z- o. G6 k! @                a2=num%10;0 X; q, L; I1 p6 r6 n. ?" j
                Show_Init(a0,a1,a2);% o& ~, I7 k' j
        }
: V" s3 V1 h$ o3 J6 q9 B! M}
  T2 t5 }: M* U0 a6 e9 d; v' W! X# M5 [3 k% F7 |; B

: K2 S$ Y& ]$ p9 U0 M/ y

该用户从未签到

2#
发表于 2021-12-10 11:26 | 只看该作者

- j) ?4 Q' C$ Q1 N- R0 j这个需要从3个方面找原因:& P# O, [# Z2 ^# ?* w5 o
1. 显示功能是否正常;
  i3 ~' i! J" U/ H" s7 N2. ADC工作是否正常;
9 p3 H; u( F+ Q3. 采集的数据是否送到了LCD上。
1 Q" g' ~) u6 t9 b) j/ U   三个环节缺一不可。

该用户从未签到

3#
发表于 2021-12-10 18:12 | 只看该作者
以下几点,核对一下:+ v( _/ e6 l( W9 }

# F* s- L4 V6 s) R4 Y2 V/ |# oADC 采样模式配置步骤:
% o/ N: c2 \: _6 w/ i+ @9 P0 X" W(1)、设置 ADC_CFG 寄存器中的 ADC_EN 位为 1,开启 ADC 模块,设置 bADC_CLK 选择频率。
! |9 p: `5 ^7 ^$ k3 p; T(2)、设置 ADC_CTRL 寄存器中的 ADC_CHAN1/0,选择输入通道。& M/ h, K1 c9 v3 A
(3)、可选的,清零中断标志 ADC_IF。可选的,如果使用中断模式,还需要在此使能中断。
4 ^6 N+ v$ A9 P! @& `(4)、设置 ADC_CTRL 寄存器中的 ADC_START,启动一次 ADC 转换。
8 r7 x) W1 H( a5 h4 h. ~/ a7 ?/ f(5)、等待 ADC_START 变为 0,或者 ADC_IF 被置 1(如果之前已清零),表示 ADC 转换结束,可通过5 ~2 z7 L* ^. i( m3 N. o2 |
ADC_DATA 读取结果数据。该数据是输入电压相对于 VCC 电源电压的 255 等份的值,例如,结 果数据是 47,说明输入电压接近 VCC 电压的 47/255。如果 VCC 电源电压也不确定,那么可以 另测一个确定的参考电压值,再按比例计算出被测的输入电压值和 VCC 电源电压值。
* W! a( g: g1 k(6)、如果再次设置 ADC_START 则可启动下一次 ADC 转换。
  m9 k% f* S0 c3 M) z7 o) P
* ~9 V/ p/ h; `- T2 j$ ?" `另外,重点:
+ ^0 o4 V3 ~1 f6 c2 u; X9 ]9 A: @端口模式,必须设置为输入并且处于输出 1 的状态(相当于高阻输入),Pn_DIR_PU[x]=0,并且建议关闭上拉电阻和下拉电阻。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-18 14:21 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表