답변 : 답변 : 답변 : ATmega128_V20.h 헤더파일 관련하여...
페이지 정보
작성자 master 작성일18-12-06 16:39 조회9,355회 댓글2건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-06 오후 10:54:13
// by Ok-Hyun Park
//
#define F_CPU 16000000UL // 16 MHz
#include <avr/io.h>
#include <stdio.h>
#include <avr/interrupt.h>
#include <util/delay.h>
//
char str[30];
//--------------------------------------------------------------------
#define LCD_DB_PORT PORTA // LCD_DATABUS
#define LCD_DB_DDR DDRA
#define LCD_CMD_PORT PORTC // LCD_COMMAND
#define LCD_CMD_DDR DDRC
//
void LCD_cmd(char c){
LCD_DB_PORT=c; LCD_CMD_PORT=1; _delay_us(1); LCD_CMD_PORT=0; _delay_ms(3);
}
//
void LCD_data(char d){
LCD_DB_PORT=d; LCD_CMD_PORT=3; _delay_us(1); LCD_CMD_PORT=2; _delay_us(50);
}
//
void LCD_str(char *s){ while(*s)LCD_data(*s++); }
//
void LCD_init(void){
_delay_ms(50);
LCD_cmd(0x38); // Function set(data length-8bit,2행,5x8dote)
LCD_cmd(0x0C); // Display on/off control(화면출력 ON,커서표시&커서깜빡임 OFF)
LCD_cmd(0x06); // Entry mode set(커서 오른쪽 이동,화면이동 OFF)
LCD_cmd(0x01); // Clear display
}
//--------------------------------------------------------------------
ISR(TIMER0_OVF_vect){ // 9.984ms
static int ms10=0; static char key=0;
//
TCNT0=100;
//
if((PINB&1)==0)key=1; // PB0(key1)
//
if(key){ // key=1이 되면
PORTB|=0x20; // led켜짐
if(++ms10==500){ ms10=0; PORTB&=0x0F; key=0; } // 5000ms뒤 리셋, LED OFF
}
}
//
int main(){
int i=0; //,a=0,b=0,j=0,k=0,adresult[2];
//DDRB=0xF0; // LED(PB4~PB7) // KEY(PB0)
//DDRG=0x08; // 부저
_delay_ms(50);
LCD_init();
TCNT0=100; TCCR0=7; TIMSK=1; // 9.984ms
ADCSRA=0xE7;
SREG=0x80;
while(1){
ADMUX=0x46; _delay_ms(1); i=ADC; // PF6
LCD_cmd(0x80);
if(i<500){ PORTB&=~0x10; sprintf(str,"Detecting %4d",i); } // 가변저항
else { PORTB|=0x10; sprintf(str,"alarming %4d",i);
PORTG|=8; _delay_ms(50); PORTG&=~8; // alarm 부저
}
LCD_str(str);
//
ADMUX=0x47; _delay_ms(1); i=ADC; // PF7
LCD_cmd(0xc0);
if(i<600){ PORTB&=~0x40; sprintf(str,"Dark %4d",i); }
else { PORTB|=0x40; sprintf(str,"Light %4d",i); }
LCD_str(str);
//
_delay_ms(50);
}
}
LCD 동작 확인하고
스위치와 부저 LED 등은 어려운 것이 아니니 직접 만들어보세요
댓글 : 2
조회수 : 9,355
답이없넹님의 댓글
답이없넹 작성일네 LED도 있긴 한데 주신 소스에서 ERROR가 뜨네요 ...
master님의 댓글
master
컴파일 오류 수정했습니다.