EDA365电子工程师网

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

作者: 85486952    时间: 2016-8-9 15:45
标题: Keil C程序规范写法范例
/***************************************************************************************
" o8 S8 L( Q' l. F! P8 h2 C9 O+ F3 ]** 这仅是个学习(A to D connvert TLC0831)  **
5 y) U2 C- B3 k! Z5 N8 C** Keil C51 REV7.0 **
6 P$ m0 J5 G- a) p. I** 优世电子公司 **
0 }; o8 D9 p. I+ f/ F** REV1.0 **% F" X* X& y' W
** **
3 j3 _- `5 e( d+ Q4 ^**系统所使用的器件:TLC0831(A to D connvert) **
* \$ A* I# N3 E3 O- Y; S* I3 R**创建人:Jarvee **1 v7 z8 M1 {! m& s1 p
**文件名:main.c **" V: V4 g4 F' s) h: b9 z" [. J
**日期:2002-9-14 **9 Y- I& o* N# O* Q) F  ^8 n& X
**描述: **, m) Z- D  i) O5 |
**--------------------------------------------------------------------------------------
0 k& l. t$ e' B- O; D**修改人: **
$ f" q( f+ f! }0 ?6 l* y7 x**日期: **1 M1 f5 ?6 t/ D3 V
**描述:  **9 b3 q/ y; O: ?3 Y0 y, b8 u0 V' R2 I
**--------------------------------------------------------------------------------------
" d4 k( p! z$ v; M9 N" G9 H***************************************************************************************/
( W6 ]  M! y  g" V/ {1 _; k! F  W . z# j3 T  K3 _) Z0 ?+ K# p3 P

! _/ ^' M4 [% A' F6 d4 H#include <reg52.h>
4 r# ~3 j# [9 ]. z3 M5 I#include <stdio.h> //头文件6 Y- f3 A4 Q+ B' ]% }
# L  P' m, \6 B6 E  Q. H
typedef unsigned char uchar; //重新定义数据类型
1 E/ ?; A, z0 @/ c: }: e  z1 Y) N* U' {: t/ b  V9 x
void delay(uchar x); //函数说明
: U: [9 y! A' ^9 B& ^uchar readadc(void);
/ X, R0 s/ f8 y! H2 ~void adcck(void);  E1 @% o( W% o) [) c4 O
& B4 |$ ?# Q7 C, m

( q6 M3 I  t6 u+ _! a2 n: [sbit adcdo=P1^0; //DATA
. u) c" y& }2 osbit adccs=P1^2; //CHIP SECELET
0 r7 m+ P4 @# k; R: ^3 @sbit adcclk=P1^1; //CLK8 f& I2 J! G( b2 v& H
//P1口功能宝义+ w8 @4 ?0 J6 M: e1 E- }1 L$ ]

+ H6 P( {$ q8 M) h4 B; s* B. I " Z" @- L/ r4 Z; G) p4 m% {0 Z% J

6 @: v0 o! p) x' M/**************************************主程序******************************************/
1 H2 c) c* m1 V. [7 T% wvoid main(void)& t- S- b7 @' u' G1 i3 B8 y
{
: `$ H% e5 m: [" r9 i- [uchar a;
1 A( ~$ d: S9 E7 [  ca=readadc();
6 y6 ~- @+ k0 r" O( O; n% R2 RACC=a;
' f5 p6 O" p! M, Z}
9 W# a3 ]$ _1 k/ f2 U' v0 D9 K% ?' z/ L' f# d

" `8 v2 ~* S+ q/***************************************************************************************9 I9 `. m" g( G" T: Z; r+ ^( d
**函数名称:void delay(uchar x) **. p2 q2 a  ^+ F; w0 u/ e
**功能描述:延时 **8 X7 _' u. Q0 s# K. p0 u
**输入:uchar x (所要延时的长度) **- C3 D3 E2 X. h0 }' U7 u2 J
**输出:无 **# v: Z2 V2 B3 I0 ^. y9 h/ n
**全局变量:无 **3 _# Q1 S3 b1 I3 e" N' ]
**调用模块:无 **
2 m" ]7 P) `6 P** **
5 i7 t2 A3 B" o6 g( n) ^; Z**创建人:Jarvee **# a. B- e# Y4 \& N, U. E, ^
**日期:2002-9-14 **% Z, A+ }% x& _1 v# A. k9 W) |
**--------------------------------------------------------------------------------------4 F4 C4 e6 A6 O0 X5 t
**修改人: **
& C4 M" j$ h& x8 p+ Y2 `1 q% {' c**日期: **) r1 ^7 H% H  p' p: G
**描述:  **
0 {  t- c1 S" O* O( E" Q**--------------------------------------------------------------------------------------
. w1 f* O! x/ T$ u% {***************************************************************************************/
3 W) \" s0 s/ n& b; W" q' tvoid delay(uchar x)
: U  J% |- ^" B; H2 ]  R; _{6 y, x! k' p( |9 x; j$ I8 ?
uchar i;0 M* a$ `; S+ m5 l
for(i=0;i<x;i++);. t9 y$ W9 v; |- b6 @$ Y  D. \, ]
}1 y. c3 X% r+ ^4 u3 I7 _% s

; q# A5 x" z. z9 j
( P2 \; n( X. o; S9 j5 p! l1 r
( {3 p  U2 w( Z) K3 t( V/***************************************************************************************1 C+ f4 i8 i3 X0 S( Z9 @
**函数名称:void adcck(void) **( t5 I+ e  x8 s% X& b; `
**功能描述:产生方波信号 **$ \$ g. g" N& @, [6 c- J! B' n
**输入:无 **
* w! R% g% R8 `- f+ X0 x- I; T**输出:无 **' P' i4 I5 ^# a: I! V, F
**全局变量:adcclk-->P1^1 TLC0831的CLK **& P: V9 Q) k+ _4 p: v( V+ |1 ~
**调用模块:void delay(uchar x) **
2 j; I+ d8 D, |! y" T** **
6 e- ?# M. l& h$ G: u**创建人:Jarvee *** Q) o! ~; n4 N: }
**日期:2002-9-14 **
/ q: q4 d& }; d7 d) u**--------------------------------------------------------------------------------------' r5 R8 E+ C$ v- J- Y
**修改人: **: h  i/ _# ~# k( v9 W
**日期: **; Z& v9 p% s$ {: P  E
**描述:  **1 y& L' G) ^) U& p$ e
**--------------------------------------------------------------------------------------& D5 Z, K) R* C" }3 A! a
***************************************************************************************/
, l; @! q. A* Kvoid adcck(void) // clock signal
% J8 E, K* D  v- n- [5 G* q{
; U: f2 I0 @  k! Q4 xadcclk=1;
$ n9 T1 ~5 u, f- p1 E/ fdelay(2);3 {6 J1 q5 z" I! D# Y, @

& D8 B! y4 j) W7 s& J7 v8 `adcclk=0;! r: u7 t; l4 ^0 b9 T" W$ z
delay(2);
+ A  y! P1 o7 n' J}  E" P/ L  V+ C/ e& f
4 ^' R3 e5 ^) C; [$ r, W

* `& e- g1 I( e* u) H$ O( d$ w/ K
+ `; v' ^, Q+ x( J8 S) o/ l/***************************************************************************************
/ [% V" a" R" ?, l% F**函数名称:uchar readadc(void) **% j+ X2 w  @8 C9 N$ G' R5 ~
**功能描述:从TLC0831读出所转换的数据 **
* s9 _4 s! L, Y0 \' |1 ?. d6 [**输入:无 **0 B- J6 _* h' J) e: ^# V, E
**输出:函数返回值 **
5 d9 e  w& ?/ R**全局变量:adccs-->TLC0831的使能线 **
! B; f) u2 v# r**调用模块:void adcck(void) **/ V; a0 y* T+ h- R: [
** **4 z2 J) J& l7 ~6 \
**创建人:Jarvee **! ^! E* v( i7 p# V2 D4 j9 L. z" r" z
**日期:2002-9-14 **4 ^$ o6 a7 H& J
**--------------------------------------------------------------------------------------. Q6 x+ V3 F* ?
**修改人: **6 k& y) s. C+ x& E5 \4 z+ X+ d
**日期: **
% [  H3 a4 C, J! D# D4 _3 f6 A& E**描述:  **
" P" v% [+ |% T' H& ~; {**--------------------------------------------------------------------------------------$ E1 |1 ]  H8 t* ^) W2 R
***************************************************************************************/$ w0 y. q: z5 _2 h0 i
uchar readadc(void)
5 T( h) v0 d0 Q{' T8 S% x! T( ]4 Z0 O
uchar i;
; f! g0 x/ P7 s' Y& Z- H& t8 }( xuchar ch;% M9 J. {. m6 t. g& o
adccs=0;adcck();ch=0;
( w, h9 f. ^' e7 S8 B/ H
+ [. e' m9 Z) }# S8 Q3 gfor(i=0;i<8;i++)8 R% S) _' _- b' [. W% b! v3 `
{
2 K! r$ J( c; q: Z  l0 Z) |adcck();
- R; g, A9 A4 f9 ]ch=(ch<<1)|adcdo;
0 c; \9 B7 T+ Y/ H' Z5 D  `6 I8 V: q}
* G# i' w3 G& I0 I( ~return(ch);
- z, p- K  ~: n# C: v1 {( T2 ^( h0 y( b}
作者: wu68aq    时间: 2016-8-9 16:36
学习中,谢谢分享
: h% {' u1 Q8 {. w




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