|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/***************************************************************************************
* ` Z, l) e1 o2 J) L% T! A$ y- F** 这仅是个学习(A to D connvert TLC0831) **
& X; o. @' l; O! T** Keil C51 REV7.0 **
( F8 r3 s4 I# {2 _6 E) w0 X, R** 优世电子公司 **% O! J! ~% ~& s# F) J/ ^
** REV1.0 **& ?7 | F' {9 [" c+ g( N) A) H
** **
. A$ d' w) C' a7 V6 Q. s**系统所使用的器件:TLC0831(A to D connvert) **! K% q" [( e% {, |( x+ v
**创建人:Jarvee **" ?" S3 Q- S2 c6 Q% _
**文件名:main.c **0 J8 m0 C8 U/ D
**日期:2002-9-14 **" V$ y3 {# N2 o. `2 _) c
**描述: **+ h; X! A' D( k: M: b) Y; L# p8 q. ~
**--------------------------------------------------------------------------------------
8 a% f# Q" L/ h% Q1 g**修改人: **5 j, P& H0 ^ I. g& Z3 n
**日期: **
8 i) _, w# L! d& b# }8 y**描述: **
. y. Z& D" l1 F! H! I7 N! W, s**--------------------------------------------------------------------------------------
1 d3 p2 U. |+ ~! N+ P4 o: z* m***************************************************************************************/
9 `$ Y+ U# B/ O/ K# I2 K
: B. n o) v; S( L8 m1 b2 m9 e
5 N5 b! P8 Z9 _) ]- c" d5 ^, K#include <reg52.h>
2 Y5 ?7 F5 K4 ^. Z/ i# y( ]#include <stdio.h> //头文件
* A2 ^9 m4 m" S7 i4 W& y" C: |; h% n/ }
typedef unsigned char uchar; //重新定义数据类型
6 U4 P- P9 C( m" ^& f% d4 Q4 o; r$ l
7 q% W( Q3 I; tvoid delay(uchar x); //函数说明! d1 o5 b' J0 u4 B
uchar readadc(void);
( y3 Z* M/ L4 D1 `0 lvoid adcck(void);1 b+ M- v0 @* }/ \+ o" P+ y
+ D t0 s1 H6 `0 B' c3 g
: v* X4 B9 x5 ^3 Q: b; X" _/ {sbit adcdo=P1^0; //DATA ; Z4 b; K1 Q6 z. X4 h5 R
sbit adccs=P1^2; //CHIP SECELET j& ~; a2 r( [+ }$ `
sbit adcclk=P1^1; //CLK( p( v: Z) H# k2 f7 u
//P1口功能宝义
2 Y$ t( L' m3 d
: ~5 U9 {: U2 K1 r- n8 H
5 U3 w2 T5 y% M1 K
6 F6 ]" B& Z R: a! W2 D/**************************************主程序******************************************/
4 o3 X4 v2 E2 Z2 w' B" ~void main(void)
v& V/ Y/ W8 d{% |- R6 z* t* z
uchar a;7 V9 }6 b3 F- C4 t2 a8 [0 u
a=readadc();% x$ E6 X) X7 I" F
ACC=a;" G+ S5 d, r2 S% v
}8 _% g! |" k* u2 d k
/ v: `$ r* I d; R6 ]8 K* o
$ m) |, z$ g4 q! [/ l/***************************************************************************************
i0 a* r8 T+ I' W( q**函数名称:void delay(uchar x) **8 Y# O, Z1 U9 v6 ]+ u$ p
**功能描述:延时 **
8 G; O5 P# _. G* n/ y$ L**输入:uchar x (所要延时的长度) **
* s. D! A3 [) l1 {! Q8 v0 E/ _**输出:无 **
L. N# u' f, Q6 ]**全局变量:无 **/ G% Y) u+ @" @, Y8 v) }# w) }
**调用模块:无 **2 k2 ]' `* j6 ~3 H' f0 X( }
** **( p6 b9 [ |4 I' ^, K# b" N4 L
**创建人:Jarvee **
. l" u, O' I+ A7 C6 R$ f2 f**日期:2002-9-14 **
9 S2 ?3 E/ f3 |0 u**--------------------------------------------------------------------------------------6 I2 p J Y& M0 I B& b
**修改人: **
8 w/ f4 g8 Z+ x' P# P4 Q3 J. I0 ~**日期: **
- z ~- v5 ^1 G( t**描述: **
3 N2 t4 z1 ^/ H/ y6 L& `**--------------------------------------------------------------------------------------
2 y% C9 [, q, O; C2 A, C***************************************************************************************/1 a" K. g U7 F; N% o
void delay(uchar x)* ~: w: J9 M, |
{
7 a" Y- x- s; t/ D" ouchar i;
) O C, C5 n; I0 S5 K3 ifor(i=0;i<x;i++);0 R' M% B) n% R3 Q( R
}
: ?+ C1 ~/ |- E. }5 J& L3 C( n8 X+ \- J. {+ O0 R, e# d% T% c4 h( e' |
. n$ _" L5 X K' D
0 j: x8 C5 \" a1 ~5 v$ f+ y1 r1 G
/***************************************************************************************& ^7 e" E- Z) T
**函数名称:void adcck(void) **
0 [, }2 B( ~0 m! e4 ]**功能描述:产生方波信号 **
^# S4 Z N h9 j0 a**输入:无 **
6 \3 L% k8 y9 k- d0 {**输出:无 **
; F8 M6 Z% C) W- r8 w2 u. i( D6 Z**全局变量:adcclk-->P1^1 TLC0831的CLK **
9 X8 t7 ~8 l' b3 k0 ?**调用模块:void delay(uchar x) **
* m }5 @0 D& c; _( x' z) W1 c** **
3 W/ x- [( c; p; G% H; N! g1 p0 p! v**创建人:Jarvee **
4 y: n3 ]1 Z+ n; B**日期:2002-9-14 ** R( {, t3 U( k" [: b
**--------------------------------------------------------------------------------------1 k; t' H, a& B/ V A
**修改人: **8 w( G* h# V8 ?' j8 ]0 z
**日期: **
- k7 W( ^4 {. d**描述: **& W% _- Z9 W! R1 A# G, Z
**--------------------------------------------------------------------------------------# Q6 x- j& j9 u& b: {2 P
***************************************************************************************/6 }: f; N) g% t; z
void adcck(void) // clock signal ; e" ] n& O- ~
{2 F$ ]/ z7 ~% y
adcclk=1;5 ~) X6 y6 h, t( d. F( `
delay(2);- S. C1 m5 M% P8 ?9 N, ]
- Q3 [ y$ `3 g" f# k% M* Sadcclk=0;
5 E0 c) y% m3 edelay(2);
1 H$ g; I. d8 K3 R: h" @3 |1 `}. J/ h! ?+ x1 d1 c
( _% a: X! p( a" B* G6 ?7 r
4 F `8 [# b' t; a
y. u) }. S8 @' C% H% o% Q
/**************************************************************************************** h. e2 l J. K
**函数名称:uchar readadc(void) **9 D" u4 r9 ~2 e& C, o! [! ?6 k/ s
**功能描述:从TLC0831读出所转换的数据 **+ e) R6 v: V% |
**输入:无 **
. K4 M% e# I( s \% h/ v**输出:函数返回值 **
% \. ?; b3 n) [$ ?**全局变量:adccs-->TLC0831的使能线 **
/ j4 `- I/ z' _- Q**调用模块:void adcck(void) **% a4 \: s- w# p7 P+ @1 n
** **
& L- D) o' j/ [$ L: a, w+ I7 {**创建人:Jarvee **; f6 X; X/ g- y( A4 R& }6 D! y
**日期:2002-9-14 **
% ? J$ ~7 T; d5 n/ J! r1 L**--------------------------------------------------------------------------------------+ r. q% E( K. @2 C; h
**修改人: **
; C9 [1 q0 g! O$ b. ]% t4 F**日期: **
! h; x: N7 h) o**描述: **7 Z& Y R4 {7 J Q; {; v5 l* b
**--------------------------------------------------------------------------------------
) ]5 a! |3 S7 G& t***************************************************************************************/
& m, }7 Y$ P# e7 c- N* iuchar readadc(void)
* Z5 P; l# x2 g& p8 i" B{
* A1 A* M% t" I# r. y; ^uchar i;" d4 R6 k' A4 J% \
uchar ch;
P' x$ C" t, X: Q* S' `9 eadccs=0;adcck();ch=0;
( c g o5 |) Y. f
5 c3 v+ X9 m+ `' Xfor(i=0;i<8;i++)" R+ V2 `7 u/ `1 Z0 Y- D. n
{4 n' c8 r6 I5 }4 v" {; N
adcck();
* \/ v9 J/ G2 a. a; B7 Rch=(ch<<1)|adcdo;5 n2 v0 H+ f* K; v. z, T; z' I
}# I( e, e& y; {* O7 } I
return(ch);
9 L) ~. O" b! c9 h" v} |
|