일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cf80/2.8
- Kodak 5222
- Kentmere 400
- Minolta TC-1
- Kodak T-Max 100
- SONY A7
- N80/4
- kodak t-max 400
- Leica M7
- Nikon 28Ti
- M-Rokkor 40/2
- Contax G2
- cf50/4 fle
- FujiFilm C200
- FujiFilm GFX50s
- cs50/2.5
- G28/2.8
- ZeissIkon ZI
- Kodak Ektar 100
- Rollei35s
- Minolta CLE
- Kodak 400TX
- Hasselblad 500cm
- 2019 유럽여행
- 4870
- Germany
- Mamiya 7
- 2018 미국출장
- GRD2
- fujifilm velvia 50
- Today
- Total
J 창고
[Atmega128] 2bit FND, 74hc595, Atmega128 본문
/*
PORTA.0 = Data DS
PORTA.1 = Latch STCP
PORTA.2 = Shift SHCP
*/
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
void HC595write(unsigned char udata){
unsigned char i;
i = 7;
while(i<=7){
PORTA = (udata >> i) & 0x01;// DATA
PORTA |= 0b00000100; // SHIFT 1
PORTA &= 0b11111011; // SHIFT 0
i--;
}
}
void HC595write_2byte(unsigned int udata){
unsigned char digit[10] = {
0b11111100, //0
0b01100000, //1
0b11011010, //2
0b11110010, //3
0b01100110, //4
0b10110110, //5
0b00111110, //6
0b11100100, //7
0b11111110, //8
0b11100110 //9
};
PORTA &= 0b11111110; // DATA 0
PORTA &= 0b11111011; // SHIFT 0
PORTA &= 0b11111101; // LATCH 0
unsigned char d10 = digit[udata/10];
unsigned char d1 = digit[udata%10];
HC595write(~d10);
HC595write(~d1);
PORTA |= 0b00000010; // LATCH 0
PORTA &= 0b11111101; // LATCH 1
}
int main(void){
DDRA = 0xFF;
unsigned int num_buf = 0;
while(1){
HC595write_2byte(num_buf);
_delay_ms(200);
num_buf++;
if(num_buf>99) num_buf = 0;
}
}