您好,欢迎来到九壹网。
搜索
您的当前位置:首页呼吸灯程序

呼吸灯程序

来源:九壹网


#include

#define uint8 unsigned char

#define uint16 unsigned int

uint8 orc,num;

sbit PWM_out = P1^1;

void pwm_init()

{

TMOD = 0x02;

TH0 = 0x9c;

TL0 = 0x9c;

ET0 = 1;

EA = 1;

TR0 = 1;

}

void pwm_set(uint8 pwm)

{

orc = pwm;

}

void delay()

{

uint8 i;

for(i=0;i<250;i++);

}

void main()

{

uint8 i;

pwm_init();

while(1)

{

pwm_set(i++);

delay();

}

}

void pwm_int() interrupt 1

{

num++;

if(orc >= num)

PWM_out = 1;

else

PWM_out = 0;

}

#include \"reg51.h\" //包含头文件

#define uchar unsigned char

#define uint unsigned int

//**************************************************************************************************

//延时函数

//**************************************************************************************************

delay(uint time) //int型数据为16位,所以最大值为65535

{

uint i,j,p; //定义变量i,j,用于循环语句

for(i=0;ifor(j=0;j<2333;j++); //for循环,循环250次

for(p=0;p<2333;p++);

}

//**************************************************************************************************

//主函数

//**************************************************************************************************

void main() //主函数

{

uint i; //定义变亮i

while(1) //进入while死循环

{

for(i=0;i<200;i++) //for循环,实现LED由亮逐渐变暗

{

P0=0xff; //熄灭8位发光二极管

delay(i); //延时保持熄灭状态i个时间单位

P0=0x00; delay(200-i); }

P0=0xff; delay(5000); for(i=0;i<200;i++) {

P0=0x00; delay(i); P0=0xff; //点亮8位发光二极管

//延时保持点亮状态200-i个时间单位

//熄灭8位发光二极管

//延时保持熄灭状态5000个时间单位,使现象更明显

//for循环,实现LED由暗逐渐变亮

//点亮8位发光二极管

//延时保持熄灭状态i个时间单位

//熄灭8位发光二极管

delay(200-i); //延时保持点亮状态200-i个时间单位

}

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务