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

📄 main_quick_tx.lst

📁 基于MOTOLOLAR单片机的TPMS发送控制器代码设计
💻 LST
📖 第 1 页 / 共 5 页
字号:
                                        want MCU clock = Tclk (not recommended)
                      303                                   ;  NOTE you'll 
                                  also have to change the timer register values
                      304                                   ;  in rom1.h
 78A8 [03] B625       305          lda     TSC0


main_quick_tx.asm      Assembled with CASM08Z  3/18/2003  3:17:57 PM  PAGE 8



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

main_quick_tx.asm      Assembled with CASM08Z  3/18/2003  3:17:57 PM  PAGE 9



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

main_quick_tx.asm      Assembled with CASM08Z  3/18/2003  3:17:57 PM  PAGE 10



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

main_quick_tx.asm      Assembled with CASM08Z  3/18/2003  3:17:57 PM  PAGE 11



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

⌨️ 快捷键说明

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