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

📄 main.lst

📁 基于MOTOLOLAR单片机的TPMS发送控制器代码设计
💻 LST
📖 第 1 页 / 共 5 页
字号:
                      303  
                      304  ;        mov     #$30,TSC        ; Use this if you 
                                        want MCU clock = Tclk (not recommended)
                      305                                   ;  NOTE you'll 
                                  also have to change the timer register values


main.asm               Assembled with CASM08Z  3/18/2003  3:17:52 PM  PAGE 8



                      306                                   ;  in rom1.h
 78A8 [03] B625       307          lda     TSC0
 78AA [04] 6E5425     308          mov     #$54,TSC0       ; Timer 1 Channel 0 
                                                       : PWM output with toggle
                      309                                  ; on compare; 
                                                             Tx_Uhf_ISR enabled
                      310  
 78AD [03] 450014     311          ldhx    #UHF_period     ;PWM period = 
                                                                     period UHF
 78B0 [04] 3523       312          sthx    TMODH
 78B2 [03] 45000A     313          ldhx    #UHF_duty_cycle ; PWM duty cycle = 
                                                                            50%
 78B5 [04] 3526       314          sthx    TCH0H
                      315  
 78B7 [04] 1B20       316          bclr    5,TSC           ; Start the timer
                      317  
 78B9 [02] 88         318          pulx                    ; restore h & x
 78BA [02] 8A         319          pulh
                      320  
 78BB [04] 81         321          rts
                      322  
                      323  ;/**************************************************
                                                   ***************************/
                      324  ;/* Wake_up_Rx                                      
                                                                             */
                      325  ;/* Description : it starts the transmission of a 
                                                 tone at 9600 bauds for 64 ms*/
                      326  ;/* In :                                            
                                                                             */
                      327  ;/* Out : nb_1                                      
                                                                             */
                      328  ;/* local variables : H:X                           
                                                                             */
                      329  ;/**************************************************
                                                   ***************************/
                      330  
                      331  Wake_up_Rx:
                      332  
 78BC [02] 8B         333          pshh
 78BD [02] 89         334          pshx
                      335  
 78BE [04] 1201       336          bset    Enable,PORTB
                      337  
 78C0 [03] 45017D     338          ldhx    #wait_1_8ms     ; wait for Tango3 
                                                              PLL being settled
 78C3 [05] CD7880     339          jsr     Tempo
                      340  
 78C6 [03] 450020     341          ldhx    #nb_wake_up_bit
 78C9 [04] 35A5       342          sthx    nb_1            ; transmit the tone
 78CB [05] CD7892     343          jsr     transmit_1
                      344  
 78CE [02] 88         345          pulx
 78CF [02] 8A         346          pulh
                      347  
 78D0 [04] 81         348          rts
                      349  
                      350  ;/**************************************************
                                                   ***************************/


main.asm               Assembled with CASM08Z  3/18/2003  3:17:52 PM  PAGE 9



                      351  ;/* Tx_UHF_ISR                                      
                                                                             */
                      352  ;/* Description : it decides what to do on timer 
                                                overflow                     */
                      353  ;/*      if current = next, then toggle on timer 
                                                overflow, else no toggle     */
                      354  ;/* In : Next_Tx_bit, Current_Tx_Bit                
                                                                             */
                      355  ;/* Out : TSC0, nb_1                                
                                                                             */
                      356  ;/* local variables :                               
                                                                             */
                      357  ;/**************************************************
                                                   ***************************/
                      358  
                      359  Tx_Uhf_ISR:
                      360  
 78D1 [02] 8B         361          pshh
                      362  
 78D2 [04] 55A5       363          ldhx    nb_1            ; if nb_1 = 0, do 
                                                             not decrement nb_1
 78D4 [03] 650000     364          cphx    #0000
 78D7 [03] 270C       365          beq     reenable_Tx_ISR
 78D9 [03] B6A6       366          lda     nb_1+1          ;          else 
                                                                 decrement nb_1
 78DB [02] A001       367          sub     #1
 78DD [03] B7A6       368          sta     nb_1+1
 78DF [03] B6A5       369          lda     nb_1
 78E1 [02] A200       370          sbc     #0
 78E3 [03] B7A5       371          sta     nb_1
                      372  
                      373  reenable_Tx_ISR:
 78E5 [03] B625       374          lda     tsc0            ; reenable next 
                                              input capture isr by reading tsc0
 78E7 [02] A47F       375          and     #$7f            ; &
 78E9 [03] B725       376          sta     tsc0            ; clearing input 
                                                                   capture flag
                      377  
 78EB [03] B6A3       378          lda     Next_Tx_Bit     ; if next_tx_bit 
                                                    not equal to Current_tx_bit
 78ED [05] 31A205     379          cbeq    Current_Tx_Bit,Tovf
                      380  No_tovf:
 78F0 [04] 1325       381          bclr    1,TSC0          ;    then no toggle 
                                                                    on overflow
 78F2 [03] CC78F7     382          jmp     End_Tx_UHF_ISR  ;
                      383  Tovf:
 78F5 [04] 1225       384          bset    1,TSC0          ;    else toggle on 
                                                                       overflow
                      385  
                      386  End_Tx_UHF_ISR:
 78F7 [02] 8A         387          pulh
                      388  
 78F8 [07] 80         389          rti
                      390  
                      391  ;/**************************************************
                                                   ***************************/
                      392  ;/* Transmit                                        
                                                                             */


main.asm               Assembled with CASM08Z  3/18/2003  3:17:52 PM  PAGE 10



                      393  ;/* Description : it transmits data at 9600 bauds 
                                                 in Manchester               */
                      394  ;/* In : Tx_byte                                    
                                                                             */
                      395  ;/* Out :                                           
                                                                             */
                      396  ;/* local variables : H:X, current_tx_bit,next_tx_bi
                                                   t,current_tx_byte         */
                      397  ;/**************************************************
                                                   ***************************/
                      398  
                      399  Transmit:
                      400  
 78F9 [03] 450097     401          ldhx    #Tx_byte
                      402  
                      403  Transmit_Downlink:
                      404  
 78FC [04] 7EA4       405          mov     x+,current_tx_byte
 78FE [02] A608       406          lda     #$8             ; a = bit pointer
                      407  
                      408  Transmit_Byte:
 7900 [02] 87         409          psha                    ; save a
 7901 [05] 4EA3A2     410          mov     Next_Tx_bit,Current_Tx_Bit  ;
 7904 [04] 38A4       411          lsl     current_Tx_Byte ; move next bit in 
                                                                          carry
 7906 [03] 2504       412          bcs     Next_1          ;   if carry not set
                      413  next_0:
 7908 [03] 3FA3       414          clr     Next_Tx_bit     ;      then 
                                                                   next_bit = 0
 790A [03] 2003       415          bra     Next            ;
                      416  Next_1:
 790C [04] 6E01A3     417          mov     #$1,Next_Tx_Bit ;      else 
                                                                    next_bit =1
                      418  Next:
 790F [01] 8F         419          wait                    ; half bit
                      420                                  ; wait until 
                                                        next_bit is transmitted
 7910 [02] 86         421          pula                    ; restore a
 7911 [03] 4BED       422          dbnza   Transmit_Byte   ; repeat until the 
                                                         8 bits are transmitted
                      423  
 7913 [04] 51A202     424          cbeqx   #Last_byte,transmit_last_bit
 7916 [03] 20E4       425          bra     Transmit_downlink
                      426                                  ; repeat byte 
                                              transmit loop until the last byte
                      427  
                      428  transmit_last_bit:
 7918 [05] 4EA3A2     429          mov     Next_Tx_bit,Current_Tx_Bit
 791B [04] 6E00A3     430          mov     #$0,next_tx_bit
 791E [01] 8F         431          wait                    ; exit milieu bit : 
                                                          wait for the half lsb
                      432  
 791F [03] B620       433          lda     TSC
 7921 [04] 1F20       434          bclr    7,TSC
 7923 [05] 0F20FD     435          brclr   7,TSC,*
 7926 [04] 1501       436          bclr    DATA_RF,PORTB
 7928 [03] 3F25       437          clr     TSC0
                      438  


main.asm               Assembled with CASM08Z  3/18/2003  3:17:52 PM  PAGE 11



 792A [04] 1501       439          bclr    DATA_RF,PORTB
                      440  
 792C [03] 450014     441          ldhx    #UHF_period     ; wait for EOM
 792F [05] CD7880     442          jsr     Tempo
 7932 [03] 450014     443          ldhx    #UHF_period
 7935 [05] CD7880     444          jsr     Tempo
 7938 [03] 450014     445          ldhx    #UHF_period
 793B [05] CD7880     446          jsr     Tempo
                      447  
 793E [04] 6E0101     448          mov     #$01,PORTB      ; shut-down the RF, 
                                                             keep at 315/434MHz
 7941 [04] 6E3020     449          mov     #$30,TSC        ; stop & clear the 
                                                            timer, fcpu = tclk.
                      450  
 7944 [04] 81         451          rts
 7945                 452  $Include        'makeframe_moroso.asm'
                      453  ;/**************************************************
                                                   ***************************/

⌨️ 快捷键说明

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