'AVR128'에 해당되는 글 4건

  1. 2011.08.03 시리얼통신을 이용한 CLCD문자전송 (4)
  2. 2011.05.22 블루투스(FB155BC) LED 제어 (18)
  3. 2011.05.10 5V로 12V FAN 제어하기 (1)
  4. 2011.05.10 라인트레이서 (JH)
안녕하세요 숭덕이 박제현 입니다. 오늘은 시리얼통신으로 LCD에 문자를 찍어볼텐데요 !!

일단 시리얼 통신을 하려면 FTDI 나 Silabs 사의 칩을 이용하여 하는데 저는 CP2102를 사용해서 하겠습니다.
CP2102같은 경우는 WIN7 일 경우 자동으로 드라이브를 찾아 설치해주니까 너무 좋은거 같네요 FTDI사의 칩도 그렇다는..
하지만 제가 사용하기에는 간단하게 편해서 씁니다!!


자 다음은 AVR 칩이 있어야 겠네요!!!!
RX,TX는 서로 크로스로 연결하셔야 합니다.


 


자 다음은 LCD 음 이제 준비물은 다 끝난거 같네요!!!
이렇게 3가지만 가지고 충분히 작품을 하나 만들겠군요!!!!1!!!

 



 

                     

#include <mega128.h>


#include <delay.h>


#asm


.equ __lcd_port=0x1B ;PORTA


#endasm


#include <lcd.h>


 


char rx[50]={0}, rx_cnt=0;         




interrupt[USART0_RXC]void usart0_rxc(void){


  rx[rx_cnt]=UDR0;


  if(++rx_cnt>=16)rx_cnt=0;


}  


void main(void){                              


    UBRR0H=0; UBRR0L=103; UCSR0B=0x98;


    lcd_init(16);


    #asm("sei")


    while(1){


        delay_ms(1000);


        lcd_gotoxy(0,0); lcd_puts(rx);


    }


} 
                                                                                                                                                          


       

 

Posted by 숭덕이
AVR 8BIT/통신(USART)2011.05.22 04:07

안녕하세요 숭덕이 박제현입니다.

오늘 많이 삽질을 했습니다..

저녁에 와서 요즘 스트레스로 어깨가 많이 결려서 하루종일 침대에 누워있다가 이렇게 하면 안되겠다 싶어

주말에 올리기로 한 블루투스(FB155BC) 글을 올립니다.

현재 새벽 4:03분이네요 

컴파일은 코드비젼이고요 크리스탈은 14.7456 입니다. 이것때문에 많은 고생을 했다는...........

STM32만 매일 하다가 오랜만에 AVR 잡으니까 힘드네요 AVR은 무조건 16Mhz 인줄알았습니다. ^^

그래서 UBRR을 103으로 보레이트 9,600으로 했는데 아무리 해도 안되길래 이걸로 1시간 동안 고민했다는.....^^

소스는 쉽다보니...책에서 레지스터값만 찾아서 공부하시면 쉬울듯 합니다..


 

 SOURCE



#include <mega128.h>
#include <delay.h>

char rx;

interrupt[USART0_RXC]void usart0_rxc(void){
rx=UDR0;

레지스터에 데이터를 쓰면 송신 데이터버퍼 TXBn에 값이 써지고, UDRn 레지스터를 읽으면 데이터 버퍼 RXBn에
들어있는 내용이 읽어진다.

if(rx=='1')PORTC=1,delay_ms(300);
if(rx=='2')PORTC=2,delay_ms(300);
if(rx=='3')PORTC=4,delay_ms(300);
if(rx=='4')PORTC=8,delay_ms(300);
if(rx=='5')PORTC=16,delay_ms(300);
if(rx=='6')PORTC=32,delay_ms(300);
if(rx=='7')PORTC=64,delay_ms(300);
if(rx=='8')PORTC=128,delay_ms(300);

}

void main(void)
{

DDRC=0xff;
UCSR0B=0x98; //RXEN , TXEN Enable
UCSR0C=0x06; //8bit mode
UBRR0H=0;
UBRR0L=95;

 

UBRRL = (F_CPU/(UART_BAUD_RATE*16L)-1; // 보레이트 계산식입니다.

보레이트때문에 고생을 많이 했네요 14.7456Mhz로 계산결과 97이 나왔는데 데이터시트에는
95로 적혀있길래 95로 사용하였고요 또한 에러율은 0% 마음에 드네요 속도면서 크게 문제가
되지는 않을거 같습니다.

#asm("sei")

}


 

결과물



'AVR 8BIT > 통신(USART)' 카테고리의 다른 글

블루투스(FB155BC)를 이용한 CDS센서 값 USART 찍기  (0) 2011.05.24
블루투스(FB155BC) LED 제어  (18) 2011.05.22
ATMEGA USART 이론  (0) 2011.05.20
Posted by 숭덕이

2N2222 트랜지스터 데이터시트


시뮬레이션 한 결과(프로테우스)

 2N2222A - NPN TR 40V/0.8A/0.5W/300MHz
모터는 기본적으로 두배 이상의 전류가 흐를 수 있도록 회로를 설계해야한다.

(TR)
AVR(혹은 8051) 포트를 TR 베이스에 연결 해서 TR을 동작 시킨 다고 하면
베이스 저항은 2K~4.7K 정도를 많이 사용 합니다.(범용 TR 경우)
NPN TR은 포트 출력이 0V이면 동작 안하고 5V일 때에 동작 합니다.
PNP TR은 포트 출력이 5V이면 동작 안하고 0V일 때에 동작 합니다.


 VCEO:
베이스(B)를 오픈했을 때에 컬렉터(C)와 이미터(E)에 걸리는 최대전압.
(단순히 VCE로 표시하는 경우도 있다)

IC:
최대 컬렉터(C) 전류.

PC:
주위온도(Ta)=25℃에서 연속해서 소비시킬 수 있는 최대 컬렉터(C) 손실(방열기 없음)

hFE:
이미터(E) 접지에서의 직류에 대한 전류증폭률(IC÷IB).

fT:
주파수를 높여가면 증폭 능력이 저하하는데, 베이스 전류(IB)와 컬렉터 전류(IC)가 같아지는 주파수.
[직류증폭을 할 수 없게 되는 주파수(트랜지션 주파수)]

 






'AVR 8BIT > 12V 온도 팬제어' 카테고리의 다른 글

완성--(1)  (0) 2011.05.11
LM35DZ 온도센서 특성  (5) 2011.05.10
5V로 12V FAN 제어하기  (1) 2011.05.10
Posted by 숭덕이


 




GNMK | MG_PHOTO | Average | 2010:06:04 19:59:54

GNMK | MG_PHOTO | Average | 2010:06:04 19:59:55

GNMK | MG_PHOTO | Average | 2010:06:04 19:59:56

GNMK | MG_PHOTO | Average | 2010:06:04 19:59:57

GNMK | MG_PHOTO | Average | 2010:06:04 19:59:58

GNMK | MG_PHOTO | Average | 2010:06:04 19:59:59

GNMK | MG_PHOTO | Average | 2010:06:04 20:00:00

GNMK | MG_PHOTO | Average | 2010:06:04 20:00:00

GNMK | MG_PHOTO | Average | 2010:06:04 20:00:01




'AVR 8BIT > 라인트레이서' 카테고리의 다른 글

라인트레이서 (JH)  (0) 2011.05.10
Posted by 숭덕이