⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap6.asm

📁 摩托罗拉Mc6811利程
💻 ASM
字号:
; Chapter 6 6811 assembly language programs; Jonathan W. Valvano; This software accompanies the book,; Real Time Embedded Systems published by Brooks Cole;; Program 6.1. Initialization of a periodic interrupt using input capture and an external clock.; MC68HC11A8;external signal to PA0/IC3TIME rmb  2      ;every 1 msInit sei         ;make atomic     ldaa TCTL2  ;Old value     anda #$FC   ;Clear EDG3B=0     oraa #$01   ;EDG3BA =01      staa TCTL2  ;on rise of PA0     ldaa TMSK1  ;Old value     oraa #$01   ;IC3I=1     staa TMSK1  ;Arm IC3F      ldd  #0     std  TIME   ;init global     ldaa #$01   ;clear IC3F      staa TFLG1     cli         ;enable     rts; Program 6.2. Periodic interrupt using input capture and an external clock.; MC68HC11A8IC3Han ldaa TFLG1 ;is XXXXXXX1 [4]                          anda #$01               [2]       bne  ClkHan             [3]       swiClkHan ldaa #$01  ;clear IC3F  [2]       staa TFLG1 ;Acknowledge [4]                                 ldx  TIME               [5]                                            inx                     [3]                                           stx  TIME               [5]                                            rti       org  $FFEA       fdb  IC3Han;  Program 6.4. Initialization for period measurement.; MC68HC11A8;external signal to PA2/IC1Period rmb  2  ;units 500 nsFirst  rmb  2  ;TCNT at first edgeDone   rmb  1  ;set each risingInit sei         ;make atomic     ldaa TCTL2  ;Old value     anda #$CF   ;Clear EDG1B=0     oraa #$10   ;EDG1BA =01      staa TCTL2  ;on rise of PA2     ldd  TCNT     std  First  ;init global     clr  Done     ldaa #$04   ;clear IC1F      staa TFLG1     ldaa TMSK1  ;Old value     oraa #$04   ;IC1I=1     staa TMSK1  ;Arm IC1F      cli         ;enable     rts;  Program 6.5. ISR for period measurement.; MC68HC11A8IC1Han ldaa #$01  ;clear IC3F  [2]       staa TFLG1 ;Acknowledge [4]                                 ldd  TIC1               [5]                                            subd First              [6]                                           std  Period             [5]                                            ldd  TIC1               [5]                                            std  First              [5]                                            ldaa #$FF  ;set flag    [2]       staa Done               [4]                                 rti                    [12]       org  $FFEE       fdb  IC1Han;  Program 6.11. Ritual written in assembly language for the pulse width measurement.; MC68HC11A8; B=PB7,  Q=PA1/IC2 Init   ldx  #$1000 ;I/O registers       ldaa #$00  ;gadfly       staa $22,X ;TMSK1 IC2I=0       rts;  Program 6.12. Assembly language pulse width measurement.; MC68HC11A8; return Reg D as R in KohmRising equ   0     ;First TCNT Meas   ldx  #$1000 ;I/O registers       ldaa #$04   ;Rising edge       staa $21,X  ;Set TCTL2       bclr $23,X,$FD  ;IC2F=0       bclr $04,X,$80  ;PB7=0       bset $04,X,$80  ;PB7=1         First  brclr $23,X,$02,First;Wait for first rising edge       ldy  $12,X  ;TCNT at rising       ldaa #$08   ;Falling edge       staa $21,X  ;Set TCTL2       bclr $23,X,$FD  ;IC2F=0       pshy       ;Save on stackSecond brclr $23,X,$02,Second;Wait for next falling edge       ldd  $12,X ;TCNT at falling       tsy         subd Rising,Y;RegD=pulse width 1000 to 2000 cyc       subd #1000  ;0<=R<=1000Kohm       puly       rts;  Program 6.19. Assembly language ritual for periodic interrupt using output compare.; MC68HC11A8TIME   rmb  2     ;inc every 1msInit   sei        ;make atomic       ldaa TMSK1 ;Old value        oraa #$08  ;TMSK1 OC5I=1       staa TMSK1 ;Arm OC5F       ldd  #0       std  TIME  ;initialize       ldaa #$08  ;clear OC5F       staa TFLG1       ldd  TCNT  ;current time       addd #2000 ;first in 1 ms       std  TOC5        cli        ;enable       rts;  Program 6.20. Assembly language ISR for periodic interrupt using output compare.; MC68HC11A8OC5HAN ldx  TIME               [5]       inx                     [3]       stx  TIME               [5]       ldaa #$08  ;clear OC5F        staa TFLG1 ;Acknowledge        ldd  TOC5                     addd #2000 ;next              std  TOC5                     rti       org  $FFE0       fdb  OC5HAN;  Program 6.22. Ritual for the assembly language implementation of the squarewave using output compare.; MC68HC11A8Period rmb  2    ;units 祍ecInit   sei        ;make atomic       ldaa TMSK1 ;Old value        oraa #$20  ;TMSK1 OC3I=1       staa TMSK1 ;Arm OC3F       ldaa TCTL1       anda #$CF  ;OM3=0       oraa #$10  ;OL3=1       staa TCTL1       ldaa #$20  ;clear OC3F       staa TFLG1       ldd  TCNT  ;current time       addd #2000 ;first in 1 ms       std  TOC3        cli        ;enable       rts;  Program 6.23. Assembly language squarewave using output compare.; MC68HC11A8OC3HAN ldaa #$20  ;clear OC3F [2]        staa TFLG1 ;Ack        [4]       ldd  TOC3              [5]          addd Period ;next      [6]            std  TOC3              [5]       rti                   [12]       org  $FFE4       fdb  OC3HAN;  Program 6.25. Assembly language initialization pulse-width modulated squarewave using output compare.; MC68HC11A8High rmb  2 ;number of cycles highLow  rmb  2 ;number of cycles lowRITUAL sei        ;make atomic       ldaa TMSK1 ;Old value        oraa #$20  ;TMSK1 OC3I=1       staa TMSK1 ;Arm OC3F       ldaa TCTL1       oraa #$30  ;OM3=1, OL3=1       staa TCTL1       ldaa #$20  ;clear OC3F       staa TFLG1       ldd  TCNT  ;current time       addd #50   ;first in 25祍       std  TOC3        cli        ;enable       rts;  Program 6.26. Assembly language ISR for pulse-width modulated squarewave using output compare.; MC68HC11A8OC3HAN ldaa #$20  ;clear OC3F [2]        staa TFLG1 ;Ack        [4]       ldaa TCTL2 ;rise/fall? [4]       bita #$10              [2]       beq  zero              [3]one    ldd  TOC3              [5]       addd High ;OC3 is 1    [6]       std  TOC3              [5]       ldaa TCTL2             [4]       anda #$BF              [2]       staa TCLT2             [4]       bra  done              [3]zero   ldd  TOC3              [5]       addd Low  ;OC is 0     [6]       std  TOC3              [5]       ldaa TCTL2             [4]       oraa #$40              [2]       staa TCLT2             [4]done   rti                   [12]       org  $FFE4       fdb  OC3HAN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -