|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************% S* k3 p* v3 J# s2 a" E
** 这仅是个学习(A to D connvert TLC0831) **
' Z: t4 d- G" ^8 p** Keil C51 REV7.0 **
+ A/ V( p. v+ }' ~# \** 优世电子公司 **: x0 P d! L5 ?) ]) _% L1 T
** REV1.0 **
( C4 k8 v6 l( v: ?! n# @** **
2 p8 y/ z+ X4 V2 P% ~4 H0 h**系统所使用的器件:TLC0831(A to D connvert) **
7 N6 g- W5 j0 R5 B* ~6 ^8 N) G9 q7 d**创建人:Jarvee **. s( N# T M4 k
**文件名:main.c **
- j7 P2 D: @8 P7 d9 W5 E" u: S**日期:2002-9-14 **
* o% y! A- O x$ \- l**描述: **2 L. C- ~8 @5 H2 m
**--------------------------------------------------------------------------------------7 Y. A* O( ^/ g
**修改人: *** j8 H$ f: G, P4 Y, q
**日期: **
% }/ t( k' X8 v3 S% Q4 ^**描述: **5 s+ o2 l5 t+ N0 T2 Q ^
**--------------------------------------------------------------------------------------
1 R# \% P& d! e* }) a; ?# M+ G. a/ s***************************************************************************************/
& x0 n, x! X! g, I/ v6 j
u: K1 M F9 s0 i) H' x G" D8 w) Y
#include <reg52.h>/ t+ l4 l) M o) x$ ]
#include <stdio.h> //头文件* M. \. V9 x! Y
8 M [& I+ F" G3 F/ k. I* Ptypedef unsigned char uchar; //重新定义数据类型
+ x1 r2 E' y3 o1 a4 Q6 u3 o3 R+ U: z( ]6 E1 d7 ~
void delay(uchar x); //函数说明
. {1 x$ H0 F3 xuchar readadc(void);7 a+ J% f7 B& v# E
void adcck(void);0 t+ o8 C' e! z! e# ^
9 L! f2 T) ?' Y: E
; _) F- ~- N0 _9 U: H+ E: Fsbit adcdo=P1^0; //DATA
* m! t1 v) N2 Csbit adccs=P1^2; //CHIP SECELET
( ^' G* a6 p5 {0 _# \ a& u& g" isbit adcclk=P1^1; //CLK( g0 |; o+ F) K2 h5 u, y
//P1口功能宝义
& P" ?) S* T/ ~1 P" p' T0 D# {) l/ y3 A* j8 K
4 U6 b9 c" m: ~% o0 ~. H3 [: t( ~" }
: V: q# a% |* P: j% u+ S9 j, `* a/**************************************主程序******************************************/
% u8 v# B; A; }void main(void)
7 G5 q) S T A: W# W) @{9 f- {7 k1 y: [' ~& ]3 v# t: Z
uchar a;' A/ E( z9 u e. T9 B) m8 a
a=readadc();# w: o, V. {1 Q& D
ACC=a;
- ?8 l, \! \7 } w}+ c! E6 L# V! @# j6 k! H- Q
, W, K% K+ u8 e2 D* u ]9 I( r
; R" m: }+ a7 O, L7 r% l5 {0 o/***************************************************************************************
8 f1 u8 n: |, O* \) x; f0 Y# p**函数名称:void delay(uchar x) **3 W) L' a( O2 W8 E
**功能描述:延时 **
6 j6 l6 O: I; |! q, E**输入:uchar x (所要延时的长度) **. c7 J) P5 Q$ T6 p# F
**输出:无 **! S* ^1 b0 K7 }2 m/ _) l8 ^9 e
**全局变量:无 **$ f( U7 `$ L' Y8 A$ u+ @
**调用模块:无 **
5 p& \- Z- |& K. T! I** **, M& U9 |9 C+ z* j S& z/ M
**创建人:Jarvee **2 x6 a, S( I* {! }
**日期:2002-9-14 **0 m$ ~. F& T4 k# d
**--------------------------------------------------------------------------------------% h: R* m: |9 O3 G. N1 c* n
**修改人: **# S; [7 ^; M* Z9 ]7 ]! s j# e$ k
**日期: **
1 V; @& x9 |3 L! F2 [* ?( m" `' l**描述: **
1 X1 ^$ l8 x/ d, F& T**--------------------------------------------------------------------------------------& a+ i! F8 y. x4 Q
***************************************************************************************/
6 R, ?7 V) X# g: ^1 H( v: Z0 t. ?void delay(uchar x)$ e& R6 s1 I) J- |- A# a5 m/ c+ }
{
3 h6 g# d) @6 D) V5 K' tuchar i;
3 g% x1 h5 y+ E: y4 e7 }for(i=0;i<x;i++);
5 D8 y9 R) M" }. \}: i6 F6 n/ b0 `9 n
t0 }. g% U$ d, Y
( j1 v' D9 r. Y# j) I; t; g* ^) ?/ O6 l
/***************************************************************************************2 [2 `: I6 I$ U& D* F- x
**函数名称:void adcck(void) **1 }2 o0 i9 D; V) ^3 g
**功能描述:产生方波信号 **7 `( a) n* b/ Y8 z! J
**输入:无 **4 ~* ^# `, q$ v9 F
**输出:无 **1 s2 T( b# Z% v
**全局变量:adcclk-->P1^1 TLC0831的CLK **
! C5 Y8 p1 R# [2 h, F+ B" ^**调用模块:void delay(uchar x) **% f* N9 l g- F9 H# H' s! z
** **
+ ~2 c- M3 U9 M1 a**创建人:Jarvee **
: Y. U% d& Q4 s" S# r# S**日期:2002-9-14 **3 h* f7 h3 U3 h* T8 k
**--------------------------------------------------------------------------------------/ r% s+ T$ u3 i) q# V$ j
**修改人: **
. A/ k! ~% E0 F! R+ X _**日期: **
) t4 B& M. K7 o0 ?, Y; ?**描述: **8 q. v4 j9 R9 b) h
**--------------------------------------------------------------------------------------
; T8 G! X/ H A D3 ?# ]***************************************************************************************/
3 ^ l/ q. q6 j& g$ h2 v D$ ovoid adcck(void) // clock signal
d( ~6 z H4 E4 x+ M7 A: B{0 Z. {0 d' q4 y: c( N" g& N
adcclk=1;$ @, L$ Y7 O: h+ M
delay(2);. P8 B. ?# k. B4 g9 U0 g* T
& S* V' ]3 Q9 s2 y. Gadcclk=0;9 ~, s% g3 \3 g8 O) S
delay(2);
/ i" y0 e3 ~6 g* c3 y}
0 ~: t. Q" a, _/ _
! I, I$ y; r# P5 h+ H3 p
4 b- I: h: W& T0 b
' P0 Z* ]) @" `* M3 d' V$ F/***************************************************************************************! d6 `. M/ ]; C; v
**函数名称:uchar readadc(void) **
# F3 K1 U9 }1 X$ y**功能描述:从TLC0831读出所转换的数据 **
u4 Y2 A& N- D" D4 Z1 G- Z**输入:无 **
3 R: m+ d1 O. \8 r/ n- d/ C; T- p+ S**输出:函数返回值 **
( F3 i& k n+ N6 a, b0 ~**全局变量:adccs-->TLC0831的使能线 **2 I' U( p7 L+ ^- v& z
**调用模块:void adcck(void) **
# Z0 k* V- a p# P4 a& n** **+ M B1 H! I* O* N# F( M0 N
**创建人:Jarvee **
+ _! O( S6 z% s J5 i, T2 t0 x**日期:2002-9-14 **1 v: W0 p! c% [& e+ u, { Z9 K
**--------------------------------------------------------------------------------------# V& }7 d* T! p% X
**修改人: **
]# H. J/ v: n**日期: **
$ A8 Y m2 A! M1 A- t% k**描述: **
( R ~( X% e+ k/ q! y9 b**--------------------------------------------------------------------------------------
% X) z0 {0 q2 s$ `; J+ g***************************************************************************************/! B% h6 [8 E/ z- T/ S) [
uchar readadc(void)
7 k; n+ w9 A% ?0 x{" ^4 ?8 Q$ X& c* m$ o1 X% Q
uchar i;
0 @* C7 q" V6 s, ^- L# M" [uchar ch;
7 e! ] g! U& v9 J5 S, Wadccs=0;adcck();ch=0;
F! ?/ y2 O7 W8 n, ~1 R5 Y+ {" L8 @# Z/ V5 Z0 P7 a' M
for(i=0;i<8;i++)
- e. n' E. [9 E7 d2 J{ I. F+ @7 N$ u9 K3 L" V/ R
adcck();
( E4 s( V5 a* i( _; w, V7 fch=(ch<<1)|adcdo;
+ ]+ f/ A* O" w' d3 g, ?* I}
+ |# F: p% P0 [+ d ~return(ch);
- ?& ~ Y1 ?' a, F} |
|