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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ADC5608和LCD12864电压示波器制作 带源程序
+ X* W3 @- x7 T8 J: i% w. b/ _" w9 y( ]$ K; n; H
2 L3 b. _- f; x
ADC5608转换芯片和lcd12864液晶显示器组成的电压示波器设计.
4 e3 S0 T& `! }+ Y. T+ E 5 ^% K  F( W4 E+ [2 Z

4 w7 G  j2 ~! T- g( G# iADC5608源程序:
  v2 i  @; {6 Z6 @
/*7 H, B/ [! k7 D: F1 d
        先用Io_init()才能用- H, I3 B" |' m0 K) M0 g6 o
        adpro()返回电压值0~1023
* Q+ F3 V* \8 F) j) S3 l*/
) K# l/ d) a4 ^8 r4 D5 _& l4 D0 M0 _  ]2 s
- T& e" N- J2 X& J* q( z1 w
  n1 Q: y. F8 q- n5 D4 }
) A. [! e. G& a* v, i  H$ C
void Io_init()/ m5 u& a0 y( z* M5 B  `; }9 c, I
{0 G# i! |. m0 [" _/ m2 x7 b
         P1M0=0x80;                                        //设置P1.0为高阻输入,以准备AD+ ]2 W' e* M  O# Q7 t, N
        P1M1=0x00;
9 N# Q* l$ t" T2 E    ADC_CONTR = ADC_CONTR|0x87; //1000,0111打开A/D转换电源                  
( M3 I1 z- u" U4 G        delay1(10);! \, S- U, a5 |
        delay1(10);
- z1 n( i0 j* W' a        ADC_CONTR = ADC_CONTR&0xe7; //1110,0000 清ADC_FLAG,ADC_START位和低3位}        # I! }0 C  s8 d: y9 R( t
}' K5 ]1 B& M; n8 y
//=======================================================================================================*/                                                                                                                                                                                                                 
" ?& Q1 Z+ t7 C$ H5 l//                                           模数转换函数(8位)                                                                                               */
2 |7 |0 \' W& L2 U//=======================================================================================================*/
6 ]/ k4 Z1 ]; k8 G5 T! O, ~6 R! m
( l. Z0 J, M% _( d: w. j
unsigned int adpro()- a0 \/ U6 V0 x+ T5 g0 n% ]
{3 |/ V0 F& Y2 [" ]8 i: i
         unsigned int adbuf;' E! b$ q2 F+ E% f# g
         ADC_DATA = 0;               //清A/D转换结果寄存器9 l- ]  L! w: t& Z& C& O
        ADC_LOW2 = 0;
& ]9 ]1 w& }8 i        ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换
0 ]/ e  u/ C, W) S; {        delay1(10);! K0 K- Z) u" z/ O  {
        do{ ) {% T+ X1 a5 c. `5 p. H
                ;
# b3 y( V3 a1 E+ {) q! v                        }    , c2 M" l7 z- T: l! H
    while((ADC_CONTR&0x10)==0);   //0001,0000等待A/D转换结束+ V4 K+ I+ \' R! r( _
        ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D转换
3 Q7 z( c* c+ k        adbuf=0;
1 [& E8 q0 X4 X; a* R- k& Q" t, F9 ~        adbuf = ((adbuf|ADC_DATA)<<2)|(ADC_LOW2&0x03);
0 E6 P+ K; t0 q! [( g, }        if(adbuf>1024) adbuf=1024;* x. b) C& p) w; S! |9 j" x
         return adbuf;* }2 @2 D) ~2 {( w* e# Y
}
. V9 X7 c: F+ _2 \, P- ?5 Z. {
* ^6 T: J% @2 ^5 i! Q5 [) [0 ~/ P, B% e
主程序:. r2 g- d! i/ o5 P
/*3 c* H* a$ l# _2 C
P1^7口为波形输入端口
5 o( k# a7 S: N*/, t1 _6 {, C( H2 q& ~4 c: {3 Z
#include <STC12C5608AD.H>  f: O1 K& g, U* G& ]' }7 t% V
#include <5608_12864.H>! S3 `/ ?  j$ f; p3 p8 Y# `
#include<picture.H>
- N8 l; ?+ q+ c% T6 f, V: J#include<ADC5608.H>- ?% E( F% |( F$ u; c
//#include<math.h>4 q) ?; p1 a3 W' x

# x; f! x# m; c$ v0 `, l+ i, F+ K
1 m" ]! M  V/ V% T" m
sbit a=P3^3;# ?) B( h, l7 u  r1 t3 G
sbit b=P3^4;# Q" ?2 ^" _% o8 w% _6 o
sbit c=P2^0;        
8 \5 h, [. q5 o& |//#define pi 3.1415926
& U9 D' G: F9 j' ]1 P8 v, @void main()
2 K3 s* i- e; Z- Z& B1 L{        ! F3 a7 h; _0 z1 b
        uchar X=15,buf;' ]8 p/ g* K, L& m
        uchar Y=32,yy;
( U! Y# C3 r! V4 c- S        double Vol;        
0 J# t/ n# O8 s, ~1 T, p" }        a=0;b=0;c=0;
+ V: S$ Y1 g# X! D        Io_init();
2 B; D  |9 T# K  S1 r//        lcd_init();3 L. a" ?7 L) Y
        init_picture();2 I; p- d; [9 d: G1 w7 k4 u& A( h7 r
        show_Pic(XY);3 Z( p# s6 r7 y" Y6 e
        //Y=32-yy;
  o: u1 c, W, Z+ c1 o0 y$ ]: @        while(1)                        // 进入程序主循环
- w3 n+ e: J+ _0 a  P        {                 ; @4 U( [6 {4 ?6 R5 ^# s
                buf=adpro();
2 b0 o# `6 y4 |9 m6 [5 B( G8 m/ u7 N3 t                Vol=5000/1024*buf;//电压单位mV        ' {$ i7 o+ I+ v2 W4 x
                if(X<126)        X++        ;+ m4 x5 m6 W) }7 i/ G$ y4 Y
                else                 
0 \# x8 o6 [/ Y, g5 n                {
! U8 F' p3 W% L                        X=15;
1 j, j& `0 j0 h3 h% Y7 O- P; ^                        lcd_wcmd(0x01);7 |4 V3 M3 i' W+ `& q
                        init_picture();& p+ K! y# R0 B2 S4 Q+ u
                        show_Pic(XY);
$ h) P3 T$ |# Q3 r5 i                }
3 P) P* f, S2 b4 G; O                yy=buf/5;
+ V4 P) P- ^3 y1 \- K# A: D                Y=56-yy;* Y4 u3 c( N2 V" @( i& @6 t0 h! F7 A) S
                DrawDots(X,Y,1);
) |+ _( L  s) b- V//                X++;! U: a, l' O  A/ C! O  s; a
//                Y=32-25*sin(3.14/180*X*8);
' n" o" d5 L1 ]! O) _  v3 u; u4 Y) r0 Q6 ?" d+ ^, a2 g* C

, p$ u8 }8 I# N/ A; n7 \4 [
( b1 o; I( I; E5 u1 s/ C0 l2 W

8 h4 u' D  X1 U…………限于本文篇幅 余下代码请下载附件…………
6 S) M8 O& @# S
( R, S" R" F7 Q2 m3 ?& ^5 e  J9 m! K3 {: I1 _; b' d# E) D

+ ~4 O6 S) w2 J5 w全部资料下载:7 Z" m* [# w8 G, W  Q3 ?  R0 u
游客,如果您要查看本帖隐藏内容请回复
, G7 j0 ^* q! r8 D+ Z" l

; s2 N: c# o4 t# c

! Z( d8 [0 @. ]6 a& V
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-7 18:40 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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