|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************9 Y4 T- y" _- V3 w4 y+ i6 V
** 这仅是个学习(A to D connvert TLC0831) **9 _+ f/ `- G* b1 L" i* M. Y
** Keil C51 REV7.0 **% g2 N- Q1 m. I5 s1 u# X
** 优世电子公司 **
4 I% ^" H! q1 }# {** REV1.0 **$ r4 N4 z% P9 b" p! h! `
** **
7 j! Y F2 E: q2 s- i- [; w**系统所使用的器件:TLC0831(A to D connvert) **& C' p5 `; `9 J. H
**创建人:Jarvee **; Q h. E1 \, j/ f
**文件名:main.c **
: L5 z M8 H3 ]1 b7 g' C**日期:2002-9-14 *** Y% F9 Y, e) Y0 Y& D( S
**描述: **
6 H1 y1 Q$ X/ o. e) ^**--------------------------------------------------------------------------------------( e: }- U- m# b8 B( V
**修改人: **
( N/ I2 f) a% y* J**日期: **
% v3 ?3 b8 c6 a# u( [7 o**描述: **0 q! _+ i1 A5 {% ?: Z5 L
**--------------------------------------------------------------------------------------5 l3 f: J: C& X
***************************************************************************************/& C: n: U. c1 j' i
# x8 L4 h3 F! H4 Y9 A6 t
& P# K8 T; R5 P# N) E7 l#include <reg52.h>/ |( T; [& w) G8 v/ y: B
#include <stdio.h> //头文件$ K' H6 ~+ q4 Q8 x9 u
/ }/ M! O/ Z# h% l' |typedef unsigned char uchar; //重新定义数据类型
" E( J) M5 _7 _, v" C' l- L; M: b/ H1 D
void delay(uchar x); //函数说明
% L: w E2 K5 {+ Y, d% Duchar readadc(void);
" H" s& Y0 W9 s$ V8 |; i% N" Rvoid adcck(void);
/ ]* F0 \# ~* C- q/ r2 i# k s8 |- L& x4 d+ ^& I
0 B( G( P) N" f! d& |sbit adcdo=P1^0; //DATA ' H1 C" Q) J3 a) F( \# j
sbit adccs=P1^2; //CHIP SECELET
) t% @$ Q- R4 T6 Xsbit adcclk=P1^1; //CLK _9 Q& D4 S" M! x: |
//P1口功能宝义
7 E# d/ O- ~" p4 t8 H. ~4 ~- {1 j& k" j8 A+ B* c( s' d2 R
) C6 F3 P" \* j* k9 Y
* n% [% j, X) @
/**************************************主程序******************************************/ o# X9 }1 O' f" a
void main(void)+ P1 r* }# T1 V# m+ g
{
: r& J7 X; C3 n2 | Duchar a;1 s- d; q) P: }5 A
a=readadc();% U- v T& y, p- O- X3 C
ACC=a;/ Q# Q! W: r+ o
}# J [% ~) r9 ^, Z# D1 n
; U) D* M0 [5 y$ H
+ p, ?3 v4 R: K" U$ D5 c* o/***************************************************************************************' z% s, G$ ?; S! M
**函数名称:void delay(uchar x) **
6 Q( h0 p( S! u# \**功能描述:延时 **3 p6 x$ e; j" g/ u9 ^( O* A7 v
**输入:uchar x (所要延时的长度) **% {+ B/ G% d1 ~: y7 V+ O
**输出:无 **3 P$ W" d$ h8 G: z
**全局变量:无 **
" g0 t/ \5 F+ m! e& S( Q**调用模块:无 **2 q/ C* I1 T2 B! \3 \! R0 g
** **' S% d9 _& u8 N- v, G* h# k' A
**创建人:Jarvee **. {+ P3 ?( n& ?2 u% U# L0 k
**日期:2002-9-14 **
4 U; `2 _6 u+ s**--------------------------------------------------------------------------------------
. A) d. `1 K) N$ ~**修改人: **
' s3 o; X2 [1 m _# {( {4 x**日期: **, Q$ r) `) O. d" {
**描述: **
/ ?6 _1 S2 _3 p**--------------------------------------------------------------------------------------7 V5 R4 m4 H5 d6 E8 l
***************************************************************************************/
# I/ s3 n8 x# M1 l! G! ~void delay(uchar x)
5 N5 `8 u( u8 ^% g+ V{! S- j4 A# o) A3 x; i
uchar i;
0 \8 S5 `, x# bfor(i=0;i<x;i++);
" h( [! A9 V9 O+ S}) O/ C7 }' f7 L; T' \) Q+ t; U
3 \2 ]( R# s: E% K- @: ?. c p , z1 W8 s5 t! |& b" {& M7 H
, _. R7 W/ k( g, r4 m/***************************************************************************************, j5 f) w3 p8 o% v! L3 S, J
**函数名称:void adcck(void) **
6 ^7 p0 v% E! o9 v* R7 a' T+ g**功能描述:产生方波信号 **9 V, M/ J2 z& m0 R ]
**输入:无 **
8 D Q/ [6 E6 q1 H! S**输出:无 **
`0 O* t r7 F; \4 B k1 p4 `**全局变量:adcclk-->P1^1 TLC0831的CLK **) d; H, r+ Z) A! b8 C3 H
**调用模块:void delay(uchar x) **
7 ?- z% q) A9 x$ f. i$ f** **
! Z8 e, f: @+ _( C: \**创建人:Jarvee **
4 L6 g1 j: {1 \2 e**日期:2002-9-14 **
6 b* A. t3 L# Q: J**--------------------------------------------------------------------------------------
/ R; n: S5 ?7 B% I0 b& x' b**修改人: **1 P: a5 G. N% a4 r
**日期: **
6 g6 T0 N" a M0 q8 ?+ z( ~2 v5 b3 V**描述: **
/ p, K: Z F! U+ Z**--------------------------------------------------------------------------------------
0 [" N8 K( T# |3 A# \! _* n***************************************************************************************/
: p! C. z8 S1 v n* @" lvoid adcck(void) // clock signal ' {9 W; f5 b" f1 h$ L
{" ]# ` H' f4 o& @8 c; ] u
adcclk=1;, a" x* m7 ~" V' _# t
delay(2);' t. E' B- g: m6 E e8 d/ w" s5 m
) w7 F' D: n0 iadcclk=0;5 o- N9 e/ x; z; M* Q
delay(2);/ V& \8 D' k: ?* ?! F: e
}8 H3 b7 {! ^- H, q
) {. G" D9 q5 s6 z0 V& }/ f# B' ?
4 O P4 D6 w4 c/ L, ]$ T1 Z0 H8 K! A) C$ c/ k2 ^9 g( C, M. \
/***************************************************************************************4 [, B: o3 p' D
**函数名称:uchar readadc(void) **: Q" z3 D# F# c! T
**功能描述:从TLC0831读出所转换的数据 **2 Y" D( [) ?( ~" Y2 Z
**输入:无 **. E8 C4 f2 ?- f# I# Y; m
**输出:函数返回值 **
/ Z+ s6 Q- m- _" E( T4 \**全局变量:adccs-->TLC0831的使能线 **; ?2 D: j! u1 z
**调用模块:void adcck(void) *** h* ~! k8 \; s, _: o
** **
) s6 N0 t% v2 S! t! Y3 C**创建人:Jarvee **
8 |0 H% e* T! F**日期:2002-9-14 **- w) R% N0 ]. O
**--------------------------------------------------------------------------------------
1 n; ~' K# l) J8 c5 u" `**修改人: **2 a! V& Z5 J& i: f* k. x3 _
**日期: **: ]+ \1 [# R( d0 P% g2 N
**描述: **
. c. V" n& U0 k/ @* g' x4 Y) M6 a# |**--------------------------------------------------------------------------------------, _9 ]7 Y7 X! A, w$ D6 ^- R
***************************************************************************************/6 k9 T) G( A+ a y, p" O
uchar readadc(void)
! [0 [0 I5 R' Y{
- r) [1 [ v/ M9 ouchar i;
: I7 G2 a# v; y8 _- t/ ]! ]/ V0 uuchar ch;8 r; Q* J* C! l9 h- W9 Z
adccs=0;adcck();ch=0;2 x: Q4 T8 l! D; t
. m* n2 p0 l, X7 S2 ^5 y: t% P- T2 ?
for(i=0;i<8;i++)0 F. \0 C, s8 s. x9 d
{2 J" f9 @# H7 A8 `
adcck();( E# v: u* L" D5 I" `/ c
ch=(ch<<1)|adcdo;
6 W: d$ ^ s" g8 P% H+ f) T}" t- [6 r" ]: T, b0 H
return(ch);
% Q3 I8 ?' P* k! A% ~} |
|