EDA365电子工程师网

标题: Keil C程序规范写法范例 [打印本页]

作者: 85486952    时间: 2016-8-9 15:45
标题: Keil C程序规范写法范例
/***************************************************************************************
# ~. E4 _. f; h# Q! ^** 这仅是个学习(A to D connvert TLC0831)  **- n- S! a+ q0 l' P
** Keil C51 REV7.0 **5 `0 q% z+ u' ^) z% o  B  Y
** 优世电子公司 **
2 }! w/ g1 _' u1 F3 |8 m** REV1.0 **' R1 D. S" W% @; c9 _6 @: ?: u. ?
** **
( r. V! O7 _* W* S**系统所使用的器件:TLC0831(A to D connvert) **
2 M5 ?  w) m0 i$ @% X# g7 d6 k**创建人:Jarvee **
; Y3 @- Y: l. o# f**文件名:main.c **
- s: |" |0 D- f/ d**日期:2002-9-14 **6 G! ^4 k; E2 @1 j% E+ o5 y) m
**描述: **, ?% m' ~& g# C  Y5 f$ ~; m! T
**--------------------------------------------------------------------------------------
# Z! O5 Z1 [( \  P  }**修改人: **6 n% s9 b! G) T% t) v; K/ S- N0 ^1 Y
**日期: **$ ?6 W& X- o4 A8 |
**描述:  **$ z$ I' |( U8 c* Q+ Z2 @
**--------------------------------------------------------------------------------------& b4 j& ]9 s! H! R8 j* x
***************************************************************************************/
& n8 k! ]/ ?5 ?$ y# c) g3 ?& z
. |, o" m  ~7 d6 l9 d: p2 w- ]
( c. T1 P) \+ ?8 m3 C9 t! t7 ~#include <reg52.h>
' e/ k' \9 G; K2 y#include <stdio.h> //头文件
; V, }* F- A* k2 U/ ^  v" _3 v8 h' z' R- M/ z0 l% L+ N7 x9 K
typedef unsigned char uchar; //重新定义数据类型
3 C& }# v7 O5 {8 a2 M/ J: \9 Q0 e2 R% k' S3 I
void delay(uchar x); //函数说明; b; g7 l: z2 ~: M8 f
uchar readadc(void);" E2 H7 X0 b( p3 L: j
void adcck(void);
, ]5 x/ {# x4 ?6 H% {1 }3 i
# F+ R9 V8 o: u# p3 A. _
: v9 F1 h: O  Z& ?sbit adcdo=P1^0; //DATA
0 ]7 w) a% H, @/ C0 p' Z) X! Asbit adccs=P1^2; //CHIP SECELET
7 i# g7 v" f! Y; Z- ysbit adcclk=P1^1; //CLK
' n/ s. J9 u+ C- Q) Z0 Z//P1口功能宝义
* q/ i9 o: _% ^7 w! O, J' _; l( p4 r; K1 J' L

% E: |  z: E. Y9 X1 f4 V! t8 c+ i4 z/ q7 ^0 h5 f6 `
/**************************************主程序******************************************/
0 n$ p/ r& N1 {1 G  W+ Vvoid main(void)# n5 Q, @: a" y
{- N8 M. P' ?/ G* _7 Q, S! g
uchar a;: \* f+ @* A# I6 T- Y5 ^
a=readadc();3 y6 L  ?" M% J; S5 H( E
ACC=a;
& V% |: j3 ^% l# U}
/ g1 d- A8 `1 B5 u9 m: @$ l' W
# p- W. F2 t* `  L0 z8 i- d6 Q+ E8 [' A( k# v6 Z4 W
/***************************************************************************************5 s0 N6 N, d$ d
**函数名称:void delay(uchar x) **
# X% Z" o! {- b9 l**功能描述:延时 **
+ \9 f+ g/ Z/ l. _; d0 `# Z4 @**输入:uchar x (所要延时的长度) **
# R- T% [6 O+ Z**输出:无 **
1 x5 a$ i) \; ?, t0 s**全局变量:无 **9 Y  d5 @. f. o5 n( m6 U
**调用模块:无 **" X# ]7 ]8 c$ R, P, |) G" I" p
** **0 }: ^( B- ^2 ^# t( V. f2 ]
**创建人:Jarvee **% j+ l' b1 U) [3 z
**日期:2002-9-14 **. ^6 v- X; o% j, B# X2 g+ \
**--------------------------------------------------------------------------------------1 t$ [8 j( M* z  Y; `
**修改人: **
) R8 \. L2 h6 Y% T# k! @1 y**日期: **
9 }; ?4 y& L1 @, o) o9 j**描述:  **
& L# G5 O  I& V% T8 D5 D4 `/ C( f**--------------------------------------------------------------------------------------
+ S8 V/ v# v5 u! Y; h***************************************************************************************/
0 h2 N1 J$ M5 svoid delay(uchar x)
" K$ g! s/ _$ a7 c( H$ M- U, T3 n{# g5 C" O$ ~" I
uchar i;0 K# `9 ~) ~; Y1 a
for(i=0;i<x;i++);& y( X1 ?, R3 S) \* J! l9 T
}
) z- D8 L1 P9 k0 T  I$ n' V( Y, g
; v& Q! V5 d( v  z
/ _3 k1 ^8 k8 y
2 d, @' j" j" C% l$ q, p; |/***************************************************************************************! Q' d/ s6 _+ H
**函数名称:void adcck(void) **
8 x8 G7 p1 s+ j) u/ j# C5 ]3 ]**功能描述:产生方波信号 **( H1 A4 T7 n( Z9 ~
**输入:无 **
5 _. n, X3 y1 M**输出:无 **/ g2 T: I5 l1 k  z  F
**全局变量:adcclk-->P1^1 TLC0831的CLK **
3 I/ ~+ X% s' Q' R# K" F**调用模块:void delay(uchar x) **, x, _. ^! j/ R& n
** **2 o. k# f- U: k% W8 y
**创建人:Jarvee **
; @. B. h. G  o**日期:2002-9-14 **% a' \! O3 ?+ r
**--------------------------------------------------------------------------------------
+ b& b8 [: [+ x! g" L; u, k**修改人: **
% e" V8 p' ]* A* A5 L' c**日期: **' b/ R) x; U3 F  ~, A' J% F1 q
**描述:  **: \8 C8 R( a% X6 u$ R7 b- Q. r5 I
**--------------------------------------------------------------------------------------
2 K  ]9 C4 T7 _8 t) l***************************************************************************************/0 U# z& i0 P0 w) P
void adcck(void) // clock signal . x: x" N1 X  u' a. a
{! d2 x( }0 J! D2 p9 B0 N4 f
adcclk=1;! ]0 ]$ A1 P4 N5 {' @( D) v
delay(2);
- v2 C# m) V* ]3 u4 z$ w  {+ e6 Z( G
adcclk=0;! J- u6 z! z9 R' J: Y, {; H
delay(2);
' z8 ]& R2 [: K+ a5 }+ c2 k}" I8 y, P8 q9 W6 t) G

  B! {( F  N+ T
4 l* f1 b! `6 n9 A/ }- V% Y: S  m# k  _  `. @5 ^+ E1 f
/***************************************************************************************5 l& b  ^" J" s* \0 i& O7 w8 R& K
**函数名称:uchar readadc(void) **
/ n& s; ]( w( H, H3 p" Y' S# i2 S**功能描述:从TLC0831读出所转换的数据 **
% a1 h, |* {, U**输入:无 **% f: I8 q' l  M9 t  S
**输出:函数返回值 **& y# J; `3 O2 o
**全局变量:adccs-->TLC0831的使能线 **
1 v/ K2 f, R$ ?**调用模块:void adcck(void) **8 s2 |0 _7 V8 t3 W2 q
** **
7 z$ a4 y" p  g7 |7 X2 J& V( g**创建人:Jarvee **! V6 x# }& Q, N& U% `' E/ R5 l
**日期:2002-9-14 **
  |% B% F4 e* C$ p; v' B$ G; z' l**--------------------------------------------------------------------------------------$ R& O. w6 n% k3 `0 B# P
**修改人: **; g$ S  }' m( V
**日期: **) O/ {9 }+ u- h9 X+ k- c
**描述:  **. b! ^8 i9 x9 \3 g* ?
**--------------------------------------------------------------------------------------
1 p, g; g% Z+ d***************************************************************************************/
9 P0 a& q& r; \' Y) k' k) }5 ]* Juchar readadc(void)- W4 W. Q. r/ X" Q
{
  w' `  [$ V! z5 t' `* P1 cuchar i;8 I' r% ]8 v# {, S* {) |3 {  M
uchar ch;4 Z/ K. i+ G( q# w3 H
adccs=0;adcck();ch=0;4 n$ G1 O6 W- W+ Q& f+ f" i
( o8 y3 F$ Z9 A- f
for(i=0;i<8;i++)
, C# I7 G3 r8 N; c. j{7 j' `2 l% z, g7 Z1 j
adcck();5 o4 q4 }4 q  n6 L
ch=(ch<<1)|adcdo;% C0 _' @" `# [& V2 \
}7 q  ~$ z* N3 r$ U' r# o1 z( A9 J
return(ch);
& w1 Z! f! s" b5 H: d& y: o0 Q}
作者: wu68aq    时间: 2016-8-9 16:36
学习中,谢谢分享
8 @5 K' X+ c$ z( G& v




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2