|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
LED闪烁的简单试验 8盏LED交替亮灭的实验效果% N& M% A7 G* V
4 p& L, X- l' _. L; c
7 z8 H3 Q4 P. v: F3 V( a
喜欢的朋友可以看看+ m& F) E3 G5 ^5 o' g# N3 y- R
$ u! Q$ H0 R& m2 r) o, z+ A2 m1 i/*******************************************************************************0 a, L$ C' ?* E* r7 R J& L, u c7 @4 i8 \
* 8 e, u1 ]0 x/ Q5 J7 y5 Y5 J+ {. O7 W
*
3 Z' H; y9 a% O--------------------------------------------------------------------------------0 l$ Z0 S* |! m$ o) X7 H" q
* 实 验 名 : LED闪烁的简单试验1 H4 u1 [! O' T0 {/ ^. o
* 实验说明 : 得到8盏LED交替亮灭的实验效果
7 G' Z$ @& G/ P; S# v' F7 w" w* 连接方式 : 见连接图2 ~8 F" T5 s, T. ?' T6 P9 b+ V
* 注 意 :
% s# \# Y* r$ G$ b3 L' J. P, E*******************************************************************************// O8 m3 o8 ^" G' \) r
//--包含你要使用的头文件--//& }7 ]7 M! f: Y% ^/ b. w+ [0 L
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
$ \3 e- e# k9 b& p6 ~% G//--声明全局函数--//" V+ Y1 t; I' E8 s7 b
void Delay10ms(unsigned int c); //延时10ms
+ F' [2 H7 \3 u$ b4 X% B8 O/*******************************************************************************. E4 G, w9 L: K
* 函 数 名 : main4 q) _6 F' ~6 E6 w
* 函数功能 : 主函数
! U% S9 w( n* d/ D" F* 输 入 : 无
4 F( z7 ?* s/ z' T" p- k# s, `* 输 出 : 无
; f: W0 M* z! }: n8 e# C*******************************************************************************/" f/ B! _* A* y5 i3 B% h% M
void main()% H0 o7 s- K, t' K3 w) O' \ F5 \
{ 3 A! b" R4 }. l
while(1)& d. a m3 a' ^- ^1 p
{
0 P0 I! r7 n6 m3 T( F# O: T //--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//! p: J2 X* n o2 ^; C
//--P0口一共有8个IO口,即从P0.0到P0.7,而0x00二进制就是0000 0000--// K, v1 m, U6 s
//--效果就是P0.0到P2.7都是0,即低电平。而如果你想给P0.1口赋高电平时--//0 e q: o7 N# K- y
//--二进制就是0000 0001,就是十六进制0x01.--//
4 @" I9 X% s# L4 a: c! F P0 = 0x00; //置P0口为低电平) T; l0 v F8 w0 X
, D, j6 Q+ x) U Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间5 \/ ]2 X; `' }! m5 Z1 g& X6 X' V
6 F& r3 G( W; L5 } P0 = 0xff; //置P0口为高电平$ V; D! S. ^8 D1 L! a) }
n- i( p8 ?$ z/ z Delay10ms(50); // 调用延时程序
+ v- c$ i& A. L) p}' ?' l/ Z) U& \8 @6 \1 e# V: ?$ G8 k
}% G4 ]: b4 C- w# F9 t
/*******************************************************************************
) I6 n5 M5 e3 i$ |* 函 数 名 : Delay10ms
4 i- A+ ?: W3 D* A m) m2 a0 c' {6 I* 函数功能 : 延时函数,延时10ms) ~+ h u8 U6 b4 I1 B; N0 G
* 输 入 : 无
3 t0 m% x O+ h" Z* r2 f* 输 出 : 无
) E2 G9 R; }3 U H2 k7 P*******************************************************************************/
6 O' P- q M1 |# yvoid Delay10ms(unsigned int c) //误差 0us
5 B# c0 V" ~/ @6 j" d' y{% B/ j* R9 }# `
unsigned char a, b;
# K/ L; T& e0 a( X g( A//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
P, L/ \$ @4 b! L for (;c>0;c--)
4 ~5 Q$ e* r6 u2 j, b{
1 F% W" ?0 ?9 I for (b=38;b>0;b--)( {5 Y0 j% @- Q3 a9 r$ T
{
' a3 v" G* V% W1 I for (a=130;a>0;a--);
2 ^5 s6 H& [: Y$ B* V }8 v2 t' a$ @% x+ t _* q
; U3 b, Z/ G8 @7 T}7 c4 d* o9 `3 i8 \) u
3 M" W: m% ~1 A}' D) Z& O) f, G, S$ j
|
|