|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************
, b6 Q" Z3 ]! P, M2 U. @** 这仅是个学习(A to D connvert TLC0831) **/ |' y( O7 @1 Q( `8 `# s
** Keil C51 REV7.0 **4 E1 g0 v; q8 Y z( Q
** 优世电子公司 **# {4 n( r# U0 K( t8 J
** REV1.0 **
' T Q% R& n4 G" C Z/ t1 V** **1 C3 P' r6 p* [$ Q2 @
**系统所使用的器件:TLC0831(A to D connvert) **% F7 H6 r, d& I9 a
**创建人:Jarvee **8 d0 B7 m0 i' i/ p5 D
**文件名:main.c **
) A/ R, i) J; y! `8 d. ]% b9 E**日期:2002-9-14 **. H6 W& g- v/ G: i9 i
**描述: **% f5 n G3 i: E5 K; A
**--------------------------------------------------------------------------------------
+ W: Q9 w9 x% ?. l6 M( R9 \**修改人: **2 r& ?: B( W& i! i
**日期: **4 w3 b" q) T# Q6 Q
**描述: **2 s+ J+ R4 }( R0 r5 g: q z
**--------------------------------------------------------------------------------------4 ~0 x& {% I1 A u: L$ {
***************************************************************************************/6 k& j4 e# s; D1 |
, @1 j, C: Y3 R! a7 @2 h1 k
$ I' X3 W" M4 f) _#include <reg52.h>: |4 k6 p6 w5 ]6 C$ S
#include <stdio.h> //头文件" O# Q7 _" V M) l" }( d& y
& U( O% l" j7 O3 Ftypedef unsigned char uchar; //重新定义数据类型
5 Q% I2 G: c; r P
, ^) ]* X/ O2 Y2 h' j7 U6 Lvoid delay(uchar x); //函数说明$ I5 y0 l) c( P+ X. Y) R
uchar readadc(void);
4 L0 I' Q( u* T# t* U3 Rvoid adcck(void);6 i/ j) q, W1 U( m( h, M
% L0 T8 N! Y9 |& f5 ~! a; y% p) a. ~) [0 c2 [2 K, x8 b0 g, q
sbit adcdo=P1^0; //DATA
1 S5 ^: ?3 n4 k j* Gsbit adccs=P1^2; //CHIP SECELET$ s# p8 U9 y5 l5 Y
sbit adcclk=P1^1; //CLK6 u6 D0 \4 L1 ^6 |
//P1口功能宝义
0 {8 H2 a' F F) s7 _) a0 l8 i9 {. c- X1 v1 ], Q; M
3 [0 g& O3 @% R `# O! f% A- T6 p* f" T
/**************************************主程序******************************************/
9 Z! G3 l# {) p) \5 e: C; n: wvoid main(void)% V) [' v& R5 e" w( `7 p6 F
{0 _& Q% y H! P+ z9 I
uchar a;
1 X. c/ s0 G! [a=readadc();
1 d# B/ F: a& {2 h% X7 m4 f8 AACC=a;
4 C5 U% u5 H6 s$ c}3 N! Y/ E) ^4 d0 \
) {* |! ?* Y k- x' g& s
/ c3 w* S) ]7 t S( Y- B/***************************************************************************************
+ S1 O4 \$ ^' _2 L9 G. c8 B**函数名称:void delay(uchar x) **
0 ?4 {- m% w7 X! O3 ?**功能描述:延时 **; S$ m, w1 m L* b/ V7 R% f' _. l
**输入:uchar x (所要延时的长度) **
3 P# f, A9 O6 O3 x**输出:无 **$ O/ m+ P& N4 z( B
**全局变量:无 **
6 o/ h7 O8 u5 A**调用模块:无 **
9 l& D! B( d4 P6 h** **: i6 d: f3 B. [( q( Y- Y) l' F( Q( }. T9 u
**创建人:Jarvee **# R; Y- a n N
**日期:2002-9-14 **
. s+ D9 |" l& t7 `' F( k**--------------------------------------------------------------------------------------. B6 O" q- Q. `- D1 W9 j( G
**修改人: **( ]% ~* r2 B8 W0 E7 n8 a
**日期: **' s% ^2 v* E1 e% T" e
**描述: *** ^$ }9 K. o6 w& ~& y/ n0 L% [
**--------------------------------------------------------------------------------------% ~, L' C. d9 c6 f
***************************************************************************************/# |) |7 z0 z/ V M
void delay(uchar x)8 b6 Q- F* `4 S6 T; ?- o
{
# t0 o) Y5 I) {. S0 P auchar i;! N& V: x2 @% e
for(i=0;i<x;i++);+ r: W( f& Y- O
}
! X" [4 _4 j0 Y
" l" I& |$ |- n" x
$ `: [3 d2 D7 v, _
8 e3 K/ B3 G% d8 q7 H4 f/***************************************************************************************' y9 x# _- \7 B& o# X; g/ s
**函数名称:void adcck(void) **
, t; `* y7 V$ }* ?6 O$ z**功能描述:产生方波信号 **
, W- {5 O" O& e- b/ G' ?: Q**输入:无 *** y* v5 m/ ~# Y+ f9 t F; W
**输出:无 **
5 |, t( h' x# N. x**全局变量:adcclk-->P1^1 TLC0831的CLK **) _, C5 h8 V' s- X" U3 B2 |" n X
**调用模块:void delay(uchar x) **$ `& V! d$ [( Q& j3 G
** **- ]0 |& X! I% D5 j. V
**创建人:Jarvee **) C4 F+ j8 V4 m( m$ }0 x4 E( j
**日期:2002-9-14 **
* \2 q+ s8 U! y**--------------------------------------------------------------------------------------9 F% `+ h9 |" r
**修改人: **9 G4 ?5 E' h. @
**日期: **
+ B8 f, m4 ?9 r |5 `**描述: **$ ^# i g9 ?( K3 V7 P6 q
**--------------------------------------------------------------------------------------3 t" s' o& R0 w7 f! H$ y( O
***************************************************************************************/5 l; `: |; q: h
void adcck(void) // clock signal 0 v( p! T& M" y6 X+ L9 F1 y
{: V: ]" B4 D+ j) Y# N
adcclk=1;
( I* k0 U8 F0 A# } u) F0 w+ \delay(2);
# J/ `3 r, r* W
( E$ o) b: P1 U% f! Eadcclk=0;- d8 G( _7 I$ I( d
delay(2);" f( W5 n1 O c9 T- _
}( F$ p3 P% R' k3 Z4 o
n+ i5 l) ?# a1 g
8 g* l4 z. h3 z3 A8 Z8 D# Z) f% n N
/***************************************************************************************
* K, r( J1 K5 ~+ h% [9 Z" {* D2 n& T$ B. ~**函数名称:uchar readadc(void) **
* ^4 G6 ]. F3 Y! G- |* z7 y**功能描述:从TLC0831读出所转换的数据 **
& O/ y u' ]( z; b**输入:无 **
# P! K6 ~) P' E$ v/ m ~3 M5 Z**输出:函数返回值 **
7 W9 O9 Q& r; X$ l& x**全局变量:adccs-->TLC0831的使能线 **6 x8 M( H1 I$ _! `1 x
**调用模块:void adcck(void) **, g' H1 n- G* X) Z* |& m
** **
; m/ j& e) F( c) w u**创建人:Jarvee **
% y# Y: r+ t6 ]" y; ?4 U5 B" |**日期:2002-9-14 **3 L' k4 ]% S- D4 }: e/ L" a
**--------------------------------------------------------------------------------------( F6 D! u# F9 K( L
**修改人: **; h' C( o, H0 s$ @" t
**日期: **
: h9 B: i: i7 c& w**描述: **
3 h. K: y5 x* I9 J% X1 ^**--------------------------------------------------------------------------------------
x$ a. c- c# W$ B* ^***************************************************************************************/4 c1 c/ H* p: p$ G- m3 V: P/ e
uchar readadc(void)9 j P Z8 C4 U1 C
{
: h* n# A! J1 }3 ~- H# Ruchar i;! \. y! P6 X2 @0 [4 R& _# ]
uchar ch;
: H: l5 D4 _. ?: J9 madccs=0;adcck();ch=0;
, S5 s B# g! b3 v/ k
0 U& `6 v3 ~8 B" y* ffor(i=0;i<8;i++)
3 p; S; M7 C. [3 k& o5 {) A7 F. T5 g{
. Z9 F0 y, Z7 _2 u% m D5 padcck();2 j# ]. n% }/ ]$ m6 p
ch=(ch<<1)|adcdo;9 D6 z. d+ F0 S9 A, T6 n5 G
}3 ^1 e( |/ f7 } a
return(ch);6 A$ I4 K* L. X. `+ ]. N! j
} |
|