标题:
单片机程序已经设计了远近光的变换模式。怎么加个按键来切换手动控制和智能控制呢
[打印本页]
作者:
学渣2017
时间:
2019-12-27 12:19
标题:
单片机程序已经设计了远近光的变换模式。怎么加个按键来切换手动控制和智能控制呢
这个是模拟远近光的智能变光,要加一个功能就是使用一个键能切换两种模式,请问要加那些编码
单片机源程序如下:
#include <reg52.h>
#define uint unsigned int //宏定义整型变量
#define uchar unsigned char //宏定义字符型变量
unsigned int flag=0;
unsigned int flah=0;
sbit led1=P2^0; //近光灯 定义led连接端口
sbit led2=P2^1; //远光灯
sbit led3=P2^2;
sbit led4=P2^3;
sbit K1 = P3^0; //按键
sbit K2 = P3^1;
//sbit K3 = P3^2; //按键
//sbit K4 = P3^3;
sbit GM = P1^2;//光敏传感器
void GM_IO();
void delayms(uint); //声明延时函数
void key_sd();
void main()
{
while(1)
{
key_sd();
GM_IO();
}
}
/*------------------------------------------------
自动识别子程序
------------------------------------------------*/
void GM_IO()
{
if(GM==1) //光照强,
{
led1=0;//打开近光灯
led2=1;
}
if(GM==0)
{
led1=1;
led2=0;
}
}
/*------------------------------------------------
手动控制子程序
------------------------------------------------*/
void key_sd()
{
if(K1==0)
{
delayms(20);
if(K1==0)
{
led3=~led3;
}
while(!K1);
}
if(K2==0)
{
delayms(20);
if(K2==0)
{
led4=~led4;
}
while(!K2);
}
}
/*------------------------------------------------
延时函数子程序
------------------------------------------------*/
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //x=多少就延时多少ms
for(j=110;j>0;j--);
}
作者:
166864646883
时间:
2019-12-28 13:02
定义一个标志位,按键按下一次取反一次,然后判断标志位,为0则是近光灯,为1则是远光灯
作者:
克林
时间:
2019-12-29 17:39
定义一个标志位,初始值为0,按下按键时取反,然后在主函数内进行判断,为0时手动控制,为-1时智能控制
作者:
mffhxa
时间:
2019-12-29 22:37
最简单加个开关控制单片机电源就可以了,打开电源:自动,断开电源:手动。
作者:
ghrssb
时间:
2019-12-30 09:36
定义一个标志位,按键按下一次取反一次,然后判断标志位,为0则是近光灯,为1则是远光灯
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1