|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机led闪烁源码. f8 w1 l2 N3 t& u
7 z' L/ p* r1 ^: J
: d8 Q0 g8 S+ N: Ved闪烁源码:6 u+ e! N# y" [% P# A8 |+ v& _
/*******************************************************************************& o9 v1 J9 ?, g
*
0 r% V: D7 @( ^- a* 普中科技
# D9 ]; M* }! G3 L--------------------------------------------------------------------------------; i% y$ d. _; y0 y& q
* 实 验 名 : LED闪烁的简单试验. P9 \) o2 H, Z) r1 Z% e
* 实验说明 : 得到8盏LED交替亮灭的实验效果* Y1 G0 u7 l0 O9 I G: S8 p
* 连接方式 : 见连接图
5 B, Y" K6 W6 [# ^! s; _* 注 意 : 7 n0 h& a3 R7 R4 D2 U
*******************************************************************************/
! `2 l% {' F4 ]7 {5 d& K7 l: J# x9 H' M& M. d; [
//--包含你要使用的头文件--//
5 @2 C2 C) Z: Y, ?#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
% d7 H0 h5 Y; i8 V+ h$ O/ o6 @. W3 k2 T1 D
//--声明全局函数--//
( c2 }: o( s7 p7 T* g6 vvoid Delay10ms(unsigned int c); //延时10ms- w. X3 O- j7 ]3 ?
# p. a+ B. `$ J/*******************************************************************************
4 Q9 }7 e9 Z$ V8 o% M. b* 函 数 名 : main
& `. H- d4 A: Y q! ~8 P7 g+ R9 g* 函数功能 : 主函数
3 W" I. c) F0 t4 e* 输 入 : 无
7 ?$ U2 Q5 r! F+ }9 _+ x* 输 出 : 无
9 i; a1 i4 K( N+ a, R, o0 `: N*******************************************************************************/8 e1 Z1 o& I% I* N
1 c ]8 O# L3 Q! j# F5 [) w
void main()% `; z" m1 s' ^) u2 s7 o' O/ X
{ 8 P, A7 M$ m8 n! \* G+ A; H+ t3 j% o5 e
while(1)
* p, s, X# s, R+ I5 H4 L! r9 ]) L5 W$ o {
1 f8 A; j$ O4 @0 @" N, v; \ //--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//
1 |4 ~' g: ]5 Y9 z4 Z0 S //--P2口一共有8个IO口,即从P2.0到P2.7,而0x00二进制就是0000 0000--//
4 Q7 E3 O; D M4 }- w% |; M. U; g //--效果就是P2.0到P2.7都是0,即低电平。而如果你想给P2.1口赋高电平时--//
& K0 r: t5 e) K' B9 K5 V* N //--二进制就是0000 0001,就是十六进制0x01.--//; H$ z I- a* [ q. M) d( k# q# q
P0 = 0x00; //置P0口为低电平
6 B9 \ q6 t4 Y9 G) i, V2 \+ `% {( z/ l9 m: R# w& ^
Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间
" s) r7 l/ b' h
$ z1 x0 ^+ T- G& N- o P0 = 0xff; //置P0口为高电平
; r5 @& C8 [4 ^) h$ ~; y
# z: ?, Z8 l2 i; r, }; Y4 c Delay10ms(50); // 调用延时程序" d; A2 \+ q @0 ^" z& ^
}
6 X( }% l* [/ p( B9 w
; J- E5 S/ H1 e}/ Q% |+ S& k& B2 S& B8 d6 }0 l
Q8 w. D0 N z, o0 E: Z
/*******************************************************************************
9 E2 i6 {1 O9 B) z* 函 数 名 : Delay10ms
; e# N7 @+ o( t7 W$ e. R0 j1 Y# w+ f* 函数功能 : 延时函数,延时10ms
' g& }- p4 \6 k3 G* 输 入 : 无- {$ |0 g0 Z \* F b
* 输 出 : 无
4 ~1 ^& d- `2 m: W- K*******************************************************************************/8 J- q2 {# E8 y9 t& X
: S3 @4 C- Q5 N. [" ^+ d/ ivoid Delay10ms(unsigned int c) //误差 0us
* |/ I2 T3 X; a{
* r, [3 W% P! H" W; T0 Y* [) n; Y unsigned char a, b;
3 H& V6 j# H3 C) s( b2 ~6 X/ O
' [6 C* a8 `& T7 Y4 X //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//5 a+ \' ?; @' r! d, H, u5 i: g' y' T
for (;c>0;c--)
/ w$ {- H! W; f1 u {
# S3 C) C" d/ F9 _ for (b=38;b>0;b--)
# y. e+ Z! E) l: v4 ? {7 ~3 m+ i G! @' C" n$ @% S# r
for (a=130;a>0;a--);
9 M6 M' n# U' x1 J: ^, I }; [: d* k x y; k% S: l5 u/ i) q
) l4 w4 m; c; T8 ~3 g7 [ }
3 z$ x5 k0 w( ]
9 Q# E k W+ X}
( T' h- f3 T0 h4 S' C
. S- g1 F/ K7 [% |; O+ L
1 l& D! K2 m2 d* S, Z& ]
9 ^" y6 i# c* B: T% v下载:
. ]( }$ Y( h" k6 q/ Q. \
% B" k0 Z+ f: A7 x |
|