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 o
sbit adccs=P1^2; //CHIP SECELET
0 r7 m+ P4 @# k; R: ^3 @
sbit adcclk=P1^1; //CLK
8 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% w
void main(void)
& t- S- b7 @' u' G1 i3 B8 y
{
: `$ H% e5 m: [" r9 i- [
uchar a;
1 A( ~$ d: S9 E7 [ c
a=readadc();
6 y6 ~- @+ k0 r" O( O; n% R2 R
ACC=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' t
void 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* K
void adcck(void) // clock signal
% J8 E, K* D v- n- [5 G* q
{
; U: f2 I0 @ k! Q4 x
adcclk=1;
$ n9 T1 ~5 u, f- p1 E/ f
delay(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 }( x
uchar ch;
% M9 J. {. m6 t. g& o
adccs=0;adcck();ch=0;
( w, h9 f. ^' e7 S8 B/ H
+ [. e' m9 Z) }# S8 Q3 g
for(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