|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************2 N& @; M$ Q. C+ e% o
** 这仅是个学习(A to D connvert TLC0831) **( T( Z0 k/ t3 Y9 G# _& ~
** Keil C51 REV7.0 **
1 Q% q8 [% l1 a$ C** 优世电子公司 **( q& d5 \5 G- R5 [: f
** REV1.0 **4 W" T$ F* n( e9 `6 s9 w( g
** **$ s! |: y! W% l6 y* J/ ]' S n- \- ?
**系统所使用的器件:TLC0831(A to D connvert) **# M% {& d) _3 M" _+ b I! ~8 P
**创建人:Jarvee **
3 m2 S k- @, t**文件名:main.c **0 U& S; A/ t% j6 w& y
**日期:2002-9-14 **
& j9 b x: Y' e7 R6 P' V" }**描述: **" a3 v; x L# D. X) F1 V2 Q
**--------------------------------------------------------------------------------------1 \. w. w' A* w/ F8 G4 \5 n- B
**修改人: **9 `# B1 ]5 D+ z) m+ t. z! U
**日期: **
7 o( _, r" r) k* u: s8 N+ F) D$ J**描述: **3 `7 F7 M7 U% z2 B5 X1 N( E: E5 Z
**--------------------------------------------------------------------------------------
0 c2 R, `' l! U5 M9 a7 B. q***************************************************************************************/; K2 }+ D3 T( v0 u* g3 n: y" ?3 W5 s3 A
( t k7 p: [! g) A0 t/ ~9 V+ ]( d* T2 ~ {5 J [( Z5 }- K
#include <reg52.h>
& a" o* D: ]0 j. H. u#include <stdio.h> //头文件$ k! H6 ^2 [! h" X8 b0 l. ]% t! R
( ?% t- v# ]1 s( Ztypedef unsigned char uchar; //重新定义数据类型
# `' ?' i. a a" N
3 p3 I" h% l+ avoid delay(uchar x); //函数说明
7 l' `! t: Z' N& ruchar readadc(void);
. z. F; ^8 d# y( k( n: O! {void adcck(void);7 Q4 w: ~' g& n3 A# l( G2 [
) e0 C$ Z2 \1 h2 ]+ H+ [2 C
% G# p1 ^4 v& b6 g% ?sbit adcdo=P1^0; //DATA + d7 g) u% t/ a* X$ N8 F M7 A
sbit adccs=P1^2; //CHIP SECELET6 |- [ j! u% w
sbit adcclk=P1^1; //CLK
8 p( O; {) U" c4 t$ X# |$ k//P1口功能宝义7 r q& }, a! u( @
z+ M0 ~" T" w0 s$ ~9 V# a, b
( x* ~! ^. c+ @# b* X) K9 p
$ \$ y9 r5 ^- L8 J/**************************************主程序******************************************/- j* N0 b" h) N6 K
void main(void). r6 D- d9 t+ L0 M# \6 M- i+ L
{& r4 s8 P. }1 n: P
uchar a;3 l( X& Q' O! Q4 J$ `" L
a=readadc();+ P# o" G* t7 p: P4 q; C8 {, j
ACC=a;
3 B$ O( L+ U( M* z9 [& U" E}
w i X$ d0 q; r& Z, X% f6 C* Y8 Q# E: L: w0 e' K4 V
9 |: b$ j8 D$ w/ Y6 D
/***************************************************************************************
3 }+ u* q2 S) w2 P# p8 x9 G**函数名称:void delay(uchar x) **
; O8 j7 _7 \6 o- `8 w) b**功能描述:延时 **
' _" r1 a7 K# e0 u4 J**输入:uchar x (所要延时的长度) **6 c& m) k0 F# I6 a; Q/ |
**输出:无 **
6 D* W; {" M$ ]9 a**全局变量:无 **
5 i2 e' q; h. Z8 i! h4 ^**调用模块:无 **/ |; B! g3 X! j6 E
** **
, R* S4 w1 f y! M. D% ^**创建人:Jarvee **2 t( J; g- Q: d n" _- m2 X
**日期:2002-9-14 **# v9 J1 e. N, j9 M) G }+ y: }8 ~
**--------------------------------------------------------------------------------------
8 M: ]5 R) q# b* v/ E**修改人: **% P; G) o* v* P" J, g
**日期: **
9 z4 K) e! {5 z6 a9 {**描述: **
O+ ?0 b3 {) L4 P! N/ Z**--------------------------------------------------------------------------------------! }- a, j- `5 M' `
***************************************************************************************/+ K6 w$ N0 U* X
void delay(uchar x)
E9 s6 g" \6 E$ {0 ^ c0 F! m{
/ ~$ q1 U( L3 N! nuchar i;) R$ `- s$ x) c
for(i=0;i<x;i++);& h C: `( a+ ?$ a0 l1 S# L$ ?
}
/ ]2 i5 I% Y3 }6 U9 f& _0 V: A; H' j5 \8 A" f& e
! y' O5 E$ z( p+ h, c& N
6 S+ a# h2 g5 l7 {3 p/***************************************************************************************
; K3 o$ T0 O; }% M6 k, u" J**函数名称:void adcck(void) **5 L! p6 r) v# z( x$ @
**功能描述:产生方波信号 **7 w/ i$ K9 T+ L/ ?5 r; }6 W4 t; K
**输入:无 **( C! g. ]$ |. q& u( ?5 d
**输出:无 **
4 S q; ?/ S5 O' X! X8 @# d**全局变量:adcclk-->P1^1 TLC0831的CLK **5 q, S' `' r& J1 M' l* Z% _3 \
**调用模块:void delay(uchar x) **
6 ?) h- j0 J7 u# |. m8 y** **3 _- L* |. M2 q9 U# t$ [' V
**创建人:Jarvee **
4 C! k+ t$ k, D( K. {6 R; Q3 X- b/ L**日期:2002-9-14 **
: {) u( f* @2 s) P**--------------------------------------------------------------------------------------* [; {- F; s% B n" d+ k
**修改人: **: w0 o' A, `* w* F& @1 `# F
**日期: **
: y3 P- I/ C$ ~- D* t**描述: **
& _( h$ D5 \+ j8 b4 a4 `, I) r H0 \**--------------------------------------------------------------------------------------
& v$ _5 O& W* {/ ^- z8 X0 g***************************************************************************************/
1 \: e- d# m6 M( L" ^. [void adcck(void) // clock signal 8 @! @( P `; Z5 c
{
: u! ]- J' t5 d8 b6 {adcclk=1;8 E! f! r3 V8 F/ z/ p- }0 _. Q
delay(2);
7 }8 l+ L) i8 a" s, ^9 O- O) H/ Y6 a
* O9 v4 i$ B1 S- Cadcclk=0;3 U9 q9 |/ Z G$ `9 ~4 S
delay(2);
( e/ Q, X7 o: n0 a/ X/ s}" Z" v! j( P4 L3 i
" q6 j1 V8 v1 |! z M
# a. s( z8 p- M4 }3 t9 T
! c2 b3 n7 B3 S; @7 s: R( i/***************************************************************************************( |" X4 t6 b+ s% s
**函数名称:uchar readadc(void) **
% t' k; T/ H/ E- X**功能描述:从TLC0831读出所转换的数据 **# L% h' j! w6 T* r# q* a/ u
**输入:无 **3 V& g! @' ^, T( w' i& V1 d
**输出:函数返回值 **/ V5 H1 D9 J- i f! S3 D x
**全局变量:adccs-->TLC0831的使能线 **
5 M+ y( R) d# B) s**调用模块:void adcck(void) **/ D$ [' t `3 M. V9 _4 d
** **3 i0 A( u; L* c5 `) f ?9 x5 G4 V
**创建人:Jarvee **
) K: M; j0 ?/ c+ {**日期:2002-9-14 **' O |5 `+ |3 s4 Q
**--------------------------------------------------------------------------------------1 ^7 V/ c6 V- A) v' m
**修改人: **( w7 q0 ?; H/ ~) w$ e9 N8 ^) f; l; p
**日期: **& X* B B' M$ m% a
**描述: **& h! ?; m! T0 I5 Z' J" S3 T6 j+ C
**--------------------------------------------------------------------------------------3 J% a' f( u4 \" ]- k
***************************************************************************************/
& S5 [5 A$ C+ h9 }; s" v8 Huchar readadc(void)
- T- T; _( [! |% M{1 `$ M- [" a5 Z, o+ _8 C" N
uchar i;- G0 |: c/ p9 H+ N% M. b% c
uchar ch;
! a) H" h. U. aadccs=0;adcck();ch=0;6 i$ Z' n: }+ `' [; S" M5 m$ b
# d- u" ?# K# _) a7 @: E
for(i=0;i<8;i++)
7 U, Y* G* g7 M4 J{7 J) x. B m6 N. y8 \- m% ^( }
adcck();2 ~; ~/ q* I) o% [3 d7 H8 \
ch=(ch<<1)|adcdo;
& l0 X3 _2 d& Z1 t( \}9 @" ]; f/ H9 ]' r0 t4 }2 H0 N1 Y
return(ch);
1 L; J- [* W& U2 C4 }2 ]# ]" t, J} |
|