|
新人求助~目的是制作一個(gè)呼吸燈,判斷,1:當(dāng)燈亮的時(shí)候,按下按鍵1s燈滅,當(dāng)燈滅的時(shí)候,按下按鍵1s燈亮。2:通過(guò)光敏電阻采樣光照,讓燈自動(dòng)亮滅,并能通過(guò)按鍵加以控制,即當(dāng)光照暗的時(shí)候,按鍵按1s,燈亮;當(dāng)光照亮的時(shí)候,按鍵檢測(cè)3秒,燈亮。已經(jīng)可以實(shí)現(xiàn)光敏電阻來(lái)控制呼吸燈了,但是不懂得該怎么加入按鍵來(lái)加以控制,大家能幫我看看該怎么在程序中加入按鍵的部分嗎?幫忙修改下程序在程序中加入一個(gè)長(zhǎng)短按鍵來(lái)控制燈的亮滅。我試了好久都沒(méi)能加入按鍵來(lái)控制,請(qǐng)各位大神幫幫忙。謝謝
#include<pic16f1828.h>
#define ADC_NUM 8//轉(zhuǎn)換次數(shù)
#define LED1 LATC5
void LED(unsigned char temp);
void delay1ms(unsigned int x)
{ unsigned int y;
for(;x>0;x--)
{
for(y=0;y<270;y--)
{;}
}
}
void AD_GPIO_init(void)
{
TRISC=0b00001100;
ANSELC=0x04;
PORTC=0x00;
LATC=0x00;
}
void init_fosc(void)
{
OSCCON=0xF0;
}
void init_AD(void)
{
ADCON1=0X90;//右對(duì)齊,8時(shí)鐘,參考電源電壓
ADCON0=0x18;//AN6通道
ADCON0bits.ADON=1;
}
void PWM_INIT()
{
OSCCONbits.IRCF=1110;
TRISCbits.TRISC5=1;
PR2=99;
CCP1CON=0b00001100;
CCPR1L=0b00110010;
CCP1CONbits.DC1B=0b00;
CCPTMRS0=0b11111100;
PIR1bits.TMR2IF=0;
T2CONbits.T2CKPS=0b01;
T2CONbits.TMR2ON=1;
while(PIR1bits.TMR2IF==0);
TRISCbits.TRISC5=0;
}
void LED(unsigned char temp)
{ unsigned int i;
CCPR1L=0;
if(temp)
{
for(i=0;i<100;i++)
{
CCPR1L=i;
delay1ms(60);
}
delay1ms(600);
delay1ms(600);
delay1ms(600);
for(i=100;i>0;i--)
{
CCPR1L=i;
delay1ms(60);
}
CCPR1L=0;
delay1ms(800);
delay1ms(600);
delay1ms(600);
}
}
unsigned int ADC_BAT_ONE(void)
{
unsigned int value;
value=0;
ADCON0bits.CHS=6;
ADCON0bits.ADGO=1;
while(ADCON0bits.GO==1);
value=(unsigned int)ADRESH;
value=value<<8;
value+=ADRESL;
return value;
}
unsigned int ADC_BAT_contiue(void)
{
unsigned int ADV_MCU[ADC_NUM],ADV_CNT,ADV_ALL;
ADV_ALL=0;
for(ADV_CNT=0;ADV_CNT<ADC_NUM;ADV_CNT++)
{
ADV_MCU[ADV_CNT]=ADC_BAT_ONE();
}
for(ADV_CNT=0;ADV_CNT<ADC_NUM;ADV_CNT++)
{
ADV_ALL+=ADV_MCU[ADV_CNT];
}
ADV_ALL=ADV_ALL/ADC_NUM;
return ADV_ALL;
}
void main()
{unsigned char n;
init_fosc();
init_AD();
PWM_INIT();
AD_GPIO_init();
while(1)
{
if(ADC_BAT_contiue()>460)
{delay1ms(1000);
n=1;
}
else
{
delay1ms(1000);
delay1ms(1000);
delay1ms(1000);
n=0;
}
LED(n);
}
}
以上是用光敏電阻實(shí)現(xiàn)的呼吸燈部分的程序,想從RC3端口輸入加一個(gè)按鍵來(lái)控制,試了好久都沒(méi)成功,請(qǐng)大家?guī)蛶兔,看下該怎么修改程序在程序中加入長(zhǎng)短按鍵來(lái)控制。謝謝大家。
|
|