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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ADC5608和LCD12864电压示波器制作 带源程序3 _3 Z- Q5 V% [. U
) ]; c* v* ?! A0 K/ j) ^$ D' |# {
6 I: C1 r$ U6 w8 T& H7 D
ADC5608转换芯片和lcd12864液晶显示器组成的电压示波器设计.# m1 d: r& \7 A$ F4 m2 w
; `1 ?0 }0 r/ a2 c2 z: k% L
% v+ l4 T6 f3 O# U+ s2 _
ADC5608源程序:
" O& x! g) k7 G1 n. k8 g
/*3 V& |1 Z5 m* V( a& e
        先用Io_init()才能用3 t( h- Z1 f% q; K
        adpro()返回电压值0~1023
' w1 C" V6 B; K$ W/ ^*/. W' j9 E7 X, P( E0 e

  R: o0 Q& j1 V5 u7 Q8 P% @
4 r0 p: ^+ c  [+ X% I9 }$ p

! U( p; a2 |) l/ H( i

/ V) b" ?/ |2 t5 pvoid Io_init()
. C4 i* u2 K) U1 s0 }{. N2 _3 J( f) b1 G
         P1M0=0x80;                                        //设置P1.0为高阻输入,以准备AD- X2 o# M& M4 v. r* t
        P1M1=0x00;) X) [, K& P( O' Z% C) Z
    ADC_CONTR = ADC_CONTR|0x87; //1000,0111打开A/D转换电源                   / ^& n& {2 T! r7 m. f
        delay1(10);  D! _8 p2 G; Z4 Y
        delay1(10);
. w8 D% e" }: v% X        ADC_CONTR = ADC_CONTR&0xe7; //1110,0000 清ADC_FLAG,ADC_START位和低3位}        
) l& f- P8 R4 [4 ?6 R. o' m}7 Y& F1 `9 ?$ ^, X9 s( v! y
//=======================================================================================================*/                                                                                                                                                                                                                 
! Q* e! }6 E* T8 {, X//                                           模数转换函数(8位)                                                                                               */
, d5 a; O9 M" C//=======================================================================================================*/
. M1 \3 t( _6 N7 G' H0 i4 ~$ t; i% v( R# q: \7 X  B# F

2 f/ i! S# J  N0 ?' k4 v$ wunsigned int adpro()' B" R$ c4 C0 \1 ]
{- e  x- b0 b/ f7 g
         unsigned int adbuf;
/ A- u- A+ w3 |7 J2 ^' u8 T& s& ~         ADC_DATA = 0;               //清A/D转换结果寄存器
7 H- U3 ]" m. m2 W; f" ?$ Q) f% f        ADC_LOW2 = 0;
" }7 H6 a% @* ]! K3 S$ L0 j8 a/ L5 m        ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换
& E. ]* b1 b! `8 ^2 p        delay1(10);7 J$ l" b( F, P5 A0 z* Z' j
        do{
1 T  v6 b7 S, m                ;
' l, Z5 I7 P1 |5 V) P                        }    8 x9 r- K/ c8 L5 n# {2 \. \' e
    while((ADC_CONTR&0x10)==0);   //0001,0000等待A/D转换结束' t1 a1 e- D+ M) Q
        ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D转换9 v: u6 q, Z( f
        adbuf=0;
% _& d: H9 J7 c2 j' h/ a. m        adbuf = ((adbuf|ADC_DATA)<<2)|(ADC_LOW2&0x03);
( w" v6 Q8 Z3 Y; \& v        if(adbuf>1024) adbuf=1024;8 h7 x0 H+ p" ]- B, O" s9 M9 \
         return adbuf;
( G# @) G( c3 C8 Z8 U! S}0 q4 p3 V, Q5 W# a
9 X$ o; L2 O& }" Z- v5 {
2 t4 W+ S  ]: y2 b$ X
主程序:
& d5 u' L# K# A6 |/ g: A/*
; a. @+ ^2 o  p: p  J2 b* LP1^7口为波形输入端口  N/ |& N5 R8 @# q& j/ o; l
*/
% p3 m% h; _+ Z/ ^#include <STC12C5608AD.H>- I) a" W- x6 y" j' D( [" L0 p3 T
#include <5608_12864.H>
* p$ }5 }8 Z$ m; ?- H#include<picture.H>$ e2 B3 Q& A0 ^4 o& l
#include<ADC5608.H>; X- W, L: W. O  a9 H) T8 ~/ G
//#include<math.h># \7 i- g) r) D' r" [* [2 |8 g, J
/ v$ U& u3 X# d, k8 ~: h) M( n# e
7 T3 g/ R9 i, {& Z7 \9 `% n
sbit a=P3^3;
( {4 b# f3 J- _7 Csbit b=P3^4;8 V. E# N/ V) A" @( g: F
sbit c=P2^0;        
- M: q5 D0 W, r: f: S8 c/ g* ^//#define pi 3.1415926
; M; K1 x; a2 ?' J; ?  z# C( ]void main(); i; ~: X0 t6 p+ o/ _6 {9 d  {" T
{        
9 m1 t( H  C% l/ _+ [0 j& v) Y" Z        uchar X=15,buf;) i+ Y5 @/ I5 p: P' ^% S$ |: ~
        uchar Y=32,yy;. }+ L) E. P  \! p" b+ O; G  L
        double Vol;        0 z3 `% R! L! A2 o: Z
        a=0;b=0;c=0;: p! i9 }% I: R4 ]) y  I
        Io_init();
/ f: K1 v3 L& K/ M//        lcd_init();% c$ d* y- p2 z& y2 o% c
        init_picture();6 y3 m) ~0 v. Q# T* B# j
        show_Pic(XY);
9 ~& a9 C& {- S4 O1 x, n        //Y=32-yy;
+ m2 g* M4 M4 y/ p9 Z        while(1)                        // 进入程序主循环
& k8 T" X1 U/ M3 k$ }( A        {                 / g1 i* E5 P$ M# M7 M9 I( F; y7 r
                buf=adpro();
  n: A2 X! x% X) D5 n  b! @1 k                Vol=5000/1024*buf;//电压单位mV        ( f5 R. R2 j. c$ k+ T  M
                if(X<126)        X++        ;" y4 d8 p8 e* P1 s( _
                else                 0 g, C8 {  \4 K+ t( ~) L
                {
% V% g4 l7 u! D1 S; u                        X=15;
5 G6 k& D2 [$ M9 g" C  y                        lcd_wcmd(0x01);
: A/ E; S2 @* c                        init_picture();+ o; x) b2 f* }% a# B* Z/ R& @' p: h& ~
                        show_Pic(XY);+ C" N. \* m1 ~, _
                }
% |# I) T& V# w9 W                yy=buf/5;, C$ w, l  n% V  @) _/ q
                Y=56-yy;. s7 |* S3 l3 b/ n) ~
                DrawDots(X,Y,1);- r5 b$ r; w3 T& @* J" f; [
//                X++;
0 v# f& W" a  @7 Z5 {" X//                Y=32-25*sin(3.14/180*X*8);! k0 E7 R! Q' m" E8 J- T
2 Z# K# `/ O1 e$ @6 E3 t, \
  s( s% }5 Y9 i; Y3 n" Y  p
1 X* y5 [; U2 b8 o& S: e2 a& ^5 Y. c9 @
. X0 v! `% ?% p2 V0 B" D
…………限于本文篇幅 余下代码请下载附件…………; N- M: y1 Y8 |6 s3 Q
- y2 x7 _2 k- R2 y- W# X- [1 y
0 o# [0 K( M% R" v5 i; @, h! E
2 \  N. A' F% v" S! ?2 V  R/ J
全部资料下载:: T* }8 N4 G& I3 c, d& l6 h" [
游客,如果您要查看本帖隐藏内容请回复
8 x) {- E+ _9 E( ?( I* V$ t3 C

8 k& c$ d& d* {5 x

/ v* O( g! y# v* D4 u9 c
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-18 20:07 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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