Gyenes Károly

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 ---
 

Mikroszámítógépek a járműtechnikában

Tartalomjegyzék


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

Kivonat
fullscreenclose
printsave