|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************
" o8 C. b# ^ F( q- K* k F** 这仅是个学习(A to D connvert TLC0831) **
& T' ^' C" O- _3 F6 G/ C7 |** Keil C51 REV7.0 **5 }( y1 D' T, Q$ n+ u& I
** 优世电子公司 **( R' k6 P% R9 Z- O. q& P: U7 w
** REV1.0 **
3 U3 ^9 e$ H& G* k6 ~8 P0 a" e** **. V! V2 m9 @8 f; B0 L
**系统所使用的器件:TLC0831(A to D connvert) **- S3 a8 m* ~1 I' l; z
**创建人:Jarvee **
5 U! t) U$ P) f* u( z6 M0 {" d* H**文件名:main.c **1 D( |. c4 m0 k/ T7 a
**日期:2002-9-14 **
9 d3 n7 _& z5 s% P* C**描述: **) o" `% e3 \' g. I* d. r8 E9 x
**--------------------------------------------------------------------------------------- w. {3 f' g3 ?& H+ m9 ~
**修改人: **# _; s* \8 G' }8 c! a
**日期: **
- I+ f8 L( |$ }**描述: **5 U- X6 ^/ L2 E% `0 A) F+ M4 L
**--------------------------------------------------------------------------------------, ^1 S" c' h+ n6 `
***************************************************************************************/
4 J9 Y: f4 Y4 Z7 b" {3 O; j / ~! ^% o2 q4 P
( E5 o; L5 N2 \- Y a9 b4 u$ i
#include <reg52.h>
5 ]5 Z- ?2 M; h t" e$ D- O#include <stdio.h> //头文件% `: P/ z; [2 f8 u( M/ ?
6 k4 r$ J: ]/ [8 e1 N/ Xtypedef unsigned char uchar; //重新定义数据类型
4 Y. \* d1 i- W- ?9 N. V
# |8 F4 Q p$ Y& evoid delay(uchar x); //函数说明
( l% [- R. J8 Y& m, Quchar readadc(void); ~7 L0 }+ ?' N+ D
void adcck(void);
# R9 n' a5 y/ o) T) v* }# R2 _; @5 d& E9 O9 L4 ?
5 u/ N" b: ?7 o2 d- z& `, a8 |- e8 u
sbit adcdo=P1^0; //DATA # R2 t$ P, C- u9 E s1 a o
sbit adccs=P1^2; //CHIP SECELET
3 ^( I5 p W$ Xsbit adcclk=P1^1; //CLK6 ` K0 {, @3 H* y6 |, }: @
//P1口功能宝义
z4 R6 `& H0 b5 \ P' C+ b. p
7 P/ j8 K9 m! t8 c" G) C
: r( F2 l8 Q' A8 h6 Z
2 T# J. G! u% m1 Y' T* J& f/**************************************主程序******************************************/+ g2 L+ f7 Y8 X
void main(void)
5 s( w0 d( b5 m, y' q{
+ {# n1 Z8 x. b/ u, @uchar a;
{) _& m8 d) G2 ]; U7 F5 P' g+ Ya=readadc();! Q: j9 w# H: |7 `
ACC=a;9 |7 R8 b, G& n8 G3 y# r9 c' ]( X
}
; m L, I9 O0 r9 L9 }5 I; H s% x1 |$ I9 D* j
& y3 V+ f8 F' h+ ^# Y: y( X
/***************************************************************************************% b# G3 b5 @5 F: b Y- A: X6 _
**函数名称:void delay(uchar x) **$ X v; p R5 H; D
**功能描述:延时 *** q# q Q# U0 p, M; t" i0 z
**输入:uchar x (所要延时的长度) **
' m% ^' O7 {: @5 N**输出:无 **2 Q4 U2 d$ M9 y
**全局变量:无 **
- f; _, K6 s8 K% o( F- h**调用模块:无 **3 f" @- M, f; L
** **. X( i4 V! D# ~3 X
**创建人:Jarvee **9 i# p. L8 y& F
**日期:2002-9-14 **
. j- C' S* l2 e6 E5 \! J$ {**--------------------------------------------------------------------------------------) x8 |: c' V7 \4 c+ \% r" N
**修改人: **4 |! u. f# T s- ^# E6 `
**日期: **; f8 `% e1 i4 N$ t) H7 ]
**描述: **
8 J- Z* m t8 q6 s# l- |8 M3 V**--------------------------------------------------------------------------------------
6 ?. A& C- U- c$ v3 i# G***************************************************************************************/
, O: q- X8 C% Hvoid delay(uchar x)
7 _/ N0 G+ N7 F) U) ]0 R) D# U{
. l; Q! v4 t# ~3 Uuchar i;# D) u; M3 s, T
for(i=0;i<x;i++);4 X- k- T: t9 b0 s" }
}% y r/ E3 t% L, u( v
* j7 f# F& |. r5 z( j! V
- h6 B+ M% W9 g# C; ^
; `2 P8 C3 i S3 B
/***************************************************************************************8 U5 t) W, i/ A4 I9 M. ]8 Z
**函数名称:void adcck(void) **. B/ G+ `! }2 r! ^& E4 A
**功能描述:产生方波信号 **+ s/ }' r0 n0 P. t% c/ z
**输入:无 **
$ `' c7 l9 [$ e+ W# B**输出:无 **- s% [0 E& C4 z% c
**全局变量:adcclk-->P1^1 TLC0831的CLK **8 X- T1 h/ E& O& I. |9 M
**调用模块:void delay(uchar x) ** `+ q+ i" ^/ w
** **
G+ M+ s( R, g0 u6 o**创建人:Jarvee **6 \. }# C0 L( O7 Q
**日期:2002-9-14 **
' ]0 i8 M7 y- [" d/ J$ z& ^**--------------------------------------------------------------------------------------
) I ^% ?. R7 B**修改人: **' z0 j7 l X# a2 ]. T2 k" V) T
**日期: **3 H1 ?+ z+ e, \$ i, L) k
**描述: **
4 t8 x/ h6 ~8 V" \**-------------------------------------------------------------------------------------- h: V2 J$ B' h' {
***************************************************************************************/
. r# l a: Z% a8 _* b; {void adcck(void) // clock signal
, M+ V7 T ~% {{4 n% Y0 n* a$ `7 y& ^3 a
adcclk=1; |) ~. ]) f7 J( v, t" A4 c
delay(2);
/ ~) J. Y/ Y- q% S5 x0 A# @% E6 y! k# Z, v
adcclk=0;
* `8 `8 r# ?* Q5 }4 E8 ddelay(2);
. i! ~- n$ i. l. P# R8 C8 \}
' N# C) o( L% E5 Z0 O4 n \& \+ }$ o2 Y' _
) I4 W0 I+ W1 h# y9 |% o9 _
4 J' Q1 b! c/ ]2 e/***************************************************************************************, W: x5 y p0 L: w2 ]+ u% E& U
**函数名称:uchar readadc(void) **
/ i }. ]! |4 `( K+ O& X**功能描述:从TLC0831读出所转换的数据 *** C9 q. k3 ?- D. O2 j
**输入:无 **1 U* M1 ?$ M6 V% p' p
**输出:函数返回值 **
# S' i( E# M/ z$ O0 f) `**全局变量:adccs-->TLC0831的使能线 **
: G" h6 V1 l' W) o' Z5 b**调用模块:void adcck(void) **) E7 L0 ~4 q2 H+ K* w
** **0 R6 R6 [* g8 m5 j- c1 Y
**创建人:Jarvee **
9 n/ f) e0 v0 a# X7 ^**日期:2002-9-14 **
. r, M; t. C. A1 R0 a**--------------------------------------------------------------------------------------
4 N5 ?5 |! M: S7 L2 W" y**修改人: **
7 e S0 J$ E# i& w# G" P**日期: **1 G6 [" Q" a9 r* B+ F. U* `' }
**描述: **
: n" t& E5 r9 D: I2 K**--------------------------------------------------------------------------------------8 @$ M0 u2 ~* b" i4 Q$ M. a
***************************************************************************************/8 l. Y/ E! l B* R# ~# m
uchar readadc(void)
& T" u' f- g) z; G' J- N l* L7 q4 j3 u{3 Q2 ^: |1 P3 p- d7 X! @
uchar i;
1 `; L5 K' b# x7 Wuchar ch;& P/ J* p% m( E- T
adccs=0;adcck();ch=0;
; M8 y+ r( p- _2 C
) o& y. W/ j l l0 k$ vfor(i=0;i<8;i++); y6 c4 M3 Z$ M, F9 [) R, b
{6 k3 }2 H, d# W7 @2 p5 R
adcck();8 s5 |7 U" E3 T7 U2 x& E/ }
ch=(ch<<1)|adcdo;3 Z3 d2 Z* B: k
}( ?8 o( L2 g! F, S; {( G/ c
return(ch);3 `/ }- k! A. q0 e" u0 O
} |
|