|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************; J. L# F2 ^* k, u# w3 W; g: ^
** 这仅是个学习(A to D connvert TLC0831) **
" M) }; r% V# w7 L4 J6 X& T% ~0 \** Keil C51 REV7.0 **
1 Y# {% P5 I6 Q: {2 n( v** 优世电子公司 **$ ]0 t8 ~4 W: V" q
** REV1.0 **
4 Y4 d6 x1 l: i** **# _$ \% R' J6 G6 t' ?
**系统所使用的器件:TLC0831(A to D connvert) **, {7 k% b6 w' Y, [; U
**创建人:Jarvee **6 ?- r' m; k- S) k7 F9 v
**文件名:main.c **$ y9 x# n. E3 y, i# w$ P
**日期:2002-9-14 **. U) |5 ]- @0 V0 f" }' k: j% K) q
**描述: **
/ i K1 |# Y4 V) T/ \* A**--------------------------------------------------------------------------------------% v7 _9 d' R$ l; M6 W: o
**修改人: **- }- q8 T9 A/ V+ D* c; Z9 _
**日期: *** r6 _* p3 r% C0 |& m* B
**描述: **7 ]2 p( P2 y3 W9 ?9 [5 ?
**--------------------------------------------------------------------------------------& u6 S& f' i [3 v; |
***************************************************************************************/
' w' F0 q* Q( N6 G. @ ) X5 ^1 k3 P& @/ V! D3 U7 \" h
. ]. b; g5 _, }% G4 R$ K; f#include <reg52.h>
; _1 ]! `6 Y; `2 V8 J* a3 V3 c& o7 D#include <stdio.h> //头文件6 l1 S O2 e) I9 o
) U" c6 ~6 T3 o/ c/ K
typedef unsigned char uchar; //重新定义数据类型
" Z* c5 k8 f: s2 y$ \3 S @6 F' ^# U4 R, d
void delay(uchar x); //函数说明
/ U r9 |; ~. n6 T& }uchar readadc(void);
4 b s9 T) }4 i. }void adcck(void);
: [ J8 Z) x! g9 I- A. }6 q* V: M6 x6 d9 R7 p, w2 u! e0 B9 q; R
3 M# D9 l, n- I: _6 y# H# B/ esbit adcdo=P1^0; //DATA
$ V: K- ^# T4 x9 a) Ksbit adccs=P1^2; //CHIP SECELET6 F) s. y( z/ B1 y3 |6 F
sbit adcclk=P1^1; //CLK7 P! Z# o% d) l2 G! f
//P1口功能宝义
- |6 d/ v' L% [" S( ?
/ I' T& t! a7 u3 n/ J. S# Q
1 y; ^5 p' O# P) {
1 @" a$ M5 D2 R% F1 F/**************************************主程序******************************************/
+ h; K' {8 }7 vvoid main(void)
0 w* W' ^5 }6 K7 Y+ |{7 }$ p& m/ t+ e8 ?
uchar a;6 q' Y: o+ w; f# j
a=readadc();
4 P2 F8 \( T/ ~6 E* n, ?ACC=a;
+ U* p5 i5 n' i! |}
5 B7 _8 p2 a C% ]( H
7 J' L6 Y5 ?3 L+ c2 }, l: F$ V& ^
/***************************************************************************************5 I) G) k% V# W. Z- A( G3 U
**函数名称:void delay(uchar x) **
/ _+ @4 p& \0 w* z" F- e**功能描述:延时 **
" K3 \8 X1 K& E/ X7 c, I**输入:uchar x (所要延时的长度) **. ?2 I" ^; e* G! v
**输出:无 **8 c: {; }& g1 `: V9 n
**全局变量:无 **: I) U/ }8 _4 i8 W/ X, K- d; c
**调用模块:无 **! ^0 @0 K" C5 U$ t7 ?
** **9 K a6 I# M% g$ D% x/ o
**创建人:Jarvee **
! S& A |0 }5 Y2 l V i8 e**日期:2002-9-14 **
( c+ a2 @5 w3 D" l+ q$ M**--------------------------------------------------------------------------------------5 \: {0 W) m; o _1 [. a" M
**修改人: **8 k" N3 I1 l9 c6 \7 i: L6 \
**日期: **) z* \# v- l0 l& `
**描述: **
: H1 p7 C* z( P# Z**--------------------------------------------------------------------------------------
8 W$ f2 z# U& \* @# i1 c$ G- v***************************************************************************************/
7 U5 j7 C! u& N& p1 Tvoid delay(uchar x)7 [9 c4 n# E" Y2 Q& R2 R% J
{
9 F# b. l4 u' n2 U- zuchar i;# B: P' C; H6 B' R ]- `4 |
for(i=0;i<x;i++);- Z" B& u; O$ |* h% E( M+ |1 y& L# l/ t
}) t% T7 K6 g. t- U
; u+ I0 U2 N; S2 ?- p% D , y8 B$ f6 V% @9 g
1 g/ Z- i6 G* t# a1 U
/***************************************************************************************' Q9 C4 i3 u# K+ q4 h+ C% J' c
**函数名称:void adcck(void) **
- s J1 T# }. k" b" H**功能描述:产生方波信号 **
( F8 u! c3 N: S. U6 w**输入:无 **
8 H3 ~ d$ s0 B6 \" h. q**输出:无 **
* O7 h. j- \2 H v3 \ \0 l+ ^**全局变量:adcclk-->P1^1 TLC0831的CLK **! l9 j: M8 f3 T! ]% P# Z: W
**调用模块:void delay(uchar x) **' F! d8 u- Q8 C+ w( i* @& B" ?
** **
9 r) O" L4 m5 I4 |**创建人:Jarvee **) U( c, c3 S7 x" T4 i" Z5 ?
**日期:2002-9-14 *** {9 C- d7 T F$ e$ k7 I3 K6 L( {8 M
**--------------------------------------------------------------------------------------2 y/ k& Y$ {2 j. d, J' C. G H. c
**修改人: **8 }$ t& s* G6 A: P3 U9 b N; ]5 S
**日期: **# y1 Z( ?2 Q7 G
**描述: **6 z: z) o9 m! z$ P- W
**--------------------------------------------------------------------------------------) K% u, V* `+ q) J/ P2 o
***************************************************************************************/6 ~* K9 }3 H* F% Z# S- a
void adcck(void) // clock signal
" P6 N4 w2 D! x- o6 Q- M, x{: P' q- w5 a4 l- H1 d5 D* h' K$ B. g% p m
adcclk=1;
( H: v! t7 x- t% Fdelay(2);+ K; g7 z( p' x5 Y+ u3 ~
) L* k6 [, t2 B' ?. ~adcclk=0;: Z6 K9 L2 S* S9 }& [
delay(2);6 R3 i8 q- P( @# j# ~2 F7 i
}
0 Z, z0 E& k( c( K' q1 d- R- x9 d% k( Q# d
6 g* |: `6 _* \. i! I: ^
; {' R! c" F3 t+ s* w
/***************************************************************************************
: ?, R+ F/ s) g! U7 s( ?/ Q**函数名称:uchar readadc(void) **2 `; k$ F- T4 ^' R
**功能描述:从TLC0831读出所转换的数据 **
7 Z# g8 p6 Y) q: p- z/ F% N**输入:无 **
- S% ~, ]1 P9 Z**输出:函数返回值 **& t! w' J5 H3 e" L( J' p2 I
**全局变量:adccs-->TLC0831的使能线 **. k7 e1 x K/ L1 w9 {8 S( f8 o
**调用模块:void adcck(void) **
8 c5 t7 x2 b2 E3 G! m4 j8 {** **
0 f& b7 P( m4 i* @; | `+ X- Y( ?**创建人:Jarvee **
( y/ u; C& {! \' I+ E/ W0 F: N7 ?**日期:2002-9-14 **5 Q, M" Y" y2 {" k
**--------------------------------------------------------------------------------------
% @: D- p6 m/ y( X N; a$ J**修改人: **7 v- q$ t2 a5 F5 U* |% g
**日期: **
' N3 r- k; B9 s**描述: **3 K Y* A) ^6 e8 V0 M& _/ J7 P6 W
**-------------------------------------------------------------------------------------- h/ f9 }& K0 O
***************************************************************************************/
/ X9 x: D8 s9 N6 m0 [% R& xuchar readadc(void)( p( \: |5 I! U7 E3 [3 ^, J7 \7 S
{
2 K0 h" }* E4 B3 V! cuchar i;) i6 |! g( p9 r& X
uchar ch;
+ [+ Y6 |# S) d. t/ Vadccs=0;adcck();ch=0;, I; Q5 {) _3 v: w0 m" b1 j3 M2 \* p% [
) k9 o8 Y1 q6 s3 @6 Q& ?
for(i=0;i<8;i++)
2 {( c! ~0 ^9 R{5 z+ M4 d& s9 e$ M5 R, e/ h
adcck();+ G1 a/ ]) P* o! a# f0 O9 {
ch=(ch<<1)|adcdo;
: [. x0 K3 e2 a+ H) i, K c2 g}/ b: a/ B/ c9 Z
return(ch);* Q! j2 L6 M" {' m. Y$ x2 N! E- E: X
} |
|