답변 : 지식인 이후 추가 질문 글 있어서 올립니다.
페이지 정보
작성자 master 작성일18-12-12 16:51 조회4,817회 댓글2건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-12 오후 4:56:25
// by Ok-Hyun Park
//
#include <mega128.h>
#include <delay.h>
//-------------------------------------------------------
#define FUNCSET 0x28
#define ENTMODE 0x06
#define ALLCLR 0x01
#define DISPON 0x0C
#define LINE1 0x80
#define LINE2 0xC0
//
#define LCD_RS PORTD.0
#define LCD_WR PORTD.1
#define LCD_E PORTD.2
//
typedef unsigned char u_char;
//
flash u_char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//
int temp=0;
//
void AD_disp(int val){
int ival; u_char i,N100,N10,N1;
ival=(int)((float)val*5000.0/1024.0+0.5);
N100=ival/100; N10=ival/10%10; N1=ival%10;
for(i=0;i<33;i++){
PORTD=(seg[N1 ]<<4)|(PORTD&0x0f); PORTB=(seg[N1 ]&0x70)|(PORTB&0x0f); PORTG=8; delay_ms(1);
PORTD=(seg[N10 ]<<4)|(PORTD&0x0f); PORTB=(seg[N10 ]&0x70)|(PORTB&0x0f)|0x80; PORTG=4; delay_ms(1);
PORTD=(seg[N100]<<4)|(PORTD&0x0f); PORTB=(seg[N100]&0x70)|(PORTB&0x0f); PORTG=2; delay_ms(1);
}
PORTG=0;
}
//-------------------------------------------------------
void LCD_CMD(char c){
PORTD=c&0xf0; LCD_RS=0; LCD_WR=0; LCD_E=1; delay_us(1); LCD_E=0;
PORTD=c<<0x4; LCD_RS=0; LCD_WR=0; LCD_E=1; delay_us(1); LCD_E=0; delay_ms(5);
}
//
void LCD_CHAR(char c){
PORTD=c&0xf0; LCD_RS=1; LCD_WR=0; LCD_E=1; delay_us(1); LCD_E=0;
PORTD=c<<0x4; LCD_RS=1; LCD_WR=0; LCD_E=1; delay_us(1); LCD_E=0; delay_us(40);
}
//
void LCD_CLR(){ LCD_CMD(ALLCLR); }
void LCD_STR(char*s){ while(*s)LCD_CHAR(*s++); }
void LCD_STRf(char flash*s){ while(*s)LCD_CHAR(*s++); }
void LCD_INIT(void){
DDRD=0xFF; delay_ms(50);
LCD_CMD(0x20); LCD_CMD(0x20); LCD_CMD(FUNCSET);
LCD_CMD(DISPON); LCD_CMD(ALLCLR); LCD_CMD(ENTMODE);
}
//-------------------------------------------------------
void main(void){
DDRB=0xF0; DDRD=0xF0; DDRG=0x0F;
LCD_INIT();
LCD_CMD(LINE1); LCD_STRf("Hello!!world");
ADMUX=0x07; ADCSRA=0xE7;
while(1){
temp=ADCW;
AD_disp(temp);
if(temp>40){ LCD_CMD(LINE2); LCD_STRf("warning"); }
}
}
댓글 : 2
조회수 : 4,817
qwezxc님의 댓글
qwezxc 작성일위에 코드를 이용했는데 undefined symbol 'buf'라고 뜹네요 혹시 atmega128 종류가 KUT-128_COM이 맞나요??
master님의 댓글
master
수정했으니 다시 돌려보세요