用AT89C51单片机 实现一盏灯逐渐变亮5秒再逐渐变暗5秒
作者&投稿:闾昂 (若有异议请与网页底部的电邮联系)
用AT89C51单片机 实现一盏灯逐渐变亮5秒再逐渐变暗5秒~
p1.0=0;
for(i=0,i++,i<=pwm)
{
p1.0=1
};
p1.0=0
以上为软件pwm,i为局部变量,pwm为全局变量,通过控制pwm来控制led明暗,pwm最大100,最小0。从亮到暗和从暗到亮,写三角波程序,使pwm变化即可。
用PWM
逐渐变暗,光用单片机还不行,还得加DA转换才行。
ORG 0000G
AJMP MAIN
MAIN:
MOV 2EH,#00H
MOV 2FH,#01H
ACALL JIANBIAN
MOV 2EH,#01H
MOV 2FH,#00H
ACALL JIANBIAN
AJMP MAIN
JIANBIAN: MOV 20H,#120
MOV 22H,#1
LOOP: MOV 24H,#100
LED: MOV P1,2EH
MOV 21H,20H
DJNZ 21H,$
MOV P1,2FH
MOV 23H,22H
DJNZ 23H,$
DJNZ 24H,LED
INC 22H
DJNZ 20H,LOOP
RET
GND
p1.0=0;
for(i=0,i++,i<=pwm)
{
p1.0=1
};
p1.0=0
以上为软件pwm,i为局部变量,pwm为全局变量,通过控制pwm来控制led明暗,pwm最大100,最小0。从亮到暗和从暗到亮,写三角波程序,使pwm变化即可。
用PWM