单片机编程使8个发光二极管1.3.5.7依次点亮,延时1s后2.4.6.8依次点亮?

2024-12-01 11:07:01
推荐回答(3个)
回答1:

你的晶振频率是多少啊!我这里晶振就用12MHz的啊
还有 端口用哪一个啊!
我这里用P0端口试验给你啊!
org 0000h
st:mov A, #0AAH
CALL DELAY
mov P0,A
CALL DELAY
CPL A
MOV P0,A
AJMP st
DELAY: ;误差 0us
MOV R7,#0A7H
DL1:
MOV R6,#0ABH
DL0:
MOV R5,#10H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
NOP
RET
end

回答2:

由于刚接触单片机 程序写得有点笨 共勉吧
#include
#define uint unsigned int
#define uchar unsigned char
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
sbit D7=P1^6;
sbit D8=P1^7;
void delay(uint);

void main()
{
while(1)
{
D1=0;
delay(500);
D3=0;
delay(500);
D5=0;
delay(500);
D7=0;
delay(500);
D2=0;
delay(500);
D4=0;
delay(500);
D6=0;
delay(500);
D8=0;
delay(500);
}
}
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}

回答3:

移位,定时,循环5次。具体的程序可以仿流水灯的程序,加个循环
参考资料:吴鉴鹰单片机视频教程