|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
LED闪烁的简单试验 8盏LED交替亮灭的实验效果8 Z- A& ^- ]+ ]% f: k5 V+ e
# t3 {( G, B6 ~4 }/ {! w
: }" c- N3 e x/ m! S9 s- v. t喜欢的朋友可以看看
" ?- U! |+ [2 l1 t
B" [0 s2 ?# i/*******************************************************************************
9 t' W' U# X, Q* ) H8 M3 C% m! E) }7 `
*
" w" V: Q1 Q# `4 o" [--------------------------------------------------------------------------------
2 m- V5 m! `6 c0 D* }* 实 验 名 : LED闪烁的简单试验 B1 R! y4 p# ]' |1 [ A8 [2 U
* 实验说明 : 得到8盏LED交替亮灭的实验效果
; [: H6 a5 v+ Z7 s* 连接方式 : 见连接图. \( z& G6 n' t' P
* 注 意 : , T$ E8 t! F u, H) g' D! l
*******************************************************************************/1 j% ]. v4 Y2 ^2 s
//--包含你要使用的头文件--//
: c- l% ]: @/ g% J; o#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器2 D, g) b4 s3 J! m7 {. R8 I3 ]
//--声明全局函数--//0 S' t$ p2 Z* G; q& L) y$ L! ^* ^
void Delay10ms(unsigned int c); //延时10ms$ ^0 ?9 n7 P4 S9 c6 t9 E. m4 H
/*******************************************************************************9 M" H; i8 o: M
* 函 数 名 : main, R' s+ [8 x( L4 l* ]
* 函数功能 : 主函数' ?+ s3 q0 j3 M: W8 h5 ]. I
* 输 入 : 无3 B) w% j v0 Z
* 输 出 : 无
+ P2 D- r% N3 \*******************************************************************************/
# b/ @3 I$ f) A; h5 d8 Rvoid main(), d) G. N {0 t% N9 {8 d5 X
{
: M* c. R T9 x/ Cwhile(1)
3 X, ?" U9 h# v* J2 T{
# N9 A5 ` A# U6 u //--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//$ J1 H3 p5 e- K& X
//--P0口一共有8个IO口,即从P0.0到P0.7,而0x00二进制就是0000 0000--//
2 r/ ~7 w L$ A% K9 { //--效果就是P0.0到P2.7都是0,即低电平。而如果你想给P0.1口赋高电平时--//
' }( ?" w" \8 u4 K. U8 `* Z! B, w //--二进制就是0000 0001,就是十六进制0x01.--//! j. e- P" S2 V" o6 H7 q0 o( @
P0 = 0x00; //置P0口为低电平! | ^+ ^, e0 D* B: r
9 G; Q- }: u6 [/ P. q$ Q/ C0 Q, o
Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间
$ S) ~( p+ M1 F0 v8 K, V
% s, K" S0 E8 B' O* t5 G6 F) B P0 = 0xff; //置P0口为高电平. c3 h( J' t6 u
5 c! v6 f6 o9 q2 {5 L- Q3 M Delay10ms(50); // 调用延时程序& Y8 [) ] [" P( j
}3 ^" t0 f3 ^ }% M& R- H8 l+ b
}6 |! E8 l. i+ e0 U3 f# X1 f" P
/*******************************************************************************
$ C: k4 J6 L$ ]" t* 函 数 名 : Delay10ms
6 J% z! G" s3 g1 f% ]& I# Q* 函数功能 : 延时函数,延时10ms
l3 b& A( e4 Q1 r. r$ a* 输 入 : 无7 h, z% P4 H9 L4 z: w7 {" y: e: W j
* 输 出 : 无, T3 `% q+ X$ X9 X, ^2 N U5 D" v. K
*******************************************************************************/# u* u5 ]2 H- g+ p% M$ l& E! r
void Delay10ms(unsigned int c) //误差 0us
3 [# B1 `! T2 u7 E( @3 r{
3 p/ [- F- C# g8 M unsigned char a, b;
3 `) _* t* b0 K" q//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//6 C6 I6 `* w& d( F8 x( H! i
for (;c>0;c--)& ~1 E/ r6 I1 i% q: o% ?6 b
{
; |7 T1 B5 q) y! Z for (b=38;b>0;b--)9 t7 ^. O6 o6 {* I( t d* H
{
) n- }* Y; v2 A: l/ ~% y4 j for (a=130;a>0;a--);
1 F. d% d+ I3 t# K) E8 n } _ a. H6 j! {( w+ q5 i( \
' V2 c8 w: I1 ^}$ T( E$ s- @+ o4 Y. v
0 e" o# r5 h1 k6 v( Y! M}( i/ v/ K) A, A0 {, ?
|
|