EDA365电子工程师网
标题:
Keil C程序规范写法范例
[打印本页]
作者:
85486952
时间:
2016-8-9 15:45
标题:
Keil C程序规范写法范例
/***************************************************************************************
# T4 e3 Y: Q3 G; T0 v3 I: _
** 这仅是个学习(A to D connvert TLC0831) **
! y, ?, v. P. d% i% e7 b+ E8 ?, B
** Keil C51 REV7.0 **
0 ^/ M ^* O) @
** 优世电子公司 **
6 z$ b, h. o; Z1 b' x z
** REV1.0 **
! ^- R0 T+ ` o6 Y4 ~
** **
2 b7 c5 m) }# D( R4 T% j; x6 Z
**系统所使用的器件:TLC0831(A to D connvert) **
+ z P9 B. j8 ]6 Q3 s( M" \& J
**创建人:Jarvee **
p# C) k5 d; ^, i* H3 L, R
**文件名:main.c **
' E2 R* f" Z: x, L! e# b
**日期:2002-9-14 **
# y9 D, r1 c Q! x( i- O. W( m
**描述: **
% Z' Q' V: \8 I- ?0 k M( |# H# {: x/ Z
**--------------------------------------------------------------------------------------
3 ?' O4 a1 T6 |$ t
**修改人: **
# Q$ x' d/ H. r/ J
**日期: **
/ F0 F N9 @% [4 C6 j5 ]
**描述: **
. N/ U7 q- I& }$ G, O
**--------------------------------------------------------------------------------------
, E% `( R- V ^7 w7 e+ d0 a
***************************************************************************************/
# i3 M. i# h, w7 K/ z- h
, N6 k7 h( \' R) _8 L4 m
" S" I3 e1 v4 o0 e) M, U1 Q
#include <reg52.h>
% B" o: a7 f6 l) J# |
#include <stdio.h> //头文件
2 {7 N! [6 C( L
5 d2 g7 O& w% y+ f8 v
typedef unsigned char uchar; //重新定义数据类型
6 K: R: X0 ~9 z6 l( a
7 [: B8 l/ Z3 A% f" s' u1 W/ v& h( Q
void delay(uchar x); //函数说明
: ~' J/ u% v! E8 q8 S0 f
uchar readadc(void);
2 l* s$ q d9 e+ u4 ?+ u
void adcck(void);
( t" X, h4 o2 u0 e3 T9 n. I" S
5 m: H% C* d! \: \5 Y' y* H. @
! M6 {! ~# I- f: {& I* G
sbit adcdo=P1^0; //DATA
5 l: d) j l. [7 t9 E
sbit adccs=P1^2; //CHIP SECELET
! S1 X, e2 W+ U8 k4 f% G
sbit adcclk=P1^1; //CLK
" j: O. H0 T2 p3 d! J2 h
//P1口功能宝义
% H c) i) W/ T5 x( ?& {. {7 s
, ~: P1 q" @. N+ k7 a
( @, ?+ r2 q- p( M" L
; e& ]. Q1 Z4 r; Z4 b' V
/**************************************主程序******************************************/
& W, R* ~2 |" N
void main(void)
7 f7 Z" f) Q2 n
{
5 V! ]) s* s, b% f7 s2 `
uchar a;
) w2 @& X& y$ }4 G
a=readadc();
6 ]* R6 l d7 H* t$ M* [
ACC=a;
% {2 c+ c- k, x4 H* x& Z
}
7 V1 k7 U5 F) f- u5 P% b5 v0 ^+ I
7 Y; {. w6 C, U1 N: L/ q; M
! d" T- b# Q2 f
/***************************************************************************************
: O0 o8 U! ?+ e& `
**函数名称:void delay(uchar x) **
3 N9 i( \. I& G* F( z' E" i, @
**功能描述:延时 **
1 N% p& |4 c- g
**输入:uchar x (所要延时的长度) **
6 U2 Y0 S9 y. j! N8 b+ N
**输出:无 **
0 T( X1 @( ?9 g$ K
**全局变量:无 **
' S" `) @! O& C' |$ D4 E
**调用模块:无 **
$ Y3 n, n' e+ Z
** **
! C" C6 O- u {8 c* n" h2 X
**创建人:Jarvee **
4 r9 t( e' _5 u3 }' K+ d
**日期:2002-9-14 **
4 ?3 F2 j* u5 z( {; ~2 f
**--------------------------------------------------------------------------------------
0 v4 A" }- }( Q( U/ x9 A" V0 ^
**修改人: **
. p/ |# j3 r1 e* |7 V8 |
**日期: **
+ ^. x- z4 j; R2 V2 u3 V% X- w, K
**描述: **
7 f3 s5 m3 E8 Z7 U6 K! z
**--------------------------------------------------------------------------------------
# U5 m8 g X. ~* r
***************************************************************************************/
- Y/ [! i% C# s, d! i1 x% g
void delay(uchar x)
! _, a" ]1 V9 F* T6 u0 S, [) T0 P; l
{
% |8 S/ @% ]& j
uchar i;
4 P( v; L; B' E' {- {
for(i=0;i<x;i++);
' J8 u" c5 m+ a
}
% L% T' ?5 y- A$ Y G
" f& `: @0 i0 O+ u" r- A, f
7 \6 M, S1 y4 c. _# V
) j% k& ^' ` p9 u4 G" E
/***************************************************************************************
/ E* I3 n( o# l/ u+ m9 ~ G b
**函数名称:void adcck(void) **
$ [0 p: ?& o( C- M$ W
**功能描述:产生方波信号 **
8 _3 `- p" _ r& o) f
**输入:无 **
+ O9 \9 F j+ e5 n
**输出:无 **
/ ?4 ]$ J6 M6 L2 V
**全局变量:adcclk-->P1^1 TLC0831的CLK **
+ Z% l/ X( E% g2 b7 r/ Y
**调用模块:void delay(uchar x) **
1 s& z) K* {" f1 J" f; B
** **
1 G9 k9 s2 j) |: Z
**创建人:Jarvee **
% ]; j ~/ ^/ b6 Z9 G) b+ H
**日期:2002-9-14 **
4 B- y9 P* r4 H/ K! \2 L
**--------------------------------------------------------------------------------------
) Z8 g0 D2 g" [
**修改人: **
* L& W. G6 v# h6 {9 |
**日期: **
" E0 S( Y7 B3 \& k' |! G
**描述: **
, J2 F- @ R- |* |
**--------------------------------------------------------------------------------------
7 }4 R1 M* d0 [7 E
***************************************************************************************/
; {; L3 V7 J1 Z. H1 I& z8 U
void adcck(void) // clock signal
1 V2 U6 A9 i+ @1 \& x0 r8 Y( l
{
; f: S/ p3 k* e
adcclk=1;
7 s( S5 E/ u' k8 ~6 q* ~
delay(2);
% }; h$ U$ w' o% d% y( ] \& {% m& F3 V: [
. u% v+ O5 L& q8 T3 d6 A
adcclk=0;
2 x' M/ b i; i, f
delay(2);
& p1 V+ d4 F, T! \8 \! e, _
}
6 T Z0 x) j! {; A$ r
F! u2 I) r( Y. d' o+ K7 A
! m% R0 J/ }% S7 c+ r6 R8 M
+ ?1 K8 t( M( Y5 s! x* ?4 U
/***************************************************************************************
+ C7 o7 ]5 S; K8 C
**函数名称:uchar readadc(void) **
9 q$ C9 ?& Z' [3 k
**功能描述:从TLC0831读出所转换的数据 **
/ M$ h* @+ C5 h ]: P, m2 I0 C. b. @
**输入:无 **
( ~1 e. G6 f. k5 m$ x( U
**输出:函数返回值 **
5 T" {8 `3 I: l8 J6 n
**全局变量:adccs-->TLC0831的使能线 **
* a Z" w6 h9 q2 [- C1 j
**调用模块:void adcck(void) **
, V- G# C& C' n) z
** **
+ v" F# Q3 F. E3 d( v% o- \
**创建人:Jarvee **
: w* D t+ o# d( V7 t0 ^. P
**日期:2002-9-14 **
$ v2 y1 o9 V6 W# b0 k
**--------------------------------------------------------------------------------------
/ k1 \/ q1 |2 [
**修改人: **
9 L. [% q0 O& l' P$ k$ R
**日期: **
' p& l3 o6 i2 i, r4 h; ?/ L
**描述: **
: e5 ~; i! x7 h6 W7 Y& t& {: f
**--------------------------------------------------------------------------------------
/ p7 Q) T* x; d2 H
***************************************************************************************/
) l [! g5 s* x8 O& {* w
uchar readadc(void)
; Y! w$ c# W4 Q! O7 l: f
{
( o* M- h* @/ ~
uchar i;
" [; X3 d- G2 w5 X. ]. G( q+ C
uchar ch;
$ L4 q- R9 x; G% v
adccs=0;adcck();ch=0;
# S7 z3 N" B8 P% z2 v; C
* j! { w! e6 e" I6 D* H
for(i=0;i<8;i++)
) E0 |+ Q- |& \ h
{
. X* X6 W) a; }' N t% z
adcck();
3 G( |6 A5 r. v0 R. [' S; Z3 D
ch=(ch<<1)|adcdo;
. k, S. U! ]5 |0 ^2 [
}
5 T5 c8 n4 I( A7 y
return(ch);
+ |, N. ]/ J- y: J/ K8 X0 z
}
作者:
wu68aq
时间:
2016-8-9 16:36
学习中,谢谢分享
1 n( k; i$ t, d( h7 J6 v5 n) k' \
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2