51单片机如何跳出wile循环_51单片机闪烁LED灯
闪烁LED灯
51单片机是较为简单的8位单片机,意思是一次能处理8位2进制数据。这一次闪烁LED灯就是让单片机的引脚定时输出1或0。
51单片机有4个IO端口,每一个端口分别由P0,P1,P2,P3,4个寄存器控制。我们假设输出0时LED灯点亮,我们用单片机驱动时就需要让端口的某一位置零。例如我们用P1口的第0位闪烁点亮,我们需要给P1口的第0位定时置零。
汇编语言代码如下:
ORG 0000H
AJMP MAIN
MAIN: MOV P1, #11111110B //从P1口第0位输出到发光二极管
LCALL DELAY //延时1秒
CPL P1.0 //取反P1.0,实习闪烁效果
LCALL DELAY //延时1秒
SJMP MAIN //循环主函数
//延时函数
DELAY: MOV R0,#20 //延时0.5秒子程序,使用参数R0、R7、R6。
DELY0: MOV R7,#200 //延时约为20*200*250=1000000us=1s
DELY1: MOV R6,#250
DJNZ R6,$
DJNZ R7,DELY1
DJNZ R0,DELY0
RET
END
C语言代码如下:
#include "reg52.h"
typedef unsigned long int u16; //对数据类型进行声明定义
sbit LED = P1^0; //将P1口第0定义为led 后面就可以使用led代替
/* 延时函数,i=
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
