Files
rco_altera_fpga_iv/docs/소형마이컴/1.마이컴제작.md
T
2026-09-02 23:51:32 +09:00

93 lines
1.5 KiB
Markdown

# 마이컴 제작
간단한 마이컴을 제작하기 위해서 필요한 구성요소들에 대한 설명을 한다.
## 어셈블리 언어
마이컴을 실제적으로 구동하기 위한 기계어 위의 언어로써, 사람이 알아볼수 있고 프로그램을 작성할수 있은 프로그래밍 언어이다.
ASM을 기본으로 마이컴을 동작하도록 한다.
```asm
LOAD 10 ; R0 = 5
LOOP:
LED_ON ; LED 켜기
DELAY 1000 ; 대기
LED_OFF ; LED 끄기
DELAY 1000 ; 대기
DEC ; R0 = R0 - 1
JNZ LOOP ; R0 != 0이면 LOOP로 이동
JZ END_ON ; R0 == 0이면 END_ON으로 이동
END_ON:
LED_ON ; LED 켠 상태 유지
JMP END_ON ; 무한 반복
```
## CPU 구성
CPU 내부의 구성은 다음과 같다. 주요 CPU블록 기능중 현재 필요한 기능은 아래와 같다.
* PC
* ROM
* Decoder
* GPIO
* Delay Counter
* R0
## 명령어
프로그램을 구동하기 위한 ASM 프래그램 명령어 SET를 구성한다.
```
0x1 LOAD n <br>
0x2 INC <br>
0x3 DEC<br>
0x4 JMP addr<br>
0x5 JZ addr<br>
0x6 JNZ addr<br>
0x7 LED_ON<br>
0x8 LED_OFF<br>
0x9 DELAY n<br>
```
## 컴파일러
직접 지정한 어셉블리 언어로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램
```bash
python asmtohex.py led.asm
```
## 프로그램 다운로드
시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다.
```
python hexsend.py led.hex
```
---