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=


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部