|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************
; e, }: C( w6 n, ^5 C; ^** 这仅是个学习(A to D connvert TLC0831) **- z) Q* l% f' d
** Keil C51 REV7.0 **0 w$ g2 I3 |/ T. n" I
** 优世电子公司 **% Q4 z" B3 {9 z
** REV1.0 ** D0 ^6 d1 q* h1 o$ i! H
** **
' L# `' P) L6 `**系统所使用的器件:TLC0831(A to D connvert) **( ^& K3 f- r6 Z0 T5 M8 x" r
**创建人:Jarvee **
" H. a3 k1 n1 X' B**文件名:main.c **, N# A% K8 n. C$ Q9 W |
**日期:2002-9-14 **& |/ C1 F$ @2 i6 _/ \6 ~. K( C6 M
**描述: **$ k4 a3 k; z. ~ z! M
**--------------------------------------------------------------------------------------8 _; R+ }! z0 k9 p. J! B9 e3 J
**修改人: **7 ]0 P$ s; I3 p& X. L- c
**日期: **
* N# m, C G( q9 x1 ~**描述: **
* r! }8 l, L' |; T**--------------------------------------------------------------------------------------% m$ u/ U2 A3 j9 f/ G
***************************************************************************************/
8 H, |7 u/ `7 R# c
6 R) v& W3 d k
% q. i' v/ ^5 T#include <reg52.h>, [: k+ K x9 A1 U* w
#include <stdio.h> //头文件9 _. t* X* c# n& \3 |" F% O
, r% r3 Z2 E. f. g
typedef unsigned char uchar; //重新定义数据类型8 s: I9 e3 K( R) h8 F
( K- X A; c) g% J! G% u
void delay(uchar x); //函数说明
2 c0 @6 o9 A9 ~" k$ |( s$ Quchar readadc(void);8 i2 M3 u% X4 F& {" t0 g, b5 o0 Q" Q6 y
void adcck(void);
1 z3 G9 H' w5 S" ?4 G9 o- z: g; J* ~( K
1 l( Y& c; A% M" Qsbit adcdo=P1^0; //DATA
1 j/ s1 T+ H. J9 H0 ?) J; isbit adccs=P1^2; //CHIP SECELET5 d) d* U; p Z8 |
sbit adcclk=P1^1; //CLK& _/ v2 d3 C. \0 ?' ?- s
//P1口功能宝义3 c: `$ j# _8 f+ n& ]
7 d1 J: j& [) l, W3 @7 M+ b
- T' j& Y# R0 `+ Y/ G8 v8 L1 b( W) `
/**************************************主程序******************************************/6 J4 n! O. F- x/ G
void main(void)3 p, b! E% h6 l1 ~; R3 c
{
* S' D5 p3 Z9 F! Auchar a;
5 X9 n" ~; {1 A2 _$ `8 Y m' _# `0 pa=readadc();
! n9 N R% e" B! ~ACC=a;, r3 Q& l& Q* @1 k) Q" f
}
) |, N' Q9 K: Y* c$ } z5 j7 U3 B7 ?1 d6 p( }4 ?4 d
3 F) H6 L: F" p/ x/***************************************************************************************6 w7 i& S; m" a; F W8 Q! b& G
**函数名称:void delay(uchar x) **5 ^9 b' j& M' S! |' v
**功能描述:延时 **; |* r) L4 z; _7 F. K
**输入:uchar x (所要延时的长度) **
3 K; D( d. @8 B) x: B1 E A**输出:无 **+ }2 d* |% c6 d3 R+ _- \
**全局变量:无 **0 |& K$ b2 u2 c0 K7 \
**调用模块:无 **3 f: r' I+ Z# Y# k6 q) q1 ^
** **
: ?3 K; `& @" }**创建人:Jarvee **
" q: J- w" M* _% U M4 B( b**日期:2002-9-14 **
, m; w0 ~* d# U* I# H: x$ e**--------------------------------------------------------------------------------------$ w0 A9 u- p( R& M7 Y
**修改人: **
& Q2 ]! C; m" p3 Y2 A7 G! l5 A**日期: **
/ @+ x. H0 `' Z3 J# q**描述: **
8 c$ M5 ?5 N) K4 T+ \2 t**--------------------------------------------------------------------------------------
& Z1 ?" V+ X9 D3 a***************************************************************************************/$ H; a& q( t. K, H7 Y/ e
void delay(uchar x)
- z3 B4 j, A, s0 i E. ~# q{" F# h1 X2 }- y
uchar i;
" w( e/ X: h! Z5 h4 } \! `3 Z* rfor(i=0;i<x;i++);5 f; w. N8 I3 V8 ^' k# J4 l
}
: O% }# l8 Q6 W8 }
8 A; Q1 ^9 t5 B( V1 B 9 O: N2 \6 c- j y+ m# ^
9 ]; b9 |: n2 x# j2 E4 T0 s+ Q" l
/***************************************************************************************
0 h6 Z% g+ Q1 S& p- e, Z**函数名称:void adcck(void) **
# b4 |$ x# N. J/ ]% z. P/ y**功能描述:产生方波信号 **
" Y1 a3 \! F) V T4 U**输入:无 **. H$ w, ~. t8 d. W" f
**输出:无 **; Y; ?5 |" i# u
**全局变量:adcclk-->P1^1 TLC0831的CLK **
" H) _. x5 r& c( q; \7 X8 e**调用模块:void delay(uchar x) **+ I2 t- R; f: @7 q. F' e* p( V; |
** **# v' W4 }$ h! ?5 ]5 L
**创建人:Jarvee **( Q" L6 R$ O8 a6 [$ m
**日期:2002-9-14 **
! s! A. H# ^9 k0 a**--------------------------------------------------------------------------------------0 W1 ?$ B* m3 \! \
**修改人: **5 R% H/ K/ {- l; x6 b9 t
**日期: **5 K8 Z3 |6 ?3 H' i; M
**描述: **
* B8 q2 X, I& V9 E. i: r**--------------------------------------------------------------------------------------
+ i" N$ B7 D8 h* @***************************************************************************************/
# b" V) Q" e1 D' J- A) cvoid adcck(void) // clock signal 4 Z" F6 W! l8 r- P2 {
{" T& X. A9 B$ g, n- f9 D
adcclk=1;: j2 Z6 J% Z0 J7 ~4 L
delay(2);
; M* Y: ?) r+ R, u& D! u2 g! ]9 l
' s. H7 M0 D* ]9 r2 v8 kadcclk=0;" k0 C0 U* ]7 y: J% Z g& r# T. C7 u4 y+ s
delay(2);
- F& u0 P' l p6 B6 m}
q9 x1 C# W5 s! o2 w% i+ q, D& f3 z4 S! w0 i$ |6 E3 n
& j' ?4 Z6 n- y! A! t) P, c' |
5 H& [* j5 N$ z% { w8 E/***************************************************************************************
- D( ^( a* r: N3 O**函数名称:uchar readadc(void) **. u6 f' z0 H! X. ?# R4 m1 D% ^
**功能描述:从TLC0831读出所转换的数据 **3 s3 s0 [! N! A7 i5 V, Q
**输入:无 **
1 \ [4 A- Y# A7 X4 m**输出:函数返回值 **
2 S9 K- o [. H**全局变量:adccs-->TLC0831的使能线 **5 Y9 s, J- B) o3 h e2 a% K
**调用模块:void adcck(void) **
1 j7 ^6 }) a4 X W+ M** **
: ]1 x! V" b8 N& W* q0 P- y**创建人:Jarvee **+ w O8 H4 T0 j! W1 n- _2 V4 k" \
**日期:2002-9-14 **
/ W! n8 M9 ^9 ?' ~) ^- t! f**--------------------------------------------------------------------------------------
* u/ J. P- f8 a6 t0 ~. u2 a**修改人: **
/ h( J$ l/ u+ S8 S- v2 O**日期: **& X/ z$ @; J- e+ M$ P
**描述: **
- G6 @' y2 F) U# b3 v! Y- B: u**--------------------------------------------------------------------------------------* v/ b- }7 g* p4 }. O
***************************************************************************************/
6 _ B8 r. f' ], Iuchar readadc(void): w2 {" C+ s9 @9 p* X1 d$ b1 ]8 a
{! K. }7 d7 j' G; Z( m
uchar i;2 H. O9 i* _" U: ^6 T* N
uchar ch;/ A9 n6 y6 F, o
adccs=0;adcck();ch=0;
; V0 M& I! n: ~& X# Z5 i
4 K) H$ o; E2 Yfor(i=0;i<8;i++)
" A/ V/ M: b0 w) E) Z4 A. w{& A! G+ _1 R. F9 h/ E# \
adcck();
* e( z1 h" }+ mch=(ch<<1)|adcdo;8 a$ K: J( z6 T# L" i0 |6 K3 |9 e4 `
}
: c' u8 B, F6 a& _$ @7 h4 e0 v- Preturn(ch);
4 e" R- y% \, Q# i6 f5 l1 G1 x& d' C} |
|