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

ADC5608和LCD12864电压示波器制作 带源程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ADC5608和LCD12864电压示波器制作 带源程序% v" u' P6 D3 |( P

' d" G- a9 v3 v# _2 j

9 s3 g( v; }' g+ v: TADC5608转换芯片和lcd12864液晶显示器组成的电压示波器设计.
9 a: }% B4 F! M8 W 2 f0 G* f% V' S0 H$ F! x
; ^1 g7 a7 b6 c9 x, G
ADC5608源程序:
4 V% ^. r; W( W2 H/ z- k# ?- m
/*
/ a0 I+ V) m/ b0 x2 ]3 s        先用Io_init()才能用
4 ]7 z+ d4 \9 n7 F2 ?- h: |$ {8 z$ s        adpro()返回电压值0~1023
& J- J) e. U1 `2 W: P*/9 E5 ~3 {; V$ C4 O  g
" [7 K/ d, x, n. M. X, i3 D3 t& I0 _- E
1 e5 n) }" G1 m" E. {# S5 V
* \! Z$ g6 R8 T) `& k
3 B; M" J) q2 |7 b# J$ ]: R
void Io_init()/ k! @: ]) ]* U0 x: o$ I7 Y
{
4 J! r% ^( Q+ z         P1M0=0x80;                                        //设置P1.0为高阻输入,以准备AD  X- P/ |6 n$ @- l& T+ k
        P1M1=0x00;
  H, W' w) s1 j8 w1 ^8 V    ADC_CONTR = ADC_CONTR|0x87; //1000,0111打开A/D转换电源                   1 s4 d) ]9 L+ m0 {6 c7 m3 W
        delay1(10);# O7 Z2 l( h. x' O
        delay1(10);
* D. V6 y  t2 s- i4 s4 o        ADC_CONTR = ADC_CONTR&0xe7; //1110,0000 清ADC_FLAG,ADC_START位和低3位}        7 c2 c# P% u7 S& i
}
, n% h# p+ s* n( I/ u  \) Q//=======================================================================================================*/                                                                                                                                                                                                                 $ Q! O! b  l5 d! P
//                                           模数转换函数(8位)                                                                                               */& E- B3 B  d9 j. Y* b' ^
//=======================================================================================================*/
! G. X8 q* a4 e3 r: E' @
4 d! p8 V) M2 k

5 w2 q5 b! D% G; ~unsigned int adpro()3 u& s5 ~% K4 l
{
& y* Q: M1 c/ b/ c3 G, [! A) b$ z         unsigned int adbuf;$ p4 E8 Z' o- X, `3 k5 w) l* f/ t8 k
         ADC_DATA = 0;               //清A/D转换结果寄存器  K( P- v  f$ `) m
        ADC_LOW2 = 0;
" [' K/ z* E. R8 M& g, z        ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换
6 v7 L. b# N; T9 O+ y        delay1(10);8 s6 n4 X" L/ \7 {/ P
        do{ - r% l& @1 c7 D
                ;
% J, Z* d  A) j3 m                        }   
( |" X( i- G7 i5 g( q* S    while((ADC_CONTR&0x10)==0);   //0001,0000等待A/D转换结束! }$ V& |9 E4 u: x, E( l0 S1 ~% I
        ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D转换
# O1 p; Z( y, ?9 O) E2 g" u        adbuf=0;
* A% P, K8 L1 L) M! c6 B        adbuf = ((adbuf|ADC_DATA)<<2)|(ADC_LOW2&0x03); 2 V- o5 ]+ p- j4 `" J5 [" R
        if(adbuf>1024) adbuf=1024;5 u6 D0 }9 `; _( T/ h0 B4 I
         return adbuf;. Y  V) q/ U2 V. b) @, |: x
}& c$ P4 q7 J' [' z7 p, L3 i- e

3 v: M8 W! w' g
% l3 n) ?2 v8 ?( Y主程序:  e- b8 A6 }5 Q) b& }0 T5 Y
/*
8 R/ t3 M! D% f, g" p4 pP1^7口为波形输入端口4 ]9 c$ T% H0 L9 D
*/
6 {) M( {- R0 x#include <STC12C5608AD.H>
9 [6 l" N2 r7 e- T$ j#include <5608_12864.H>2 V4 Y: P: i$ p8 L
#include<picture.H>
, l, ~  G) \8 F% c  b$ N#include<ADC5608.H>
4 r# p1 Y, X4 Y0 }9 C( D- c1 I//#include<math.h>) }7 A  b& j! _# b
$ ?2 O0 G' `& J  h" W  P
; A! v3 B3 v( |* ~
sbit a=P3^3;
6 S# z. T& w9 Bsbit b=P3^4;
; ?4 k& j" h; A  F" G0 L9 Y6 q* v1 bsbit c=P2^0;        
- z; D( P% T+ I; v- Z' J//#define pi 3.1415926; P1 Q( K3 }; a8 B+ b1 c
void main()
  p% j6 s; h' N) t7 E; f2 Q{        - p/ [6 E- y! q5 H9 b- i( K
        uchar X=15,buf;
5 U2 C" e* t6 O0 K) k2 R$ B- P        uchar Y=32,yy;1 A0 z! x$ d9 G: f
        double Vol;        * v& z) X: A3 w. x6 u$ @
        a=0;b=0;c=0;: J+ j+ |) W$ c) L. \
        Io_init();7 n- s# K7 D  G5 o3 [3 U
//        lcd_init();
( _5 k5 O* S8 Y7 b2 b" \        init_picture();
; a- G$ H- n2 n. _3 h  t- Z+ g& B: m        show_Pic(XY);: }; G7 H  W4 p$ h
        //Y=32-yy;
7 a3 L# I  {( i3 a! o: q+ I/ x        while(1)                        // 进入程序主循环/ h0 z* o* p+ k/ ~, x
        {                 ; n; q2 U$ B) c& Z3 {* Y
                buf=adpro();
" N! i" Y! V. J: t4 j5 m                Vol=5000/1024*buf;//电压单位mV        9 |( [0 k) k0 H& S$ `( M! a
                if(X<126)        X++        ;% N" S0 J" C6 L: y% |
                else                 
" r& B8 J' Y9 E7 }" _                {# p* S: S7 R4 K3 j
                        X=15;5 A  Q; k1 W% `, G
                        lcd_wcmd(0x01);/ a% h% j& `( u: N9 i  q% }
                        init_picture();
: W% |0 f' b4 `  M+ i5 }                        show_Pic(XY);. M! H' c  o# }& z5 g
                }6 s) N9 d' r: Q6 a* a, ]* A
                yy=buf/5;' S9 r7 l) F1 }; V: g& X) ~8 I
                Y=56-yy;" ?/ p* \/ V+ x* q5 c3 w9 @+ B
                DrawDots(X,Y,1);
" ]& Z! w7 d4 e" p2 Q& X2 A8 S//                X++;
4 B6 S: r. x# C$ y& X% m$ b//                Y=32-25*sin(3.14/180*X*8);' [9 n. O6 n! X4 s2 B9 }
5 z8 }+ ^( A1 q" n  X
! f/ M5 u; G% ?: R1 M, X( S" U
. h) g" M# \; z, Z1 \# |

6 K  p$ s9 |4 _…………限于本文篇幅 余下代码请下载附件…………
1 R3 p: x- L. n: b- y# l % K8 A6 @) c% @% e7 y

& @( J0 S, f3 |* j5 f8 m

9 T  p4 @; Q4 @2 b全部资料下载:, M% L* m* x' [/ g0 j* W
游客,如果您要查看本帖隐藏内容请回复
% m! R. Z$ ~+ H! Z2 H$ u8 @

$ a' B* N  _) N# S6 X
9 n8 k* ]: k% }8 ^
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2019-1-10 17:09 | 只看该作者
    看看楼主的原理图
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-3 13:36 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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