|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************6 H: q1 S) r; t8 H* o
** 这仅是个学习(A to D connvert TLC0831) **; H' E; y# @' Z% \/ ~
** Keil C51 REV7.0 **4 C+ T! ?( F, j; v: h) s
** 优世电子公司 **0 l5 w, Y% [) P
** REV1.0 **3 l3 ~: Y4 S: d( ]" _% _" u! k* f: m. _7 y
** ** I' e, W; O% |
**系统所使用的器件:TLC0831(A to D connvert) **
7 h5 _1 E+ \% v- l0 _**创建人:Jarvee **& b- S0 @) a8 \; {
**文件名:main.c **. n8 Q0 Q$ L' [5 e) Y1 r
**日期:2002-9-14 **
: P6 f9 r( z% Y* a% {/ K9 D**描述: **
8 E3 W: X( m' A**--------------------------------------------------------------------------------------, o; _2 S1 e' v7 a
**修改人: **
* H, V( t; |8 H: V* E! G$ n' Y" F, w**日期: **
, F' q1 l% s9 h y* C; J**描述: **# O) W( P f+ i" w
**--------------------------------------------------------------------------------------
. k1 p4 n( X4 z) Q( _* |: ^& d***************************************************************************************/3 _% i& R5 J0 F! d
9 ` q. O( X$ w4 j# ]+ D2 E! q1 E8 o' S
#include <reg52.h>& o @' w7 x$ r
#include <stdio.h> //头文件; X* O' g+ R6 ?( X [8 h' q2 I0 h
0 I# T+ ~% i# R6 ~% h# |$ Atypedef unsigned char uchar; //重新定义数据类型
+ {! c5 }0 ?* v9 t! @0 H" }
K# G2 s/ _2 q6 o S- Q' A) tvoid delay(uchar x); //函数说明( j+ f$ u' `; P6 `
uchar readadc(void);
+ w4 c' P3 \0 r+ W1 Gvoid adcck(void);! B9 `2 R1 W+ Z) @) c
6 L4 D4 L$ b8 H
" \ ~8 G( l- \sbit adcdo=P1^0; //DATA
1 O+ B( z4 _; Q8 T% `- a) S7 z) ssbit adccs=P1^2; //CHIP SECELET, Z/ ~2 }& Z; s+ Y
sbit adcclk=P1^1; //CLK
# q5 h% _( X4 A//P1口功能宝义
1 E6 y5 h. z/ ?9 U
' J) b) w8 H O2 ]1 L; U + U _# V( ]: g$ [& ~
- s0 r/ b, Q- \1 F8 \
/**************************************主程序******************************************/
" {' `9 w+ n/ C/ \! }) e4 bvoid main(void); M: \" j& u9 X. v
{" v2 w3 w* W: A) _
uchar a;
% D' r8 D; X: B( E- U' A* f+ Y# sa=readadc();8 G' S' R8 K0 j( W' ]1 e
ACC=a;/ |9 r/ }$ S% d! k! V% y' ~ M
}
0 f6 x- G% O# ~& {3 a [+ o
) H8 a1 K3 p, l c/ b9 N* k# C5 ]5 o. k
/***************************************************************************************
) m8 l/ h; y* L. m( ^: V' \& O**函数名称:void delay(uchar x) **
q" F- z; U" S, d* G- N**功能描述:延时 **
1 o" U e2 k1 e**输入:uchar x (所要延时的长度) **/ s7 j/ {4 T4 {, W- r
**输出:无 **
6 o l. Z# L; s3 F% R9 w. c**全局变量:无 **
L; a s$ e: S4 H5 V8 h2 I- m**调用模块:无 **6 g7 S e2 F/ H& N
** **9 @+ d' \, w w" t. w
**创建人:Jarvee **) e! Q) d5 N% u3 e, S& {
**日期:2002-9-14 **# Z; a5 v( H1 c& o& D
**--------------------------------------------------------------------------------------
4 S; n# g' Z7 F. \" D# k; h**修改人: **
; g2 d. t! |2 J# ?+ p0 f3 {3 X**日期: **) G9 e9 ~5 O: k' o2 F6 J2 U4 _$ ~
**描述: **
. W: c% K2 J3 `$ [2 {" L**--------------------------------------------------------------------------------------6 k6 J) e$ B0 a! H# }$ c7 i5 _4 x
***************************************************************************************/. W5 B( s7 Z9 Q9 F8 H E0 Z
void delay(uchar x) O9 Y$ U; q; k1 _
{3 @ X5 t2 f% v/ h
uchar i; q0 y D3 g; `+ p7 g, ?
for(i=0;i<x;i++);
; z8 e9 {; b# ?2 h8 G8 ]}- e# [* N4 t5 h Q* ]3 H- U% C
8 R0 s9 ^5 p* `# I
! e9 H* N4 o j- c, G/ |/ P
) y) b4 n# K/ y( N+ Z/***************************************************************************************. G4 d2 X6 @' m0 l# ~- t
**函数名称:void adcck(void) **
! c5 q: }+ @+ z, b4 C1 c4 F9 w5 o**功能描述:产生方波信号 **; u3 T: _' ^# ?$ {, d( l. q: b0 c A
**输入:无 **
2 G, p6 s/ f# O! G( b**输出:无 **
9 x5 f% f* p$ e4 w; m**全局变量:adcclk-->P1^1 TLC0831的CLK **
$ U M1 X) q3 ~) s' Z5 y/ p% j**调用模块:void delay(uchar x) **
. [) e$ \- U2 T8 L** **- X- H5 _0 o2 N$ f1 Q2 @% O
**创建人:Jarvee **
7 H {! w( `8 E! t**日期:2002-9-14 **3 D! \/ G" K/ b: U0 l
**--------------------------------------------------------------------------------------
2 T; [' O; ^$ g) {**修改人: **
, O- f; g: h- R1 O" u0 H**日期: **! ?6 q4 N, h# S% Z
**描述: **9 `5 S3 t. o9 S
**--------------------------------------------------------------------------------------
8 [3 `) C+ C8 G7 l1 n4 D***************************************************************************************/1 l- E! n% C! G4 A% P$ S( d
void adcck(void) // clock signal 7 A: d4 M) n7 m# [8 t
{
5 ], }' d9 ?3 k) x( dadcclk=1;
' [* _: G9 X# j- a0 A6 m" l" T0 Ydelay(2); l7 Y; n: N4 Q9 M! G4 C% b
7 Z% F# N" w# E4 ?! E3 {adcclk=0;( _- E8 h: e) i) {1 n# U p' S3 [
delay(2);) {+ i4 z) H+ a
}" l- ~4 W3 O# h. f" t! S3 s) f6 q ?
0 h/ ?! d. D6 I5 p( x' K
+ t Y7 S8 q3 G/ f3 O# u% g1 f
% P% B7 c8 j: {/ |" D
/***************************************************************************************
. G0 q' h q4 P. W**函数名称:uchar readadc(void) **; {( D& T+ F$ U: x, D
**功能描述:从TLC0831读出所转换的数据 **
$ F3 N% V( l2 |5 Z9 ~**输入:无 **
/ y4 _$ C( g6 W1 p. ]# u**输出:函数返回值 **' Q4 @. r0 ]/ F. M) I
**全局变量:adccs-->TLC0831的使能线 **% _$ D& I1 X7 F+ P( _
**调用模块:void adcck(void) *** I/ F# @" t. [% ^% A
** **
3 n, i3 I4 X* k3 ~& L# r$ L**创建人:Jarvee **' F. R! N# a% p7 T' W7 r" [
**日期:2002-9-14 **
, A3 b$ f! \4 g/ k* m5 v**--------------------------------------------------------------------------------------1 l ~7 m" s q% M
**修改人: **8 O( w- M3 y) L# B6 S9 d. ^
**日期: **
# }& d; J J0 g6 o; R**描述: **
{( \$ `8 z3 m! ]: m6 W' R6 b**--------------------------------------------------------------------------------------
% X: l, L& h. U7 T9 E***************************************************************************************/
: @4 U* ? m4 f" k6 P6 yuchar readadc(void)
/ T* W: u' ` U3 U' H d3 ]{% s j7 M3 V/ ]" o8 _* e# w/ Y
uchar i;
3 r- U3 X' `, x. Puchar ch;! r& {. x8 i: F; D$ S: ?
adccs=0;adcck();ch=0;& k# G2 m$ u7 G6 ]( G: q
% a) \' @) x- J' S* y
for(i=0;i<8;i++)
; j% c- S+ q3 i: r/ S5 ^$ i{
- _# ]" V- x' S- h' Zadcck();% k8 f5 C& U* Q4 Z7 O" ~0 L
ch=(ch<<1)|adcdo;2 E9 N) C5 f( L' h
}
! b6 O$ g( O+ D5 B+ K( W' S; D- N2 Jreturn(ch);1 f% N$ V3 O" S6 Y* @2 V; ?
} |
|