|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机基础操作 控制LED灯的亮灭控制以及位移控制程序
# n) @4 A9 W! Z8 n- u- G/******************************************************************************* 2 ^6 l7 D- l: r7 I0 W Q
* 文件名称:LED闪烁实验
6 G( L7 s% T2 ?( T0 `6 u/ p* 实验目的:1.掌握单片机IO口操作的基本方法6 n9 z" z+ j: g
* 2.掌握软件延时函数的设计方法
4 l/ @) i, D8 t- |* 程序说明:LED以0.2S为间隔亮灭* }7 E$ ?; Y# ]
* 硬件环境:IAP15F2K61S2单片机,单片机内部振荡器频率:11.0592M4 F0 S# k# _; M# y9 G
*******************************************************************************/
* d* W9 \2 B. T! D7 B5 n7 J) {" P7 @9 N! e; f* c
" G. s% M4 V5 X; O& _+ N. A#include "reg52.h" //定义51单片机特殊功能寄存器6 M; w, c2 [( y# ?& H# W8 r& Y
#include "intrins.h"
, D& J* ?" \1 K: y7 J! `2 q9 _
2 I0 _' Z. w: i' n
! q% ^9 b( Q( ]( ^2 w//关闭外设
8 P& m7 j# b! X5 x; v; yvoid cls_buzz(void)
8 f" Z% B* ^! E, o8 n{
3 Q9 D5 z. }( c$ }# M( z6 L1 C P2 = (P2&0x1F|0xA0);! G% G4 F, r7 {/ G+ k
P0 = 0x00;
9 j, @# }/ ]8 | P2 &= 0x1F;
# N0 T! Q7 b0 W' t! y# {4 I8 S}
, @0 |$ o& ]) z+ h9 I% p) v$ [ L
, z9 S: u. F4 w7 Z
5 Y( Q: C9 U! T; j; W8 p- J//延时函数8 n$ w3 L- @+ j x: E: @
void delay() //@11.0592MHz3 b( r6 ^% P3 K0 @0 h" n
{
) H9 \5 _( p1 ~ unsigned char i, j, k;- b. }8 S# G8 Y7 R% N" t
- r2 l* ` v! ^8 m- W. ?' @0 V
_nop_();
9 m |# W) `4 I" I. @. P _nop_(); L+ _/ f5 C/ |: ^
i = 9;
' m- k0 a/ ?. q- l+ G8 f# P j = 104;
% F+ P5 }; Q" g3 _5 [0 Q( H1 i6 D8 K k = 139; x# u. i2 H2 t& J5 a4 B* L
do6 W8 K4 r5 i. g0 Z
{3 v$ Q9 }5 O5 x! L* }8 N- i5 p
do
E$ h) W4 I9 k. p8 K8 v. O* U {
+ p( I4 O- ^2 p/ O( O while (--k);5 u' O P* B8 H+ c
} while (--j);
$ f& @7 e* f; [8 u# _1 d& r } while (--i);! _% K# O& |# a
}
/ o. u4 C. W- _" @: m. z2 `3 W2 \ Z" H9 q7 d% j; Z2 E- g
) k! c% l# t$ h6 z. j//主函数8 m2 w% {+ d$ u
void main(void)
$ o6 I% L$ O0 I) Q& Z{
% E$ w" N+ _& u' v cls_buzz();; H2 i6 @$ a$ l* E, Z4 P
' |; H6 w/ P5 d$ J H, l while(1)
; m8 r, O. C. S0 u! B' n {
; d$ K3 _2 [1 A6 }+ J; Z P2 = ((P2&0x1f)|0x80);- b" N. u! F1 Y9 u; {' H
P0 = 0xff; //LED熄灭
) u, `8 \3 x4 O2 L+ A4 `- _ P2 &= 0x1f;4 [& k9 V4 S9 z, U2 M- G
delay();
4 ?7 ~$ Q6 n- z9 B6 V
M, L8 q: d9 D0 n4 _4 [ P2 = ((P2&0x1f)|0x80);- x- I3 J" ]" J& v2 N2 R5 g
P0 = 0x00; //LED点亮
! k2 `4 `! d0 b0 k' Q0 U8 [. Q7 T. r P2 &= 0x1f;
8 ?& e; ?/ b1 c4 t delay();5 X3 {5 \8 ^+ x! c+ M
}, L0 z0 {- z4 v# g0 o: A
}
, @4 r2 T- O) I2 [5 M! v' e; u+ n9 \0 V( v& ^8 o+ `
7 o6 A$ V$ w- _1 M6 ?8 U' @
|
|