|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机led闪烁源码
) x) M$ n$ E3 q/ U* y( t& F, N3 k' `' m( E, I2 |; Q2 j; O% H
% B4 i& V" I7 F6 Q+ | ued闪烁源码:
8 v6 D: A" S6 O9 h' f. X, F% ?/*******************************************************************************
1 F) N2 ^+ l0 u* G*
0 c5 g. e9 u$ |0 k7 z( D* 普中科技
; a" n! K, p" u4 w--------------------------------------------------------------------------------- Q7 I9 u1 k! s- ~$ @8 S# O
* 实 验 名 : LED闪烁的简单试验- ^. {: b( c+ d: q* c6 V
* 实验说明 : 得到8盏LED交替亮灭的实验效果0 M5 x2 d. x% k: s- O
* 连接方式 : 见连接图5 y) B; m) A! i% l
* 注 意 : & R( f# u" l! [
*******************************************************************************/
5 L7 ?# C' _5 c% ?( e0 v. B6 `
% l( e0 f, y) j$ B2 J7 D//--包含你要使用的头文件--/// y T u k- e( z$ l
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
6 j3 W1 L8 R# B+ M' @$ Q* g& I4 J8 a0 d7 M: h
//--声明全局函数--//
- c0 E5 u( B5 Q: X2 T5 g2 }) D+ _void Delay10ms(unsigned int c); //延时10ms' U) o$ [" Y* ^4 O1 w3 f) ?5 \
4 K" T6 Z+ o9 X8 T" Y: O
/*******************************************************************************; W ^" Z+ P, _7 ^( {* R
* 函 数 名 : main3 ?# S) K3 q, \4 Y7 A2 w2 A5 k) b* E
* 函数功能 : 主函数' x5 J% e( s6 r P* l5 f& {3 A: Y
* 输 入 : 无6 v% ?" a( |/ {7 p0 N& y$ T
* 输 出 : 无
! g5 K& s0 h: _*******************************************************************************/) {2 j* h; h4 t H5 z0 |( p
, N7 G, V4 N4 L* w& G4 |" R2 [# h( uvoid main()) T: k2 P( O4 M: Q- {
{
, F7 Q. g9 {3 l0 w4 N2 K while(1)
) i- m/ Q0 K2 b% K3 I/ ]8 B% c {
2 V4 o/ F- I$ l9 r d# e1 M& W //--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//
# L' C& B4 A/ { m+ G) W //--P2口一共有8个IO口,即从P2.0到P2.7,而0x00二进制就是0000 0000--//- ~. K+ g, Z3 H3 D
//--效果就是P2.0到P2.7都是0,即低电平。而如果你想给P2.1口赋高电平时--//
) s5 i4 U: p% V+ v5 a& x6 s9 l) c //--二进制就是0000 0001,就是十六进制0x01.--//
; a0 `$ n% w t* {* J9 ? P0 = 0x00; //置P0口为低电平
) a0 N/ y& n* M) ?) i
" R8 Y4 O7 \/ L# v# O% E Delay10ms(50); //调用延时程序,修改括号里面的值可以调整延时时间+ y( K% c8 x7 C7 E
! B6 q4 G9 l, M' ^* D3 R; O P0 = 0xff; //置P0口为高电平* A8 L! O) J4 }4 d1 u0 u
# V. o5 R; L1 o$ z! L0 q Delay10ms(50); // 调用延时程序
, P- |* h; g9 @ }% q, g) ]% o* o6 i. o' u+ }3 I4 w
f9 m2 E7 ]+ ]8 O, z}
6 U. i% Y; {. i, p4 y5 t; B7 ~4 @, b* X
/*******************************************************************************
0 o6 ]( {1 S' _+ z) ^' L; S* 函 数 名 : Delay10ms
, P; Q+ }: |5 c, ~! E' [, Y* 函数功能 : 延时函数,延时10ms
* D$ ?/ i& c. _! l% y* 输 入 : 无2 k- T3 Q4 _! S) z
* 输 出 : 无
/ i/ P2 c, b+ B' V9 X*******************************************************************************/
/ s: e( @* H" t, e' b+ M! r/ U* q3 G1 W* J& Z5 ~% P
void Delay10ms(unsigned int c) //误差 0us
) {0 A( D9 W M{$ X5 {! d& w7 B. r, A
unsigned char a, b;
& Z/ L6 k" p8 V$ x" q1 w' B8 w$ o9 E) N; J+ O
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
5 h6 O% u2 ?5 S, X; o; ] for (;c>0;c--)+ E8 w& ~0 d4 {. N
{3 z1 J2 p" V( ~, B0 g- j i
for (b=38;b>0;b--)( G2 c7 n4 T: c! D
{
: \! U) \7 l( K; D for (a=130;a>0;a--);. o# I y1 W* ^1 F8 e% _, A
}
; T. X5 J% q, o, k |, S
7 @; B/ L M8 ~* t$ C8 Z! D }8 K0 Q* s' J" h+ _
" E# T! v0 _6 Y( @ x}9 o& ?9 b; _+ E8 M# `
- [9 U% c+ H3 o- {( d
; K5 p- M T- p5 O" p4 b2 ~
# w; n( z' q" b- }下载:
+ W; w4 K2 G9 g* j. ]/ P' B0 v5 W9 g* {+ \5 |; x, L
|
|