For timing detail of 74HC165 see this post.
In this example, I use PA0 to PA2 to interface with 74HC165.
Schematic diagram |
Atmel Studio 7 source code:
#include <avr/io.h>
/*74HC165 read function*/
volatile char readInput(void){
char reader=0;
/*PINB2 as input*/
DDRA=0x03;
/*Raise LD pin*/
PORTA|=(1<<1);
for (int i=0;i<8;i++)
{
reader<<=1; /*Get a one-bit digital input*/
reader|=((PINA&0x04)?1:0);
/*Clock the register*/
PORTA&=~(1<<0);
for(int i=0;i<200;i++);
PORTA|=(1<<0);
}
/*Low the LD pin*/
PORTA&=~(1<<1);
return reader;
}
int main(void)
{
DDRB=0xFF;
while (1)
{
PORTB=readInput();
}
}
Back to main tutorial page ATMega32 tutorials in C with Atmel Studio 7.
A running program screen shot |
Back to main tutorial page ATMega32 tutorials in C with Atmel Studio 7.
If you want a standard PCB for ATMega32 micro-controller, you can order my AVR Microcontroller project from PCBWay with a reasonable price. Click here to get a free $5 credit for new account.
No comments:
Post a Comment