BASIC4MCU | 질문게시판 | LED 잔상 텍스터.. 질문드리니다!
페이지 정보
작성자 박희범 작성일2018-06-16 13:05 조회28,973회 댓글8건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1910
작성일
작성일
작성일
작성일
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-05-11 오전 1:56:41// by Ok-Hyun Park//#include <mega128.h>#include <delay.h>#include <stdio.h>//#define U16 unsigned int#define U08 unsigned char//char hannam[72]={0x00,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x00,0xFF,0xFF,0x07,0xF3,0xF4,0xF6,0xF6,0xF6,0xF6,0xF4,0xF3,0x07,0xFF,0xFF,0x00,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0xFF,0xFF,0x00,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0xFF,0xFF,0x07,0xF3,0xF4,0xF6,0xF6,0xF6,0xF6,0xF4,0xF3,0x07,0xFF,0xFF,0x00,0xFE,0xFd,0xFB,0xF7,0xF7,0xFB,0xFD,0xFE,0x00,0xFF,0xFF};char elec[130]={0x00,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0xFF,0xFF,0xFF,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0x00,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0xFF,0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0xBD,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0x00,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0x00,0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,0xF6,0x09,0xFF,0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x81,0xFF,0xFF,0xFF,0x00,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7E,0x7E,0x00,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0xBD,0xFF,0xFF,0xFF};char jwl[48]={0xAE,0x56,0x5A,0x5A,0x54,0x54,0x4E,0x5B,0x5B,0xA0,0xFF,0xFF,0xED,0xEA,0xEA,0xEA,0x0A,0xEA,0xEA,0xEa,0xED,0xFF,0xFF,0xFF,0x02,0x4A,0x4A,0x4A,0x4A,0x4A,0x48,0x5F,0x00,0xFB,0xFF,0xFF,0xFF,0xF3,0xE1,0xA0,0x81,0x03,0x81,0xA0,0xE1,0xF3,0xFF,0xFF};char ksl[48]={0x7E,0x7E,0x7E,0x0E,0x7E,0x7E,0x0E,0x7E,0x7E,0x40,0xFF,0xFF,0xEF,0xE7,0xEB,0xED,0x0E,0xED,0xEB,0xE7,0xEF,0xFF,0xFF,0xFF,0x00,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x6F,0x00,0xFF,0xFF,0xFF,0xF3,0xE1,0xA0,0x81,0x03,0x81,0xA0,0xE1,0xF3,0xFF,0xFF};//char font1[][10]={{0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0x81,0xFF,0xFF}, //0{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF}, //1{0xFF,0xFF,0x06,0x76,0x76,0x76,0x76,0x70,0xFF,0xFF},{0xFF,0xFF,0x76,0x76,0x76,0x76,0x76,0x00,0xFF,0xFF},{0xFF,0xFF,0xF0,0xF7,0xF7,0xF7,0xF7,0x00,0xFF,0xFF},{0xFF,0xFF,0x70,0x76,0x76,0x76,0x76,0x06,0xFF,0xFF},{0xFF,0xFF,0x00,0x76,0x76,0x76,0x76,0x06,0xFF,0xFF},{0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0xFF,0xFF},{0xFF,0xFF,0x00,0x76,0x76,0x76,0x76,0x00,0xFF,0xFF}, //8{0xFF,0xFF,0xF0,0xF6,0xF6,0xF6,0xF6,0x00,0xFF,0xFF}, //9{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, //x{0xFF,0xFF,0x03,0xF5,0xF6,0xF6,0xF5,0x03,0xFF,0xFF}, //A{0xFF,0xFF,0X00,0x76,0x76,0x76,0x76,0x89,0xFF,0xFF}, //B{0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0xBD,0xFF,0xFF},{0xFF,0xFF,0x00,0x7E,0x7E,0x7E,0x7E,0x81,0xFF,0xFF},{0xFF,0xFF,0x00,0x76,0x76,0x76,0x76,0x76,0xFF,0xFF},{0xFF,0xFF,0x00,0xF6,0xF6,0xF6,0xF6,0xF6,0xFF,0xFF},{0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0xAE,0x0D,0xFF,0xFF},{0xFF,0xFF,0x00,0xF7,0xF7,0xF7,0xF7,0x00,0xFF,0xFF},{0xFF,0xFF,0x7E,0x7E,0x00,0x7E,0x7E,0xFF,0xFF,0xFF},{0xFF,0xFF,0xBE,0x7E,0x80,0xFE,0xFE,0xFF,0xFF,0xFF},{0xFF,0xFF,0x00,0xE7,0xDB,0xBD,0x7E,0xFF,0xFF,0xFF},{0xFF,0xFF,0x00,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF},{0xFF,0xFF,0x00,0xFD,0xFB,0xFB,0xFD,0x00,0xFF,0xFF},{0xFF,0xFF,0x00,0xFD,0xF3,0xCF,0xBF,0x00,0xFF,0xFF},{0xFF,0xFF,0x81,0x7E,0x7E,0x7E,0x7E,0x81,0xFF,0xFF},{0xFF,0xFF,0x00,0xF6,0xF6,0xF6,0xF6,0xF9,0xFF,0xFF},{0xFF,0xFF,0xC1,0xBE,0xBE,0xAE,0x9E,0x41,0xFF,0xFF},{0xFF,0xFF,0x00,0xF6,0xF6,0xF6,0xF6,0x09,0xFF,0xFF},{0xFF,0xFF,0xB9,0x76,0x76,0x76,0x76,0x8D,0xFF,0xFF},{0xFF,0xFF,0xFE,0xFE,0x00,0xFE,0xFE,0xFF,0xFF,0xFF},{0xFF,0xFF,0x80,0x7F,0x7F,0x7F,0x7F,0x80,0xFF,0xFF},{0xFF,0xFF,0xF8,0xC7,0x3F,0x3F,0xC7,0xF8,0xFF,0xFF},{0xFF,0xFF,0x00,0xBF,0xCF,0xCF,0xBF,0x00,0xFF,0xFF},{0xFF,0xFF,0x3E,0xCD,0xF3,0xF3,0xCD,0x3E,0xFF,0xFF},{0xFF,0xFF,0xFC,0xF3,0x0F,0xF3,0xFC,0xFF,0xFF,0xFF}, //Y{0xFF,0xFF,0x3E,0x5E,0x6E,0x76,0x7A,0x7C,0xFF,0xFF} //Z};//U08 uniPhase[]={0x81,0x85,0x84,0x86,0x82,0x8A,0x88,0x89};//U08 num=10;//void LDelay(U16 Dly,float f){ U16 i; float dd; for(i=0; i<Dly; i++)for(dd=0.;dd<f;dd+=0.2); }//void led_hannam(){ static int i=0,c=0; if(PIND==0xFF)c=1; else PORTA=PORTB=0xFF; if(c){ PORTA=PORTB=hannam[i]; if(++i== 71)i=c=0; } LDelay(1,10.8); } // HANNAM문자 함수void led_elec() { static int i=0,c=0; if(PIND==0xFF)c=1; else PORTA=PORTB=0xFF; if(c){ PORTA=PORTB=elec[i]; if(++i==129)i=c=0; } LDelay(1, 7.8); } // ELECTRONIC문자 함수void led_jwl() { static int i=0,c=0; if(PIND==0xFF)c=1; else PORTA=PORTB=0xFF; if(c){ PORTA=PORTB=jwl[i]; if(++i== 47)i=c=0; } LDelay(1,20.6); } // jwl문자 함수void led_ksl() { static int i=0,c=0; if(PIND==0xFF)c=1; else PORTA=PORTB=0xFF; if(c){ PORTA=PORTB=ksl[i]; if(++i== 47)i=c=0; } LDelay(1,20.6); } // ksl문자 함수//void led(U08 n) { static int i=0,c=0; if(PIND==0xFF)c=1; else PORTA=PORTB=0xFF; if(c){ PORTA=PORTB=font1[n][i]; if(++i==9)i=c=0; } LDelay(1,20.6); }//void LED_USART(){U08 c;if((UCSR0A&0x80)==0x80){c=UDR0;if ((c>='0')&&(c<='9'))num=c&0x0F;else if((c>='A')&&(c<='Z'))num=c-'A'+11;else if(c=='-')num=10;else if(c=='=')num=37;else if(c==';')num=38;else if(c==',')num=39;}}//void count(){if (num<= 9)led(num);else if(num==10)led_hannam();else if(num<=36)led(num);else if(num==37)led_elec();else if(num==38)led_jwl();else if(num==39)led_ksl();}//void SDelay(U16 Dly){ while(Dly--); }//void uni_HA_MtrMove(U08 Direction){static int Phase=0; U08 TroquePhase;TroquePhase=uniPhase[Phase];if(Direction){ PORTB=TroquePhase; if(++Phase>8)Phase=0; }TroquePhase&=0xFF;SDelay(800);}//void main(){PORTA=0xFF; DDRA=0xFF;PORTB=0xFF; DDRB=0xFF;PORTD=0xFE; DDRD=0xFE;UBRR0L=8; UCSR0B=0x18;while(1){LED_USART(); count();uni_HA_MtrMove(1);}}변환해주신 소스코드로 저희가 사용중입니다!근데, 한쪽 8개의 LED는 점멸이 잘보여 글씨가 잘보인느데다른 한쪽의 8개의 LED가 점멸이 잘안되서 DC모터로 돌렸을때한쪽 LED의 잔상이 너무 남아서 글씨가 잘 안보입니다.소스코드도 여러번 바까보고, 빵판에 다시 해보기도 수십번을 반복했지만.결과가 자꾸 똑같습니다.. 뭐가 문제일까요 ㅜㅜ?
댓글 8
조회수 28,973master님의 댓글
master 작성일
잘보이는 LED와
잔상 문제인 LED는
소스코드에서 어느 부분일까요?
박희범님의 댓글
박희범
잘보이는 LED는 포트 A와
잘 안보이닌 LED는 포트 B입니다..
master님의 댓글
master 작성일
홀센서(or 리드스위치)는 PD0 하나만 사용하는 것이겠죠?
박희범님의 댓글
박희범
네넨
master님의 댓글
master 작성일
PORTB=TroquePhase;
포트B 하나로 LED와 모터 둘다 연결했군요?
모터 포트를 남는 포트로 바꾸세요
박희범님의 댓글
박희범
저희가, 스텝모터를 안쓰고 DC모터를 사용해서 모터부분의 따로 소스가 필요없게됬습니다.. 그리고 말씀하신대로 해봤는데 그대로 입니다 ㅜㅜ..
다른문제일까요 ?
박희범님의 댓글
박희범 작성일모두 해결 했습니다. 정말 감사합니다!!!!!
master님의 댓글
master
글자 거꾸로 보이는 것도 해결 했나보군요?
(고생은 되겠지만 ) 폰트를 전부 새로 만들어도 됩니다.
프로그램으로 변경 할 수도 있습니다.