设计LED的一些问题。

来源:百度知道 编辑:UC知道 时间:2024/06/26 01:38:24
如何利用单片机的 I/O 中控制8个LED实现流水灯, 频率不限,但要人能观察到。

//P0口控制流水灯
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char

uchar temp;

void delay(void)
{
unsigned char a,b,c;
for(c=13;c>0;c--)
for(b=247;b>0;b--)
for(a=142;a>0;a--);
_nop_; }
void main()
{
temp=0xFE;
while(1)
{
temp=_crol_(temp,1);
P0=temp;
delay(); //1秒
}
}

;;8051
;;晶体振荡F=12Mhz
;;;
K0 REG P3.2
K1 REG P3.3

;
ORG 0000H
AJMP MAIN
ORG 0003H
CALL INIT0
RETI
ORG 000BH
RETI
ORG 0013H
CALL INIT1
RETI
ORG 001BH
RETI
ORG 0023H
RETI

MAIN: MOV R0,#7FH ;
CLR A ;
$CL MOV @R0,A ;
DJNZ R0,$CL ;初始化
MOV SP,#60H ;初始化
MOV 20H,#100 ;最开始设定为100 ms
CLR IE0
CLR IE1
SETB EX0 ;外补中断允许
SETB EX