공학속으로/마이컴11 AVR 퓨즈비트 (Fuse bits) 설정 ○ ATmega128의 기본적인 설정용으로 사용되며 Extended Fuse, Fuse High, Fuse Low바이트로 모두 3개의바이트로 구성되어 있다. ※ 주의 할점은 기본 비트값이 1로 되어 있고 프로그램하면 0으로 설정되고 chip erase명령에 의해 영향을 받지 않으므로 메모리 Lock비트의 LB1을 0으로 하여 퓨즈 비트를 변경할 수 없도록 할 수 있다. 퓨즈 비트를 먼저 설정하고 메모리 Lock비트를 설정해야 한다. Extended Fuse Byte ○ ATmega103 compatibility 설정 - BIT1(M103C) : 기본 0으로 설정되어 ATmega13과 호환모드로 되어 있다. 1로 프로그램하면 노말모드로 ATmega128의 고유기능을 전부 활용할 수 있다. ○ WDTON( .. 공학속으로/마이컴 2022. 3. 11. 코드비젼 AVR (Codevision AVR) 자료형 코드비젼 AVR (Codevision AVR) 자료형 변수 종류 변수 크기 표현 범위 bit 1bit 0,1 char 8bit -128~127 unsigned char 8bit 0~255 signed char 8bit -128~127 int 16bit -32768~32767 unsigned int 16bit 0~65535 signed int 16bit -32768~32767 long 32bit -2147483648~2147483647 unsigned long 32bit 0~4294967295 signed long 32bit -2147483648~2147483647 float 32bit -3.402e38~3.402e38 (정확도: ±1.175e-38) double 32bit -3.402e38~3.402e3.. 공학속으로/마이컴 2021. 10. 3. 포트 제어 (LED 켜기/끄기) 방법 마이컴에서 포트을 제어하는 방법은 여러가지가 있지만, 본인이 사용하기 편하고 알아보기 쉬운 방법을 사용하면됩니다. 예전에는 최대한 딜레이가 적게 발생하는 방법을 써왔지만(ex. PORTB|=0x08), 지금은 MPU의 속도가 빠르기 때문에 어떠한 방법을 사용해도 됩니다. 1. 포트 제어 방법(1) : 제가 주로 사용하는 방법으로 PORTA에 속한 3번핀을 ON/OFF하는 코드입니다. ※ 물론 사용하는 마이컴의 해더파일에 포트 핀별 정의가 되어 있어야 합니다. ex). ○ 8051 계열에서는 아래 처럼 헤더 파일(reg51.h) 또는 소스에 정의 되어 있어야 합니다. sfr P1 = 0x90; // PORT 1 SFR sbit P1_1 = 0x91; // Port 1.1 SFR bit ○ AVR 계열 sf.. 공학속으로/마이컴 2020. 3. 12. PIC18F4520 EEPROM 메모리 사이즈 설명 FLASH 8k-bytes 프로그램 저장을 위해 사용 RAM 368-bytes 프로그램 실행중 사용되는 메모리 EEPROM 256-bytes 비휘발성 데이타 저장 #include #include "uart.h" #include "eeprom.h" int main() { unsigned char eeprom_address = 0, write_char, read_char; UART_Init(9600); for(write_char='1';write_char 공학속으로/마이컴 2020. 3. 4. PIC18F4520 Timer. ○ PIC 타이머 - PIC18F4520는 3개의 타이머를 가짐. TIMER0 8-bit OPTION_REG TMR0 0.2usec 13.107ms TIMER1 16-bit T1CON TMR1H,TMR1L 0.2usec 104.857ms TIMER2 8-bit T2CON TMR2 0.2usec 819usec 딜레이에 따른 타이머 계산 Delay = TimerCount * tick Count = (Delay/tick) RegValue = TimerMax- Count RegValue = TimerMax-(Delay/tick) = TimerMax - (Delay/((Prescalar *4)/Fosc)) RegValue = TimerMax-((Delay * Fosc)/(Prescalar*4)) TIMER0 8-.. 공학속으로/마이컴 2020. 3. 4. 8051 모든 인터럽트 #include #define LEDs P0 unsigned char receivedChar=0; unsigned char count=0; unsigned char ti_flag=0; void ext_int_0() interrupt 0 { count++; } void ext_int_1() interrupt 2 { count--; } void timer0_isr() interrupt 1 { TH0 = 0X4B; // ReLoad the timer value for 50ms TL0 = 0XFD; if(timerCount >= 20) // count for 1sec delay(50msx20 = 1000ms = 1sec) { timerCount = 0; LEDs =!LEDs; // Toggle the LEDs .. 공학속으로/마이컴 2020. 3. 4. 외부 인터럽트 #include #define LEDs P0 unsigned char count=0; void ext_int_0 () interrupt 0 { count++; } void ext_int_1 () interrupt 2 { count--; } void main() { P3 |= 0x0c; // Configure the INT0 & INT1 pins as Inputs EX0 = 1; // Enable INT0 EX1 = 1; // Enable INT1 EA = 1; // Enable Global Interrupt bit while(1) { LEDs = count; } } 공학속으로/마이컴 2020. 3. 4. 8051/4051 Timers Program for timer mode0 #include /* Include x51 header file */ sbit test = P1^0;/* set test pin 0 of port1 */ void timer_delay()/* Timer0 delay function */ { TH0 = 0xE3;/* Load 8-bit in TH0 (here Timer0 used) */ TL0 = 0x14;/* Load 5-bit in TL0 */ TR0 = 1;/* Start timer0 */ while(TF0 == 0);/* Wait until timer0 flag set */ TR0 = 0;/* Stop timer0 */ TF0 = 0;/* Clear timer0 flag */ } void main() { T.. 공학속으로/마이컴 2020. 3. 4. 8051/4051 UART Interrupt #include /* Include x51 header file */ void Ext_int_Init() { EA = 1;/* Enable global interrupt */ ES = 1; /* Enable serial interrupt */ } void UART_Init() { TMOD = 0x20;/* Timer 1, 8-bit auto reload mode */ TH1 = 0xFD;/* Load value for 9600 baud rate */ SCON = 0x50;/* Mode 1, reception enable */ TR1 = 1;/* Start timer 1 */ } void Serial_ISR() interrupt 4 { P1 = SBUF;/* Give received data on port.. 공학속으로/마이컴 2020. 3. 3. 8051/4051 UART 8051 UART Serial communication Registers SBUF: Serial Buffer Register SCON: Serial Control Register Bit 7:6 - SM0:SM1: Serial Mode Specifier SM1 SM0 0 0 1/12 of Osc frequency shift register mode fixed baud rate 0 1 8-bit UART with timer 1 determined baud rate 1 0 9-bit UART with 1/32 of Osc fixed baud rate 1 1 9-bit UART with timer 1 determined baud rate /* * 8051_Serial_UART */ #include /* Incl.. 공학속으로/마이컴 2020. 3. 3. 8051 LED Blinking Program Keil 컴파일러 이용 #include /* Include header file */ void delay(k) /* Delay for msec. (here Xtal freq. is 11.0592 MHz) */ { int i,j; for (i=0;i 공학속으로/마이컴 2020. 3. 3. 이전 1 다음 💲 추천 글