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( L5 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( Qvoid delay(uchar x); //函数说明
: ~' J/ u% v! E8 q8 S0 fuchar readadc(void);
2 l* s$ q  d9 e+ u4 ?+ uvoid 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* Gsbit 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% Gsbit 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 |" Nvoid main(void)
7 f7 Z" f) Q2 n{5 V! ]) s* s, b% f7 s2 `
uchar a;
) w2 @& X& y$ }4 Ga=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/ @% ]& juchar 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 Uvoid 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% zadcck();
3 G( |6 A5 r. v0 R. [' S; Z3 Dch=(ch<<1)|adcdo;. k, S. U! ]5 |0 ^2 [
}
5 T5 c8 n4 I( A7 yreturn(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