调光台灯程序_调光台灯电路

2020-02-27 其他范文 下载本文

调光台灯程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“调光台灯电路”。

#include

sbit LED = P1 ^ 0;sbit ONOFF = P2 ^ 0;sbit ADD = P2 ^ 1;sbit DEC = P2 ^ 2;

unsigned int Brightne;bit MARK;

//库文件定义(定义单片机为8952系列)//台灯控制端口(LED)//开关键 //变亮键

//变暗键

//亮度值,值域0~255(全局变量)

//状态标志位(目前是开灯还是关灯状态)

/***************************************************************************** 延时程序:时间为1mS /*****************************************************************************/ void Delay1mS(unsigned int a){ //延时程序(ms)

unsigned char i;while(--a!= 0){

for(i = 0;i

} } /**************************************************************************** 延时程序:驱动程序专用

/****************************************************************************/ void delay(unsigned char d){

// 延时功能函数--由d决定延时长度

unsigned char i;while(--d!= 0){

for(i = 0;i

/**************************************************************************** 灯泡驱动程序:根据亮度值驱动灯泡

/****************************************************************************/ void drive(void){

unsigned char a;

} /**************************************************************************** 开灯判断:

/****************************************************************************/ void open(void){

// a = Brightne;LED = 0;delay(a);a = ~a;LED = 1;delay(a);a = ~a;

// a值取反 使a回到原值继续循环

//

// a控制延时长度

//取得亮度值数据 //点亮灯泡

// 延时长度随a而改变

// a值取反 决定灯灭时的占空比

if(ONOFF == 0){

}

//如果ONOFF为0则证明开关键按下 //等待20毫秒躲过按键不稳定的状态 //再看开关键是否被按下 //将标志位变成开灯状态 //等待按键放开 Delay1mS(20);

if(ONOFF == 0){

MARK = 1;

while(ONOFF == 0);}

} /**************************************************************************** 关灯判断:

/****************************************************************************/ void close(void){

//

} /**************************************************************************** 变亮判断:

/****************************************************************************/ void add(void){

// if(ADD == 0){

//如果ADD为0则证明变亮键按下

} Brightne++;if(Brightne > 254){ }

//亮度值加1

//如果亮度值大于最大值时 //则保持最大值状态 if(ONOFF == 0){ Delay1mS(20);

} if(ONOFF == 0){ MARK = 0;

}

//将标志位变成关灯状态

while(ONOFF == 0);

Brightne = 254;

} /**************************************************************************** 变暗判断:

/****************************************************************************/ void dec(void){

if(DEC == 0){

} Brightne--;if(Brightne

//

} /**************************************************************************** 初始化: /****************************************************************************/ void init(void){ LED

} ONOFF ADD DEC Brightne MARK =

1;

//

//灯泡和按键初始状态设置

= 1;= 1;= 1;= 130;= 0;

//初始化亮度值

//状态切换标志位

/**************************************************************************** 主循环体:

/****************************************************************************/ void main(void){

// 主函数 实现程序流程

init();

//调用初始化程序

while(1){

if(MARK == 0){

}

} open();

} if(MARK == 1){

} drive();close();add();dec();

//状态标志为关灯状态时 //等待开关键按下(开灯)//状态标志为开灯状态时

//驱动灯泡

//判断开关键按下(关灯)

//判断变亮键按下 //判断变暗键按下

《调光台灯程序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
调光台灯程序
点击下载文档
相关专题 调光台灯电路 调光 台灯 程序 调光台灯电路 调光 台灯 程序
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文