Mikroszámítógépek a járműtechnikában
3. sz. melléklet
A program 1 sec idővel villogtatja LED1 lámpát; CTC0 --> 10 ms | |||
; Dr K. Gyenes 2015/05/07 | |||
.module asm1 | |||
.optsdcc -mmcs51 --model-small | |||
;-------------------------------------------------------- | |||
; special function registers | |||
;-------------------------------------------------------- | |||
.area RSEG (DATA) | |||
WDTCN | = 0xFF | ; Watch Dog Timer | |
P5 | = 0x85 | ; P5 Port | |
P74OUT | = 0xB5 | ; P4...P7 Control | |
CKCON | = 0x8E | ||
OSCXCN | = 0xB1 | ||
OSCICN | = 0xB2 | ||
TMOD | = 0x89 | ||
TH0 | = 0x8C | ||
TL0 | = 0x8A | ||
SYSCLK | = 22118400 | ; External crystal oscillator frequency | |
THREL | = 0xB8 | ; Reload value for timer_0 10 ms | |
TLREL | = 0x00 | ||
.area BIT (DATA) |
|||
EA | = 0xAF | ; EA at IE (0xA8) reg Bit_7 | |
TR0 | = 0x8C | ; TR0 at TCON (0x88) reg Bit_4 | |
ET0 | = 0xA9 | ; ET0 at IE (0xA8) reg Bit_1 | |
EX0 | = 0xA8 | ; EX0 at IE (0xA8) reg Bit_0 | |
.area CSEG (CODE) |
|||
.area HOME (CODE) |
|||
ajmp | start | ; Átugorja az IT vektor mezőt | |
.area CODE (ABS) |
|||
.org | 0x0B | ; Timer0 IT vector | |
acall | ctc0_it | ; CTC IT service | |
reti | |||
.area CODE (ABS) |
|||
.org | 0x30 | ||
start: | ; Main program | ||
acall | clock_init | ||
acall | port_init | ||
acall | ctc_init | ||
mov | r2,#0 | ; r2 as counter | |
setb | EA | ||
loop: | sjmp loop | ; Endless loop | |
; | --- ROUTINES --- | ||
clock_init: | |||
mov | OSCXCN,#0x67 | ; Ext. Osc. (christ. no divide by 2 stage) f > 6 MHz | |
mov | r0,#100 | ; cnt = 100; | |
del: | djnz r0,del | ; while (cnt--); | |
wosc: | |||
mov | a,OSCXCN | ||
anl | a,#0x80 | ; test bit_7 (until 0 not ready) | |
jz | wosc | ; while ((OSCXCN & 0x80) != 0x80); | |
mov | a,OSCICN | ||
orl | a,#0x08 | ||
mov | OSCICN,a | ;OSCICN |= 0x08; | |
ret | |||
port_init: | |||
mov | WDTCN,#0xDE | ; Disable WD | |
mov | WDTCN,#0xAD | ||
mov | P74OUT,#0x08 | ; P74OUT = 0x08 P5 Init | |
mov | P5,#0x0F | ; All LEDs dark | |
ret | |||
ctc_init: | |||
mov | CKCON,#0x00 | ; Timer 0 clock (Bit_3) = osc/12 | |
mov | TMOD,#0x11 | ; Timer 0 & Timer 1 set as timer mode 1 | |
mov | TH0,#THREL | ; TH0 = THREL | |
mov | TL0,#TLREL | ; TL0 = TLREL | |
setb | ET0 | ; Enable Timer_0 IT | |
setb | TR0 | ; Start Timer_0 | |
ret | |||
ctc0_it: | |||
mov | TH0,#THREL | ; Occurs at every 10 ms | |
mov | TL0,#TLREL | ||
inc | r2 | ; cnt++; | |
mov | a,r2 | ||
clr | c | ||
subb | a,#100 | ; 1 sec ms | |
jc | fin | ; cnt < 100 | |
mov | r2,#0 | ; cnt = 100 | |
mov | a,P5 | ||
xrl | a, #0x10 | ||
mov | P5,a | ||
fin: | ret | ||
; | --- E N D O F M O D U L E --- |
Tartalomjegyzék
- Mikroszámítógépek a járműtechnikában
- Impresszum
- Köszönetnyilvánítás
- 1. Ajánlás
- 2. Bevezetés
- 3. A számítástechnika fejlődése (történeti áttekintés)
- 4. Mikroszámítógép-generációk
- 5. Integrált áramkör előállítása
- 6. Aritmetikai műveletek a mikroszámítógépekben
- 7. Az analóg jelek átalakítása
- 8. Kommunikáció a mikroszámítógéppel
- 9. A mikroszámítógép hardverfelépítése
- 10. Az utasítások felépítése
- 11. Megszakítások
- 12. A programfejlesztő környezet
- 13. A mikroszámítógépek programozása
- 14. Az assembler program készítése
- 15. C program készítése
- 16. Az Arduino mikrogép
- 17. Mellékletek
- 1. sz. melléklet • Az ütemjel-generáló assembler program forráskódja
- 2. sz. melléklet • A program G1 gomb ismételt lenyomására ki-be kapcsolja a LED1 lámpát
- 3. sz. melléklet • A program 1 sec idővel villogtatja LED1 lámpát
- 4. sz. melléklet • Megszakítás kiváltása
- 5. sz. melléklet • A/D konverzió
- 6. sz. melléklet • Timer0 villogtatja a négy LED-lámpát
- 7. sz. melléklet • A program a processzor hőmérsékletét méri és a virtuális LCD-re írja
- 8. sz. melléklet • A programbillentyű kezelést valósít meg
- 9. sz. melléklet • Az UART programozása
- 10. sz. melléklet • D/A konverter virtuális oszcilloszkópra
- 11. sz. melléklet • PWM jel generálása
- 12. sz. melléklet • Switch konvertálása decimális formába
- 13. sz. melléklet • Az Arduino szintaktikája
- 14. sz. melléklet • Az Arduino beépített függvényei
- 1. sz. melléklet • Az ütemjel-generáló assembler program forráskódja
- 18. Példatár
- 19. Irodalom
Kiadó: Akadémiai Kiadó
Online megjelenés éve: 2021
ISBN: 978 963 454 711 2
A kötet elsősorban a BME Közlekedésmérnöki Kar mesterszakos hallgatói számára készült az azonos nevű tárgy segédleteként, de hasznos lehet a logisztika, elektrotechnika és számítástechnika témái iránt érdeklődő hallgatók számára is. A szerző azoknak a mechatronika, elektronika és számítástechnika iránt elkötelezett hallgatóknak ajánlja, akik TDK-munkát készítenek, de hasznos lehet a diplomamunkát írók és az államvizsgára felkészülők számára is.
Hivatkozás: https://mersz.hu/gyenes-mechatronika-es-mikroszamitogepek//
BibTeXEndNoteMendeleyZotero