|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************
+ u& z& b4 Q$ r9 N# Z1 m/ q** 这仅是个学习(A to D connvert TLC0831) **
3 z5 G: x% Y6 l) ?2 g9 O, [9 B** Keil C51 REV7.0 **
# B& ^- r# @: \# a3 b3 R7 a** 优世电子公司 **, u* }1 t8 m& `
** REV1.0 **
4 d8 z6 t1 f& T8 S0 o1 Y** **, z$ [: }6 s! h% B- x4 q
**系统所使用的器件:TLC0831(A to D connvert) **6 J' X6 y" ^1 K) o# P; e
**创建人:Jarvee **
" B; I4 V( g- u6 {- g( w**文件名:main.c **
! R5 n1 e# @ \) H$ [, e9 w**日期:2002-9-14 **
( o; _2 Z4 @- ?1 z b7 p) H0 `" g( s**描述: *** T0 U$ N5 }3 J1 m- r# ?
**--------------------------------------------------------------------------------------
- r& q) J# a( s**修改人: **
: f6 F1 e8 W0 H+ {* o: L$ A" X**日期: **/ O d" h8 J" y
**描述: **
2 g; h* G, f4 Q$ k+ t4 X**--------------------------------------------------------------------------------------
9 L1 S- P4 c& d# O9 u" H! g***************************************************************************************/, d- g# i8 w$ V; j3 X1 |$ X! L; S9 m
8 X0 ^' O5 k: q/ j$ [. w& t+ U% i/ T$ \" B% V0 j1 |
#include <reg52.h>
% ?6 Q, d& T5 a6 E: T2 h/ P Q#include <stdio.h> //头文件# V) M8 b Z# A0 ^
; ^# x' d8 y& C. C( E2 I' Wtypedef unsigned char uchar; //重新定义数据类型) F( u4 N7 ~! B* j) x, s
" M6 G. m6 u0 y
void delay(uchar x); //函数说明
6 G/ ^4 s) ]4 ouchar readadc(void);6 ^+ W- h1 A' A* H
void adcck(void);
, O0 @- q5 k8 u% R0 v; Y
9 u5 p L! l4 [5 ]+ X: j9 s5 U0 k$ c. h- k, m G3 n
sbit adcdo=P1^0; //DATA
$ ]* ?8 `, L2 r. Z& g" Lsbit adccs=P1^2; //CHIP SECELET6 ^3 @; [3 D$ P' L. Y
sbit adcclk=P1^1; //CLK
# l5 R: A' M# B8 l3 T l2 a/ I5 b6 S//P1口功能宝义
4 F! W- R2 o- z( g
: Y: ]! O9 N/ ^
% S7 s9 U( G: X0 w( q' j6 _. i! @
/ `) i$ J" h: c! a7 }4 c5 |# n1 F& w/**************************************主程序******************************************/" j! s2 n! g }+ t& ~* H e
void main(void)
]* j8 o/ d8 X; i# t: ^{
5 }; A# u4 z* K8 ?. h; Luchar a;) k3 O/ E2 n& _9 s1 x5 y
a=readadc();
* J: S1 b# e6 E6 \0 HACC=a;7 \0 e. ^2 S2 D* f) V7 r
}
! w- _6 n" Z0 m+ v6 J* w" x" V- ~; ~+ R) J( M
% B1 v! A0 V( x/***************************************************************************************' h1 t5 t, f4 }+ h9 C
**函数名称:void delay(uchar x) **
# ^ P4 }, \! Y9 \**功能描述:延时 **, f; @0 V. \8 i: E$ Q
**输入:uchar x (所要延时的长度) **
; h0 _0 _$ \9 a/ J**输出:无 **% X( E) q5 u( \0 V3 h! ?
**全局变量:无 **
& x' ^& j$ }1 u5 M2 `1 M**调用模块:无 **2 |3 t' Q: x4 ?3 l1 w6 `! j
** **
- Y1 W# g+ F1 i% p8 L/ `! a**创建人:Jarvee **
+ n2 ^% R9 @! B**日期:2002-9-14 **# V+ w9 {0 ~- u+ C; `
**--------------------------------------------------------------------------------------
* _/ B: v0 `7 b4 Y+ g**修改人: **2 l' d8 Z' p8 ]' {1 |8 w: X( M3 N* T
**日期: **' l9 C- _* g3 s
**描述: **
% p9 [% }2 J; j. R- c* M**--------------------------------------------------------------------------------------
; i5 H; I% i0 p" N$ `' f) v***************************************************************************************/, ^ h! `. i7 z* O' ]" J
void delay(uchar x)( }! J7 V5 D/ I& s; ^# l$ U
{
0 C0 B9 r/ g4 n7 Auchar i;
( }& l" _! a: h- c: \. \$ [" \& @for(i=0;i<x;i++);
1 {* p( V, [; q7 T0 {: u7 a}
: m( P2 [9 T4 J/ y" ?5 c) N7 k5 ?9 ]2 o
% i4 A2 M! Y7 H2 H. [" b, D( @/ L' E% K9 B" w
/***************************************************************************************: [# p+ c/ ]' b$ X5 \4 {0 m5 A
**函数名称:void adcck(void) **, _ q/ y% ^6 T5 z
**功能描述:产生方波信号 **
; h- e. W. ~% D& P- r' g**输入:无 ** T* z: e' M) p* e4 G8 \
**输出:无 **
% d4 F- k3 R7 L2 f, M, {**全局变量:adcclk-->P1^1 TLC0831的CLK **' L* r: m+ H9 O7 S
**调用模块:void delay(uchar x) **) Y& G) h V5 y4 e0 ], V) U
** **" h1 Y/ f- o6 a7 e! t
**创建人:Jarvee **, v$ x8 Q4 v5 _$ d$ {" L
**日期:2002-9-14 **
_, R, A# z1 y9 D**--------------------------------------------------------------------------------------2 P% Q4 Z) t, V8 f
**修改人: **
4 u4 Y9 i' `& c, B**日期: **8 U3 l) F& X9 L- P1 x* ?
**描述: **- \' n9 H, ~$ v6 S1 \/ ~9 c
**--------------------------------------------------------------------------------------
1 v3 \; g" L( X* \. S Z4 u***************************************************************************************/4 I) y; S# r- |$ M
void adcck(void) // clock signal 4 F# n* O M$ D) g: K3 ]6 x
{
* t1 s* R/ l+ Y0 K+ }, `adcclk=1;, R+ v# g" s1 v
delay(2);
: ?4 X3 J0 B9 H6 n
4 z& @ o4 \8 q3 k; Padcclk=0;! A% ~2 G' @# T2 c! [! P8 A
delay(2);
; g6 m3 i; l% i6 X& R! v4 I}, J' v/ D& T' v7 l' H
Y+ R) A1 I9 W0 z! y) p
7 E* b/ |6 u2 K2 T! e$ n
5 c% y. A5 V j. z5 D1 U+ M6 p+ b% r/***************************************************************************************
5 n1 H2 ?/ U: t' z! Z**函数名称:uchar readadc(void) **
( C" G& H9 g$ t3 \: {% O4 R**功能描述:从TLC0831读出所转换的数据 **
$ D2 R& `! y+ z8 q; v**输入:无 **
4 \0 H2 S% e7 p**输出:函数返回值 **
1 `, D! R8 n+ h, M: Q**全局变量:adccs-->TLC0831的使能线 **
& h1 @$ \7 v; w8 d' P**调用模块:void adcck(void) **
0 C5 k3 l" p( G$ [** **% J7 q, T1 Q+ @
**创建人:Jarvee **
2 E" n7 T. T* x! u) R**日期:2002-9-14 **
+ |& E' s% E5 }; x* P8 R, H# y**--------------------------------------------------------------------------------------
- i6 |' x" Z* t" b**修改人: **
" \5 _/ y; c7 ~**日期: **
" U1 O6 m" j1 G2 q. ]% E**描述: **
8 E6 f+ c ~- j& r. e$ `**--------------------------------------------------------------------------------------
- H; I* x) }3 P# g0 Y***************************************************************************************/' G/ L& P0 ?- j/ ] M( V4 ?
uchar readadc(void)
7 h: I- R2 B' y: u; \4 q{
0 i0 o7 X. B1 T1 a) quchar i;
! C7 u9 W5 _ Y# T5 Iuchar ch;
1 @7 U' Y i6 ?/ ]: w2 Iadccs=0;adcck();ch=0;
) m* V+ d. C. v/ T) ]9 w. l
8 c0 u& d% p6 f) _for(i=0;i<8;i++)
5 R7 \( N2 m3 M6 `: \! O! p{
* T: [' w4 N5 gadcck();
8 R# R) Y! {2 Uch=(ch<<1)|adcdo;* e+ J& E3 p6 y4 ?
}* y4 a6 j0 ^& i1 n/ S
return(ch);
4 b$ E+ z( \) O0 |% J) v} |
|