BASIC4MCU | 질문게시판 | 답변 : atmega128 LCD 출력
페이지 정보
작성자 master 작성일2018-12-06 09:35 조회7,737회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6427
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-06 오전 9:40:01// by Ok-Hyun Park//#define F_CPU 16000000UL // 16 MHz#include <avr/io.h>#include <avr/interrupt.h>#include <util/delay.h>//#define CTRL PORTA // RS(PA0),RW(PA1),E(PA2)#define DATA PORTE#define CTRL_DDR DDRA#define DATA_DDR DDRE//#define LCD_SET 0x3C#define LCD_CLEAR 0x01#define LCD_RETURNHOME 0x02//void wr_cmd(char c) { DATA=c; CTRL=4; _delay_us(1); CTRL=0; _delay_ms(5); }void wr_data(char c){ DATA=c; CTRL=5; _delay_us(1); CTRL=1; _delay_us(50); }void wr_str(char *s){ while(*s)wr_data(*s++); }void wr_xy(char x,char y){ wr_cmd(0x80+0x40*y+x); }void wr_str_xy(int x,int y,char *s){ wr_xy(x,y); while(*s)wr_data(*s++); }void wr_clear(){ wr_cmd(0x01); }void init_port(void){ CTRL_DDR=0x07; DATA_DDR=0xff; }void init_lcd(void){init_port(); _delay_ms(50); wr_cmd(0x3C); wr_cmd(0x3C);wr_cmd(0x01); wr_cmd(0x02); wr_cmd(0x0F); wr_clear();}//int main(void){char str1[20]={"Class Name: "};char str2[20]={"Microprocessor "};char str3[20]={" "};int i=0,t=0;init_lcd();while(1){if(PING&4){ wr_str_xy(0,1,str3); wr_str_xy(0,0,str1); _delay_ms(1000); }if(PING&8){ wr_str_xy(0,0,str3); wr_str_xy(0,1,str2); _delay_ms(1000); }}}
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-06 오전 9:40:46// by Ok-Hyun Park//#define F_CPU 16000000UL // 16 MHz#include <avr/io.h>#include <avr/interrupt.h>#include <util/delay.h>//#define CTRL PORTA // RS(PA0),RW(PA1),E(PA2)#define DATA PORTE#define CTRL_DDR DDRA#define DATA_DDR DDRE//#define LCD_SET 0x3C#define LCD_CLEAR 0x01#define LCD_RETURNHOME 0x02//void wr_cmd(char c) { DATA=c; CTRL=4; _delay_us(1); CTRL=0; _delay_ms(5); }void wr_data(char c){ DATA=c; CTRL=5; _delay_us(1); CTRL=1; _delay_us(50); }void wr_str(char *s){ while(*s)wr_data(*s++); }void wr_xy(char x,char y){ wr_cmd(0x80+0x40*y+x); }void wr_str_xy(int x,int y,char *s){ wr_xy(x,y); while(*s)wr_data(*s++); }void wr_clear(){ wr_cmd(0x01); }void init_port(void){ CTRL_DDR=0x07; DATA_DDR=0xff; }void init_lcd(void){init_port(); _delay_ms(50); wr_cmd(0x3C); wr_cmd(0x3C);wr_cmd(0x01); wr_cmd(0x02); wr_cmd(0x0F); wr_clear();}//int main(void){char str1[20]={"Class Name: "};char str2[20]={"Microprocessor "};char str3[20]={" "};int i=0,t=0;init_lcd();while(1){if(PING&4){ wr_clear(); wr_str_xy(0,0,str1); _delay_ms(1000); }if(PING&8){ wr_clear(); wr_str_xy(0,1,str2); _delay_ms(1000); }}}
댓글 1
조회수 7,737lalalalla님의 댓글
lalalalla 작성일정말 감사합니다!!