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! A
sbit adccs=P1^2; //CHIP SECELET
7 i# g7 v" f! Y; Z- y
sbit 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 f
4 V! t8 c+ i4 z/ q7 ^0 h5 f6 `
/**************************************主程序******************************************/
0 n$ p/ r& N1 {1 G W+ V
void 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- d
6 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 s
void 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 u
4 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 ]* J
uchar readadc(void)
- W4 W. Q. r/ X" Q
{
w' ` [$ V! z5 t' `* P1 c
uchar 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