|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************) o" ?$ p+ Z8 A
** 这仅是个学习(A to D connvert TLC0831) **
: ^; s z/ P5 S5 v** Keil C51 REV7.0 **
s' Q: m- X4 H% K9 N) q/ [ t** 优世电子公司 **
: d" {/ ]# X0 T9 H** REV1.0 **3 [& k& I4 c! {& _
** **' ]. t" T3 S- M a& R
**系统所使用的器件:TLC0831(A to D connvert) **! J6 F, Y! g( l" v3 {) r! r) v
**创建人:Jarvee **
, }/ U4 z4 _+ R! Z" ]+ B**文件名:main.c **" o. B$ o8 {( {9 P3 ]8 P
**日期:2002-9-14 **( Z2 I' p! E& N) |- n4 m5 |4 z% O
**描述: **# H. d6 P3 ]: f; X6 K' Z
**--------------------------------------------------------------------------------------2 E* n# ^/ W, e) J- _
**修改人: **
9 |# Y6 m% M$ Y# b2 e) e**日期: **- F. ~( ~7 K/ z; n
**描述: **; V* V& m1 M5 \% G0 g2 h3 b% u3 p
**--------------------------------------------------------------------------------------
$ E" x+ P) e/ m& Y***************************************************************************************/
, A$ ]! @2 P. u Q 6 L7 Y) m Y5 e# O; w
$ ]& T0 m9 B2 o" d7 |
#include <reg52.h>; T |; f$ F' E, V+ p+ G
#include <stdio.h> //头文件
& }) o* W0 G3 A* M2 X% T2 i$ P# r
typedef unsigned char uchar; //重新定义数据类型2 I" d9 }) l. W. B" [* ~
& V) S4 I& W* ~* K/ ]5 Vvoid delay(uchar x); //函数说明
' R8 n5 O! z* f5 N1 s$ Ouchar readadc(void);
. t2 j! ]; S( @; Lvoid adcck(void);( D( W2 l* c) q# D( G# k
; I" V5 F0 L! J
, e: g' J# [8 ?2 @sbit adcdo=P1^0; //DATA
2 t7 L+ i. |# bsbit adccs=P1^2; //CHIP SECELET
" n% Z1 P" A6 V$ A) @sbit adcclk=P1^1; //CLK7 F1 k* h1 }7 L! b& }0 Y
//P1口功能宝义
# C \/ Q* m" Q: ?, d8 l$ P6 K. {2 `
1 C$ g' M. P' E) ]. N) T, b; v, }0 d
2 B& \) J3 S3 m& ]5 d4 W* y, F: C0 C2 r+ S! H
/**************************************主程序******************************************/2 W d! [+ y) F" j7 O; ^0 m
void main(void), u ~& J8 m5 b( Q1 y& k, A
{# \. K0 g+ G2 [( J
uchar a;
8 U" l P7 |9 |. Z! R va=readadc();
. V7 O, J9 Q4 L% N! p1 a& c2 M+ QACC=a;
+ @. S& U* x& F) P2 Z}
& s, \' b$ P$ p# G1 j# |: ` e2 D2 h" V
7 d) a0 M' q! C2 i6 M4 [9 \& O
/***************************************************************************************) K/ t" m" }4 Z8 t4 Q3 B
**函数名称:void delay(uchar x) **
/ @# n5 J" A' Q) v% L* z**功能描述:延时 **6 ^! g+ n# o5 u
**输入:uchar x (所要延时的长度) **
+ M \- c- k* ]9 l i**输出:无 **, }* Q4 L) F: o/ k0 Y/ p& M% [
**全局变量:无 **
6 x# c- S. \5 e: q0 }9 c**调用模块:无 **
- I5 Z2 E& J) E2 j6 h& }( _** **
# R- Y, Q& K3 {: P# h2 o**创建人:Jarvee **
+ C8 q( |1 k8 G4 {, i**日期:2002-9-14 **, S( G0 x; N- m6 q9 t
**--------------------------------------------------------------------------------------
, u. @& W% _$ ~**修改人: **
) `& j8 F$ |/ o4 _**日期: **/ d$ w; D# ]2 t2 x: z
**描述: **
# H- ~& e# Q: q1 J2 c! I, h/ P**--------------------------------------------------------------------------------------3 d- S v6 f# Z! }9 r: d
***************************************************************************************/
/ ^; q3 G1 H; I2 \void delay(uchar x)6 L* \) P! Y" R
{
# J8 r4 h; j" o$ O2 guchar i;
6 i7 ^, {8 i$ w4 f- s! pfor(i=0;i<x;i++);2 z5 J+ a& Z3 Z( I, Z
}
; e; A; v0 B+ ~) g0 A2 H6 u9 n1 @* V" a! H1 c E- x9 @
; ^6 [0 x8 c: b- `. L( v9 Z
. R; L% n0 q4 N+ a: J. x6 D5 t9 T/***************************************************************************************
w& T; l3 N8 D- L8 }) R! ~; k**函数名称:void adcck(void) **
+ E2 R% Y/ F o+ `$ T- g4 a# }**功能描述:产生方波信号 **
8 Y8 M0 a0 K2 a6 V4 u**输入:无 **9 M2 i% \5 W! k7 E
**输出:无 **: a: C' E+ x4 P& G& e% h5 B- z7 c
**全局变量:adcclk-->P1^1 TLC0831的CLK **
9 y& _4 v8 f; Y' D! D6 x7 \3 A$ w**调用模块:void delay(uchar x) **+ `. y9 l0 A0 Y1 O3 J; e2 A
** **
+ R* z C9 l! s. I- N' t% H: _: d5 A**创建人:Jarvee **
1 o$ T/ H0 \2 U$ v4 t**日期:2002-9-14 **: f3 l9 t8 d6 [5 V
**--------------------------------------------------------------------------------------
i( b6 K" W( x: ^4 @**修改人: **
: n% [4 D* C( P. P**日期: **8 ]0 q( n4 y, X
**描述: **
+ G0 u/ e9 a( ?( T6 B**--------------------------------------------------------------------------------------
: K2 b" i2 H/ y***************************************************************************************/6 M% T$ t0 v' e9 a, M
void adcck(void) // clock signal
* t6 L2 @ ?% N3 _2 |9 t6 \* H6 p{/ }0 o! y) d) z4 A, ^7 B
adcclk=1;2 ^5 O' I4 ~% g; j! w
delay(2);
; n W1 N; }8 p$ ]7 j* r0 |: T, T p* O8 i8 B* k& f- q+ r
adcclk=0;
7 k, D' R. o* V" t" C3 `delay(2);( G) x% G7 h/ Y% x. ]: x9 z
}
' [6 Q8 X H& p7 g
& l9 x! ~( R* J7 |
1 z) T* N, V7 ]6 N; Z( A6 n6 C- \; e7 h3 v& [) c/ `
/***************************************************************************************
0 w9 Q; n! B; C' n**函数名称:uchar readadc(void) **: c% v8 z0 H; q# P# y
**功能描述:从TLC0831读出所转换的数据 ** W! }2 Q2 G J* M: ?8 |/ H3 ]
**输入:无 **, d9 ]% k# ~8 E8 l% J; G! k' @! G
**输出:函数返回值 **! Q: _1 K' V7 ~& j
**全局变量:adccs-->TLC0831的使能线 **. a9 l! @. ~3 N7 V, p
**调用模块:void adcck(void) **' t3 V& ~* j% D% ~; s
** **3 z T$ G* G5 i) N3 g
**创建人:Jarvee **4 T3 Y+ F5 T/ q; ~8 x$ E
**日期:2002-9-14 **
3 P7 I0 S+ |5 J3 l: O$ M* g**--------------------------------------------------------------------------------------
- g0 p" q# }, U+ L2 ?' \( c7 V**修改人: **+ v6 h% d( B" w1 \
**日期: **
* y2 F! }# S S! p' ~**描述: **
. v( Q/ A; @0 D( _: c' {2 ]( N**--------------------------------------------------------------------------------------
& o3 r$ e' [( T: I$ ^***************************************************************************************/! i3 P0 C U# z7 a- \! m) |+ w
uchar readadc(void)0 H: x. ?- J" @7 ~, q) u& r% F* U
{
# ~6 ?7 |& H: I ?- c( H5 j1 ^uchar i;+ E- h0 J+ g6 P7 ~8 w; l5 J
uchar ch;- g3 P$ q" T: [* {
adccs=0;adcck();ch=0;2 r0 c, P% `* H
$ [- l E a8 O. {for(i=0;i<8;i++)1 D d& f& j% R# T" Y
{
, k, o; S7 R" \9 A, c0 }adcck();1 B% W7 ^8 `% ?: I+ t% M! ?7 C
ch=(ch<<1)|adcdo;9 M. B' S X# a9 J
}6 n8 H& |8 G" C3 \4 k+ V* w3 ?
return(ch);
' V q* i( j) O$ K# K} |
|