|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机led闪烁源码1 ?' H" r( r9 K$ p) q2 P+ L" [
5 x; S- b3 U) e* A2 ?
0 e( {( M* d: w: Z$ u6 T; T; `ed闪烁源码:' e2 |5 s) A2 N9 B N
/*******************************************************************************
4 G9 \* c: H2 L/ E6 o4 ^2 l* e*
4 h$ Z/ _3 }3 y1 _. b* 普中科技
* B; `2 e/ P+ o) ?, |0 B3 u8 O: Y--------------------------------------------------------------------------------( c# T9 o. [5 n& c" i, w& H
* 实 验 名 : LED闪烁的简单试验# J( K& R$ W% f3 h- F, \8 Q! ?3 h
* 实验说明 : 得到8盏LED交替亮灭的实验效果0 I/ [0 x/ j2 @& D
* 连接方式 : 见连接图$ G' F; [: |7 P" s% v7 x' G
* 注 意 : - o6 k! K0 ~) L
*******************************************************************************/9 H9 ]- a9 O7 P& f6 F% D5 M1 G7 Q
; ?! H( e% p, r* H9 d//--包含你要使用的头文件--//6 q5 S) M% M% t/ ?8 x1 ^
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
@* N o% F& L+ Y# [1 W5 b: |* ]5 M8 W
//--声明全局函数--//) c+ W+ y2 d% F, {- r( X2 q
void Delay10ms(unsigned int c); //延时10ms
7 S' X& t' @; r0 ^- y; d& n
$ J& ]$ p( g: F- q' K) I/*******************************************************************************" v) D+ S6 G5 L) u% c
* 函 数 名 : main
& |. L1 W3 B$ s$ f* 函数功能 : 主函数3 I" H9 a( R+ w* D/ ~' G: t, T
* 输 入 : 无5 S" H X9 t2 l
* 输 出 : 无8 ]' j2 Q: s1 f$ \8 t
*******************************************************************************/& m Y0 d7 s! G3 Y) W7 r
+ T: ?2 K8 O+ S' ?$ J4 h
void main()- Y" T; t* ?! a9 o+ i5 |4 R
{
$ ~: e {, K+ ], D while(1)( d# p, I6 b0 \
{/ r) ]& C! g9 v( l3 w8 \# B, U
//--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//3 q" v# C6 c8 R+ H( f
//--P2口一共有8个IO口,即从P2.0到P2.7,而0x00二进制就是0000 0000--//
3 }/ F% z W: U/ m# a( M+ J2 V //--效果就是P2.0到P2.7都是0,即低电平。而如果你想给P2.1口赋高电平时--//
& c+ w, s. N& n+ `6 {: V# G //--二进制就是0000 0001,就是十六进制0x01.--//
4 t- w/ o3 F! g3 }# p8 A P0 = 0x00; //置P0口为低电平! ]( F# b, p+ p
, L7 i9 D3 `: B) E* Q7 R Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间 l5 K8 f: ?6 V8 M5 }
, T" V/ S1 K8 ^' ^8 h P0 = 0xff; //置P0口为高电平
# M" c! T" I! I5 N9 _) u8 j v' l0 R5 v h( `" C( F7 m
Delay10ms(50); // 调用延时程序 `8 |* g Z# r! k" p8 h' X
}4 Z3 K1 p& d+ m! i
5 b/ P- T) _7 ^" Y
}. [7 U" n* Z. a
- f" m. s8 b8 U7 I0 @( P" n/*******************************************************************************0 U9 h5 k6 L( O; d1 i2 C) b. `
* 函 数 名 : Delay10ms) _) r I; X! A7 b0 Z8 n2 |
* 函数功能 : 延时函数,延时10ms
* @6 s) m- p: a. R: N9 J* 输 入 : 无
) M) Q6 D3 G3 P2 w$ o# t) k* 输 出 : 无- i% K* c: h! @ U0 `' `
*******************************************************************************/: u0 f. g: l/ D: q6 L+ ^% k. }
) _5 L) y& z4 d" X7 c4 D
void Delay10ms(unsigned int c) //误差 0us
9 Z K& U% X" F% P* ?* T3 C, Y, w; j{( O1 k |3 |% X2 S. k
unsigned char a, b;
0 Y* ], g1 u6 @: @4 Y9 Y; S& |* l% G: U) K. `
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
5 _. [' {2 `: K, B9 N for (;c>0;c--)
) ?/ g6 _% i. i! _4 \2 g1 D {
' V7 a, K3 w" Y* W for (b=38;b>0;b--)
2 B7 u q% y1 ^, {" h' C2 |0 I {4 e/ J# I& g7 i+ k+ y* H( g
for (a=130;a>0;a--);
0 O% V: G8 B% O% r& F" v3 X }* r: D$ {8 b! m B+ B
6 s) Y6 m, G2 O5 ^+ l7 G8 @! R8 L }. w1 m) P( a3 ?- c
0 \; g/ q6 j! E, t7 V; @3 l}
3 C! ?* V: I* ~. M5 a3 O ^" A
+ X2 p1 U G3 r0 h" a% y2 x( D! ^4 c' [. L7 m# ?
) ~/ g1 w& R0 o- S下载:/ \) f3 m% r& G+ K
$ R0 f a0 S- r* c |
|