|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机led闪烁源码
$ Y; h: a" p1 {; g5 i3 M- ^! j. x3 Y
, M2 ]2 L; \* ^+ u
$ }* g( W/ | Z7 E1 \: H8 |! ked闪烁源码:
# C# i$ U8 J; P# Q9 k, t/*******************************************************************************
, z1 [/ r0 Z9 ~: |1 E5 n*
. F& F U. @( g% h! _5 D* 普中科技
/ `) P% w) p# b9 p0 d' f) p' x& y5 O4 D--------------------------------------------------------------------------------
# g: J; a( R8 Y4 N# `( |* 实 验 名 : LED闪烁的简单试验; O3 r3 M* l8 x$ a( c- [, Q
* 实验说明 : 得到8盏LED交替亮灭的实验效果0 l- o/ C6 j+ j ]4 y% O* @
* 连接方式 : 见连接图
4 X) V" J5 v! h, Z# o* 注 意 :
8 t C0 b+ n9 u*******************************************************************************/& n; y s/ x/ A/ B* f# l% f
$ A7 w% E( j5 C) e7 |
//--包含你要使用的头文件--//
0 r7 @; k0 B. L$ x#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器' a) q: R- f. G9 Z) D
% ~+ h3 m' d: {- C7 z. o//--声明全局函数--//0 O. I, m! N1 [$ X( ~/ q% q, a$ r
void Delay10ms(unsigned int c); //延时10ms
$ W1 l* ~6 `& ?1 p; b$ ]4 P$ V" ]: J! _& p9 ]( P
/*******************************************************************************" |; x+ x: F& o' ~* C
* 函 数 名 : main
' k& h) e7 d5 n* 函数功能 : 主函数+ G/ x1 x5 p0 n9 M2 ^/ Z/ U. x
* 输 入 : 无: ?% ]# g; b8 t
* 输 出 : 无
# L& {2 _8 C, c4 Q# \*******************************************************************************/! o2 z! |0 D3 C( d/ |* m
5 C! b% d7 n1 [$ l( s; I9 v+ a/ m
void main()
2 q( k/ E; X- u4 k, d. I$ U{
9 r) r d- n2 Y; E) j while(1)
0 ]& H' i+ F! P0 j' A! \/ Y {# s3 ?5 v0 S" i. h3 V# @! s
//--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//( U$ r: v7 C" E$ x
//--P2口一共有8个IO口,即从P2.0到P2.7,而0x00二进制就是0000 0000--//
8 p& a. {6 _( ^# _# z8 j //--效果就是P2.0到P2.7都是0,即低电平。而如果你想给P2.1口赋高电平时--//) S2 V$ B+ R4 |1 i8 c# W
//--二进制就是0000 0001,就是十六进制0x01.--//
: C' j0 B B0 p8 u: F# m2 J) s$ R7 Q, Y! k P0 = 0x00; //置P0口为低电平, a: f B+ ]" ~$ k% j
- X$ e# n+ h& j- B Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间
5 E) i% a. d* b+ s7 B$ Q" f9 w6 t# e1 x; `/ ]1 P3 y( q
P0 = 0xff; //置P0口为高电平2 \5 ~- ~, }" E. g) @# u+ i
+ I/ _! u% j& E! C& |! T- x3 d Delay10ms(50); // 调用延时程序4 L' m' \ E" S$ x2 y
}
% A; o3 C$ g) U; k3 u: Y5 q, J; g2 y. N
}
5 J2 ]* z2 ^! |7 D" R- {. G! ~) ~" n1 |- S! K& X! f3 X c
/*******************************************************************************" _" b- ~2 A. T1 h& K/ @, M) W3 ^
* 函 数 名 : Delay10ms4 A! E/ |# ]. G" A! G/ K2 L
* 函数功能 : 延时函数,延时10ms
) m6 M% L' R+ ~- y* 输 入 : 无
1 S6 X- v' j% b6 K* 输 出 : 无
. \ Y5 h5 X/ A9 w+ X*******************************************************************************/
1 s) P& \" u) L. f0 r! R* J
" q) y+ B" ^+ ?5 V8 R3 {$ pvoid Delay10ms(unsigned int c) //误差 0us
" z- ?, s- d4 [{
+ J- J+ D5 Q( ? unsigned char a, b;
8 s/ i% A( }: s/ d5 V0 F4 C
+ C m: V% Q/ g q3 H //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
1 q. J8 Z/ A% `0 A for (;c>0;c--)
* T( T0 T: V5 J8 B0 S1 m9 L* a% U {0 }# y5 `( i$ {' r$ ]) S& h, L
for (b=38;b>0;b--)' L" h0 V( r2 g S4 n3 b
{
' [6 m$ O7 W# ?6 b1 v- G! X for (a=130;a>0;a--);
- U7 B! [; k7 A8 F3 K }
R9 G: R" S) ] }
5 y- R4 q4 I+ l& _ }
2 y' v4 ~! I5 u/ B; u9 }3 V- R
% \: \4 |" V+ ?! J2 D. b}
) J6 w9 X4 O2 o4 N/ C
% j& ]' P! J# W$ f" A& ]1 \! I$ P1 ]% J! u# Z" k# N' o
; b8 n: K1 [6 }2 p. e下载:
( c' \: x6 r0 b! _& m
9 e, W, ~/ R7 a9 `0 c2 m |
|