|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
LED闪烁的简单试验 8盏LED交替亮灭的实验效果
9 k0 a7 O/ D+ t `( S) ?5 ]4 y+ x! H1 C$ E
w$ K( `( ^2 }) ~喜欢的朋友可以看看1 [* F, @& q: @, P2 T i& n
4 ?5 n" h, j/ `3 @5 L6 o
/*******************************************************************************
5 \' b. G) J4 ?( h*
% h" l1 n/ [! h! {5 h* ! ]3 W3 M5 A0 e
--------------------------------------------------------------------------------6 k i, O0 W- q* J+ Z7 D
* 实 验 名 : LED闪烁的简单试验5 L {9 Y3 n* c: Y3 E* l
* 实验说明 : 得到8盏LED交替亮灭的实验效果, |9 w4 \( P6 H" X5 V
* 连接方式 : 见连接图
3 t0 |. T! n+ p0 |* 注 意 :
8 P# q/ @) P! Y1 `' m* K*******************************************************************************/
/ e: x/ ^# ]$ `3 F4 S//--包含你要使用的头文件--//' d5 `2 b7 w0 C, `8 `
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
2 X7 q8 }0 P; ?6 W//--声明全局函数--//
! _/ Y1 i0 X; z, ?2 y! E2 C- \void Delay10ms(unsigned int c); //延时10ms( l2 C6 ~( { E) a
/*******************************************************************************$ t. y1 E" E0 p3 n
* 函 数 名 : main( }5 B- O; C4 P# X* u( Q
* 函数功能 : 主函数. ?" L; L* m0 P5 w
* 输 入 : 无
8 A* P& D- v( f5 l6 _, s* 输 出 : 无
' g9 @% M L @8 Z*******************************************************************************/, D. z% f$ H. d: m
void main()0 V% B- v) _! }4 ~
{
" b7 @( T# y+ Q1 p4 A* y; dwhile(1)! C3 K. M( u, d+ v+ `% U! k0 F5 T
{
% i4 k) P9 s7 H //--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//
- ^9 d! E6 Z0 u //--P0口一共有8个IO口,即从P0.0到P0.7,而0x00二进制就是0000 0000--//4 V o* e* Y( v1 r; F' q: d+ S
//--效果就是P0.0到P2.7都是0,即低电平。而如果你想给P0.1口赋高电平时--//7 A6 z; @5 W9 K# Q
//--二进制就是0000 0001,就是十六进制0x01.--//0 e, `" q# d, L, H$ k
P0 = 0x00; //置P0口为低电平
2 H2 l" ]% }/ V P: s: r
- a& l- Y# f+ F4 r; M Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间
9 [7 F3 A2 J& d" N " ^. K6 j8 V+ m4 w, A0 a: M
P0 = 0xff; //置P0口为高电平
8 S: j7 z M! M: O6 n
$ W9 O. S- e8 b% L8 Y. C Delay10ms(50); // 调用延时程序- O* {/ Y6 p6 [# c% e1 f
}/ q2 }$ u! Z7 ^6 i8 l
}
% u9 o T% g9 p! K( [, K! m/*******************************************************************************2 E) D1 e7 ^% I& v, g
* 函 数 名 : Delay10ms
1 s( Q+ j3 D4 k ~' M% P* 函数功能 : 延时函数,延时10ms
6 R' M* c" {2 i* 输 入 : 无6 m. `5 N. K K
* 输 出 : 无# k4 B, z2 z" ~1 C" r
*******************************************************************************/- F; d ~+ x7 R; f8 S& \
void Delay10ms(unsigned int c) //误差 0us( d$ z6 `3 C6 J" [# g& b3 X
{
! c# j/ n' k. P% o0 O- n! n unsigned char a, b;) C( f5 {0 _2 i/ P
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//" E8 w6 A* c4 L6 v- h9 C7 K
for (;c>0;c--)
, f: t( R4 L4 i2 x9 f2 l: o{# [4 J# i/ [, p2 u+ [
for (b=38;b>0;b--)
1 B q( A1 {8 ~ h {* l) K# H* {7 {
for (a=130;a>0;a--);3 u/ s, D! g9 e
}9 O( o) _) O+ g0 F& F/ c9 v3 o
' b# H/ h; n( @# z. _5 j$ G# Y}1 M4 Q- D4 e( j9 j
4 Z9 O, Y0 R2 e' C4 I- v
}
6 h8 r5 X$ H4 f: i$ x |
|