Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

FOX11/MC68HC11 program for Digital Clock need more help with displaying the clock

Status
Not open for further replies.

cturbo

Newbie level 2
Joined
Aug 13, 2013
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
47
Working on this below program, but what I need help with is the part of the code the have it displayed on the FOX11/MC68HC11 LCD. What type of algorithm do I need to have the display/show the actual clock? Is it another timer subroutine or is it a display subroutine.. need some instructions or guidance to put me in the right direction to finish my code.



Code ASM - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
org     0       ; start address of data
hr      rmb     1       ; hour counts in bcd
min     rmb     1       ; minutes count bcd
second  rmb     1       ; second count bcd
fsec    rmb     2       ; fraction of second count for rti routine
fcnt    equ     244     ; number of rtii interrupts to make 1 second
*
tmsk2:  equ $24   ;main timer interrupt mask reg 2
tflg2:  equ $25   ;main timer interrupt flag reg 2
*
TEN_MS: equ     2500
STACK:  equ     $8FFF
*
REGBAS: equ $1000
*
JSCI    RMB     3    ;reserve memeory bytes
JSPI    RMB     3    ;reserve memeory bytes
JPAIE    RMB    3    ;reserve memeory bytes
JPAO   RMB      3    ;reserve memeory bytes
JTOF    RMB     3    ;reserve memeory bytes
JTOC5    RMB    3    ;reserve memeory bytes
JTOC4    RMB    3    ;reserve memeory bytes
JTOC3    RMB    3    ;reserve memeory bytes
JTOC2    RMB    3    ;reserve memeory bytes
JTOC1    RMB    3    ;reserve memeory bytes
JTIC3    RMB    3    ;reserve memeory bytes
JTIC2   RMB     3    ;reserve memeory bytes
JTIC1    RMB    3    ;reserve memeory bytes
JRTI    RMB     3    ;reserve memeory bytes
JIRQ    RMB     3    ;reserve memeory bytes
JXIRQ    RMB    3    ;reserve memeory bytes
JSWI   RMB      3    ;reserve memeory bytes
JILLOP    RMB   3    ;reserve memeory bytes
JCOP  RMB       3    ;reserve memeory bytes
JCLM    RMB     3    ;reserve memeory bytes
*
        org     $FF70
lcd_ini:        rmb     3       ; initializes 16x2 LCD module
lcd_line1:      rmb     3       ; displays 16 char on the first line
 
        org     $D000
        jmp     start
*
delay_10ms:
        pshx
        ldx     #TEN_MS         ; 2500 x 8 = 20,000 cycles = 10ms
del1:   dex                     ; 3 cycles
        nop                     ; 2 cycle
        bne     del1            ; 3 cycles
        pulx
        rts
*
start:  lds     #STACK
        jsr     delay_10ms      ; delay 20ms during power up
        jsr     delay_10ms
 
        jsr     lcd_ini         ; initialize LCD
 
back:   ldx     #MSG1           ; MSG1 for line1, x points to MSG1
        jsr     lcd_line1
        swi                     ; go back to BUFFALO monitor
*
        org     $180
*
 
pactl:  equ $26
REGBLK: equ $1000
 
        lds     #STACK         ;load stack pointer
        ldx     #REGBLK         ;load index reg x
 
        ldaa pactl,x        ;load adda
        anda    #$FC    ;set bits(RTR1, RTR0) pf PACTLstaa PACTL
        staa pactl,x          ;store pactl, x acca
 
        BSET tmsk2,X $40       ;set bit
 
        cli                    ;clear interrup mask
*
*subroutine intitrtii
* RAM variables
*       HR = hour count
*       MIN = minute count
*       SEC = second count
*calling registers
*       IX = register block address
 
initrtii
        bset    tmsk2,x $40     ; set rtii flag
 
        cli
        clr     fsec            ; initialize fsec
        clr     fsec+1
        rts                     ; return
 
*service routine rrtii
*handles real time interrupt
*uses 16 bit software counter FSEC to count fractions
*of seconds. Update RAM variables second, minutes and
*hours as BCD  values fpr use by any other routine.
 
rrtii
        ldx     #regbas          ;  base address of I/O reg block
        ldaa    #$40             ; clear rtif
        staa    tflg2,x
        ldy     fsec            ; count # of rtii
        iny                     ; occurrences
        sty     fsec
        cpy     #fcnt           ; add 1 to sec if
        beq     seconds         ;enough occurred
 
seconds
 
        clr     fsec            ;reset fraction sec count
        clr     fsec+1          ;to zero
        ldaa    second
        adda    #1              ; add 1 to second count
        daa                     ;adjust for decimal arithmetic
        cmpa    #$60            ;check for seconds = = 60
        beq     minutes         ; adjust minutes if = = 60
        staa    second
        rti
 
minutes
        clr     second          ;reset  sec to zero
        ldaa    min
        adda    #1              ; add 1 to minute count
        daa                     ;adjust for decimal arithmetic
        cmpa    #$60            ;check for minutes = = 60
        beq     hours           ; adjust hours if = = 60
        staa    min
        rti
hours
        clr     min             ;reset  min to zero
        ldaa    hr
        adda    #1              ; add 1 to hour count
        daa                     ;adjust for decimal arithmetic
        staa    hr
        cmpa    #$24            ;check for minutes = = 24
        bne     return          ; reset to 0 if = = 24
 
return
        rti
 
MSG1:   FCC     "00:00:00"

 
Last edited by a moderator:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top