BASIC4MCU | 질문게시판 | 마이크로칩 스튜디오 코드 해석
페이지 정보
작성자 최선을다하자 작성일2022-05-27 00:08 조회382회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=20198
본문
고수님들의 도움이 간절히 필요합니다#include <avr/io.h>#define F_CPU 16000000UL#include <util/delay.h>#include <stdio.h>//#define lcd_Out PORTC#define lcd_E {_delay_us(1);lcd_Out&=~4;_delay_us(1);}//char str1[]= " basic4mcu.com ";char str2[]= " CLCD test ";//void LCD_CMD(char c){ lcd_Out=(c&0xF0)|4; lcd_E; lcd_Out=(c<<4)|4; lcd_E; _delay_ms(3); }void LCD_DAT(char d){ lcd_Out=(d&0xF0)|5; lcd_E; lcd_Out=(d<<4)|5; lcd_E; _delay_us(50); }void lcd_puts(char *s){ while(*s)LCD_DAT(*s++); }void lcd_gotoxy(char x, char y){if (y==0)LCD_CMD(0x80+x);else if(y==1)LCD_CMD(0xC0+x);else if(y==2)LCD_CMD(0x94+x);else if(y==3)LCD_CMD(0xD4+x);}void lcd_init(void){DDRC=0xFF; _delay_ms(30);LCD_CMD(0x28); LCD_CMD(0x28); LCD_CMD(0x28);LCD_CMD(0x0C); LCD_CMD(0x06); LCD_CMD(0x01);}//int main(void){char buf[30];int i,k=1234;lcd_init();while(1){lcd_gotoxy(0,0); lcd_puts(str1);lcd_gotoxy(0,1); lcd_puts(" basic4mcu.com ");_delay_ms(1000);for(i=0;i<16;i++)buf[i]=str2[i]; lcd_gotoxy(0,0); lcd_puts(buf);sprintf(buf,"test %05d",k); lcd_gotoxy(0,1); lcd_puts(buf);_delay_ms(1000);}}
CLCD를 처음 공부하는 초보자 입니다위의 코드를 꼭 이해해보고 싶습니다1.#define lcd_Out PORTC#define lcd_E {_delay_us(1);lcd_Out&=~4;_delay_us(1);} 이 부분에서 PORTC 를 받아서 ~4와 &연산을 하게 되면 어떻게 되나요 ?2.void LCD_CMD(char c){ lcd_Out=(c&0xF0)|4; lcd_E; lcd_Out=(c<<4)|4; lcd_E; _delay_ms(3); }void LCD_DAT(char d){ lcd_Out=(d&0xF0)|5; lcd_E; lcd_Out=(d<<4)|5; lcd_E; _delay_us(50); }void lcd_puts(char *s){ while(*s)LCD_DAT(*s++); }void lcd_gotoxy(char x, char y){if (y==0)LCD_CMD(0x80+x);else if(y==1)LCD_CMD(0xC0+x);else if(y==2)LCD_CMD(0x94+x);else if(y==3)LCD_CMD(0xD4+x);}이 부분은 전혀 이해가 안되는데 설명 부탁드립니다 ㅜㅜ
3.
int main(void){char buf[30];int i,k=1234;lcd_init();while(1){lcd_gotoxy(0,0); lcd_puts(str1);lcd_gotoxy(0,1); lcd_puts(" basic4mcu.com ");_delay_ms(1000);for(i=0;i<16;i++)buf[i]=str2[i]; lcd_gotoxy(0,0); lcd_puts(buf);sprintf(buf,"test %05d",k); lcd_gotoxy(0,1); lcd_puts(buf);_delay_ms(1000);}이 부분에서1) char buf[30];은 왜 쓰는 건지2) int i =1234; 이 코드가 왜 필요한건지 모르겠습니다
댓글 0
조회수 382등록된 댓글이 없습니다.