电子烟项目分享(有原理图有原码和详细注释)

1、原理图

2、源代码

//--包含你要使用的头文件--//
#include <reg51.h>       
/****************************************************************************
数据类型宏定义
****************************************************************************/
#define uint  unsigned int 
#define uchar unsigned char

/****************************************************************************
PWM脚位定义
****************************************************************************/
sbit PWM0 = P1^0;
sbit PWM1 = P1^1;
sbit PWM2 = P1^2;
sbit   S1 = P0^0;

/****************************************************************************
全局变量定义
****************************************************************************/
uchar  cycle,high,low;

/*******************************************************************************
* 函 数 名         : 延时
* 函数功能           : 延时函数,延时113ns
*******************************************************************************/
//延时n秒
void delay_m(unsigned int n)
{
    unsigned int i=0,j=0;
    for(i=0;i<n;i++)
        for(j=0;j<12;j++);
}

/*******************************************************************************
* 函 数 名         : PWM01函数加
* 函数功能           : 由暗到亮,高电平加变化68个周期
*******************************************************************************/
void PWM01_add (void)
{
    for(high=1;high<=cycle;high++)      //如果(高电平=1;高电平小于等于800;高电平每循环一次自加1)
      {
        PWM0 = 1;                      //PWM输出高电平
        PWM1 = 1;
        delay_m(high);                  //PWM输出管脚高电平延时,延时时间是高电平的变量
        PWM0 = 0;                      //PWM输出低电平
        PWM1 = 0;
        low = cycle-high;              //PWM输出低电平的时间=800减去高电平的时间
        delay_m(low);                  //PWM输出低电平是延时时间
        PWM0 = 1;                      //PWM输出高电平
        PWM1 = 1;                      //PWM输出高电平
      }
}
/*******************************************************************************
* 函 数 名         : PWM01函数减
* 函数功能           : 由亮到暗,高电平减变化68个周期
*******************************************************************************/
void PWM01_minus (void)
{
    for(low=1;low<=cycle;low++)      //如果(高电平=1;高电

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值