Техника микропроцессорных систем в коммутации. Проектирование микропроцессорных систем на базе микроконтроллеров AVR фирмы Atmel. Горохин В.Н. - 33 стр.

UptoLike

Составители: 

65
rjmp UART_RXC
UART_RXC:
in tmp, UDR
mov X, tmp
rcall MAIN
reti
INIT:
ldi tmp, high(RAMEND) ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɩɚɦɹɬɢ ɫɬɟɤɚ
out SPH, tmp
ldi tmp, low(RAMEND)
out SPL, tmp ; ɡɚɜɟɪɲɟɧɢɟ ɢɧɢɰɢɚɥɢɡɚɰɢɢ ɩɚɦɹɬɢ ɫɬɟɤɚ
ldi tmp, 0x0C
out UBRR, tmp ; ɭɫɬɚɧɨɜɤɚ ɫɤɨɪɨɫɬɢ UART 4800 ɛɨɞ
ldi tmp, 0x98
out UCR, tmp ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ UART (ɡɚɩɪɟɬ ɩɪɟɪɵɜɚɧɢɣ ɩɨ ɨɤɨɧ-
ɱɚɧɢɸ ɩɟɪɟɞɚɱɢ ɢ ɩɨ ɩɭɫɬɨɦɭ ɡɧɚɱɟɧɢɸ ɪɟɝɢɫɬɪɚ UDR)
sei ; ɝɥɨɛɚɥɶɧɨɟ ɜɤɥɸɱɟɧɢɟ ɩɪɟɪɵɜɚɧɢɣ
LOOP:
nop
nop
rjmp LOOP
MAIN:
ldi tmp, 1
add X, tmp
out UDR, X
ret
Ɏɚɣɥ mp1.asm
; ******************************************************
.include "m16def.inc"
.def tmp = r16
.def X = r17
.cseg
.org 0
rjmp INIT
.org URXCaddr
rjmp UART_RXC
UART_RXC:
in tmp, UDR
mov X, tmp
rcall MAIN
reti
INIT:
ldi tmp, high(RAMEND) ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɩɚɦɹɬɢ ɫɬɟɤɚ
out SPH, tmp
66
ldi tmp, low(RAMEND)
out SPL, tmp ; ɡɚɜɟɪɲɟɧɢɟ ɢɧɢɰɢɚɥɢɡɚɰɢɢ ɩɚɦɹɬɢ ɫɬɟɤɚ
ldi tmp, 0x0C
out UBRR, tmp ; ɭɫɬɚɧɨɜɤɚ ɫɤɨɪɨɫɬɢ UART 4800 ɛɨɞ
ldi tmp, 0x98
out UCR, tmp ; ɢɧɢɰɢɚɥɢɡɚɰɢɹ UART
sei ; ɝɥɨɛɚɥɶɧɨɟ ɜɤɥɸɱɟɧɢɟ ɩɪɟɪɵɜɚɧɢɣ
LOOP:
nop
nop
rjmp LOOP
MAIN:
subi X, 1
;subi X, 0x30
out UDR, X
ret
ɉɨɪɹɞɨɤ ɜɵɩɨɥɧɟɧɢɹ ɥɚɛɨɪɚɬɨɪɧɨɣ ɪɚɛɨɬɵ
ɇɟɨɛɯɨɞɢɦɨ ɜɵɩɨɥɧɢɬɶ ɜɫɟ ɧɟɨɛɯɨɞɢɦɵɟ ɨɩɟɪɚɰɢɢ ɫ ɩɪɨɟɤɬɚɦɢ mp.prj ɢ
mp1.prj ɢ ɩɪɨɝɪɚɦɦɚɦɢ mp.asm ɢ mp1.asm ɜɫɪɟɞɟ VMLab ɤɚɤ ɢ ɜ ɥɚɛɨɪɚɬɨɪɧɵɯ
ɪɚɛɨɬɚɯ ʋ 1, 2, 3, 4.
ɋɨɞɟɪɠɚɧɢɟ ɨɬɱɟɬɚ
Ɉɬɱɟɬ ɩɨ ɩɪɨɞɟɥɚɧɧɨɣ ɥɚɛɨɪɚɬɨɪɧɨɣ ɪɚɛɨɬɟ ɞɨɥɠɟɧ ɫɨɞɟɪɠɚɬɶ:
ɫɬɪɭɤɬɭɪɧɭɸ ɫɯɟɦɭ ɚɥɝɨɪɢɬɦɚ ɩɪɨɝɪɚɦɦɵ ɧɚ ɥɚɛɨɪɚɬɨɪɧɭɸ ɪɚɛɨɬɭ;
ɫɯɟɦɭ ɷɥɟɤɬɪɢɱɟɫɤɭɸ ɩɪɢɧɰɢɩɢɚɥɶɧɭɸ ɪɚɡɪɚɛɨɬɚɧɧɨɝɨ ɭɫɬɪɨɣɫɬɜɚ;
ɬɟɤɫɬ ɩɪɨɝɪɚɦɦɵ ɧɚ ɹɡɵɤɟ AVR Ⱥɫɫɟɦɛɥɟɪɟ (ɪɚɫɩɟɱɚɬɤɚ ɮɚɣɥɚ *asm);
ɪɚɫɩɟɱɚɬɤɚ ɮɚɣɥɚ ɩɪɨɟɤɬɚ (*.prj);
ɪɟɡɭɥɶɬɚɬɵ ɦɨɞɟɥɢɪɨɜɚɧɢɹ (ɨɤɧɨ VMLab ɫ ɡɚɩɭɳɟɧɧɨɣ ɩɪɨɝɪɚɦɦɨɣ ɢ
ɪɟɡɭɥɶɬɚɬɚɦɢ ɜɵɱɢɫɥɟɧɢɣ).
Ʉɨɧɬɪɨɥɶɧɵɟ ɜɨɩɪɨɫɵ
1. ɋɢɦɩɥɟɤɫɧɵɣ ɨɛɦɟɧ ɞɚɧɧɵɦɢ ɫ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɦ ATmega16.
2. ɉɨɥɭɞɭɩɥɟɤɫɧɵɣ ɨɛɦɟɧ ɞɚɧɧɵɦɢ ɫ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɦ ATmega16.
3. Ⱦɭɩɥɟɤɫɧɵɣ ɨɛɦɟɧ ɞɚɧɧɵɦɢ ɫ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɨɦ ATmega16.
4. Ⱥɧɚɥɨɝɨ-ɰɢɮɪɨɜɨɣ ɩɪɟɨɛɪɚɡɨɜɚɬɟɥɶ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɝɨ ɩɪɢɛɥɢɠɟɧɢɹ
ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
5. ɍɩɪɚɜɥɟɧɢɟ ɭɫɬɪɨɣɫɬɜɨɦ ADC ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
6. Ⱥɧɚɥɨɝɨɜɵɣ ɤɨɦɩɚɪɚɬɨɪ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ AVR ATmega16.
7. ɍɩɪɚɜɥɟɧɢɟ AC ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
8. Ɍɚɣɦɟɪɵ-ɫɱɟɬɱɢɤɢ ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.