Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

pic16f887 as counter

Status
Not open for further replies.

Chirag R. Patel

Newbie level 3
Joined
Apr 9, 2014
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
18
hello everyone
i want to make the programme on pic16f887.
i want to press RA4 pin 5 times and at fifth time RD0 should be on.
how to do that i tried too much but i couldnt do that
olz hepl me
thanks

#include <htc.h>
#define _XTAL_FREQ 4000000
void main()
{
ANSEL = 0;
ANSELH = 0;
PORTA=0;
TRISA = 1;
TMR0 = 0;
GIE = 0;
PEIE = 0;
T0IE = 0;
T0IF = 0;
T0CS = 1;
T0SE = 0;
PSA= 0;
PS0 = 0;
PS1 = 0;
PS2 = 0;

while(1)
{
}
static void interrupt isr();
{

if (T0IF==1)
GIE=0;
//if(TMR0==5) {
RD0=1;
//{
//RD0 = 1;
//}

}
}
 

Try this.


Code C - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <htc.h>
 
#define _XTAL_FREQ 4000000 
 
#define LED PORTDbits.RD0
 
 
unsigned char counter = 0;
 
void main() {
 
    ANSEL = 0x00;
    ANSELH = 0x00;
 
    TRISA = 0x10;
    PORTA = 0x00;
    
    TRISB = 0x00;
    PORTB = 0x00;
 
    TRISC = 0x80;
    PORTC = 0x00;
    
    TRISD = 0x00;
    PORTD = 0x00;   
 
    while(1) {
        
        if((PORTA & 0x10) && (counter < 5)) {
            _delay_ms(50);
            while((PORTA & 0x10) && (counter < 5));
            ++counter;
        }
 
        if(counter == 5) {
            LED = 1;
            counter = 0;
        }
 
    }
}

 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top