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

📄 main.lst

📁 一款用 Rohm BH1415 设计的FM Transmittor
💻 LST
📖 第 1 页 / 共 3 页
字号:
FM8P5X Compiler 1.2 Released  D:\Documents and Settings\Administrator\桌面\项目资料\无线发射方案\FM transmitter_8\main.asm   2006-9-11   16:04:28   

LOC     LINE    SOURCE TEXT
        0001    ;********************************************** 
        0002    ;function description: FM Transmitter 
        0003    ;written by:ye jiawei , Dong Shuilian, Kong xiangyue
        0004    ;IC body:AT8P53   BH1415 
        0005    ;*********************************************** 
        0006    ;-------------RAM definition-------------------- 
        0007    indf           equ       000h 
        0008    tmr0           equ       001h 
        0009    pcl            equ       002h
        0010    ;--------------------------- 
        0011    status         equ       003h 
        0012    z              equ        2 
        0013    c              equ        0 
        0014    ;--------------------------- 
        0015    fsr            equ       004h 
        0016    porta          equ       005h     
        0017    portb          equ       006h 
        0018                     
        0019    pcon           equ       008h 
        0020    wucon          equ       009h 
        0021    pchbuf         equ       00ah 
        0022    pdcon          equ       00bh 
        0023    odcon          equ       00ch 
        0024    phcon          equ       00dh 
        0025    inten          equ       00eh 
        0026    intflag        equ       00fh 
        0027    ;------------------------------------------------- 
        0028    portb_state    equ       010h 
        0029    store_channel  equ       011h 
        0030    channel        equ       012h 
        0031    send_date_low   equ      013h 
        0032    SendBuf        equ       014h 
        0033    second_count   equ       015h 
        0034    ACCTemp        equ       016h 
        0035    StatusTemp     equ       017h 
        0036    ;--------------------------------- 
        0037    flag           equ       018h 
        0038    key_yes        equ        7 
        0039    ;----------------------------------- 
        0040    temp           equ       019h 
        0041    temp0          equ       01ah 
        0042    Bits           equ       01bh 
        0043    count1         equ       01ch 
        0044    count2         equ       01dh 
        0045    BH1415_State   equ       01Eh 
        0046     ;store_channel		equ	03fh	
        0047    flg_eep_error		equ	03eh
        0048    cnt_eep_wr_error	equ	03dh
        0049    cnt_eep_error		equ	03ch
        0050    eep_data_tmp 		equ	03bh
        0051    eep_data_writen 	equ	03ah
        0052    ;prtb_state		equ	039h
        0053    value_temp		equ	038h
        0054     
        0055    ;-------------------Constants----------------- 
        0056    ;chan1     equ    08bh        ;89.5M/100k=895  37fh 
        0057     
        0058    ;chan2   equ    08ch        ;95.5M/100k=955  38ch 
        0059    ;chan3   equ    08eh        ;91.0M/100k=  38eh 
        0060    ;chan4   equ    08fh        ;91.1M/100k=91.1  38fh 
        0061    ;chan5   equ    090h        ;91.2M/100k=912  390h 
        0062    ;chan6   equ    091h        ;91.3M/100k=913  391h 
        0063    ;chan7   equ    092h        ;91.4M/100k=914  392h 
        0064    ;chan8   equ    093h        ;91.5M/100k=915  393h 
        0065     
        0066    ;chan1   equ    0ach        ;94M/100k=940  3ach 
        0067    ;chan2   equ    0bbh        ;95.5M/100k=955  3bbh 
        0068    ;chan3   equ    0dah        ;98.6M/100k=98.6  3dah 
        0069    ;chan4   equ    0e8h        ;100.0M/100k=1000  3e8h 
        0070    ;chan5   equ    0f7h        ;101.5M/100k=1015  3f7h 
        0071    ;chan6   equ    0fbh        ;101.9M/100k=1019  3fbh 
        0072    ;chan7   equ    0fdh        ;102.1M/100k=1021  3fdh 
        0073    ;chan8   equ    0ffh        ;102.3M/100k=1000  3ffh 
        0074     
        0075    chan1     equ    071h        ;88.1M/100k=881  371h 
        0076    chan2     equ    073h        ;88.3M/100k=883  373h 
        0077    chan3     equ    075h        ;88.5M/100k=885  375h 
        0078    chan4    equ    077h        ;88.7M/100k=887  377h 
        0079     
        0080    chan5     equ    079h        ;88.9M/100k=889  379h 
        0081    chan6     equ    07bh        ;89.1M/100k=891  37bh 
        0082    chan7     equ    07dh        ;89.3M/100k=893  37dh 
        0083    chan8     equ    07fh        ;89.5M/100k=895  37fh 
        0084    send_date_high   equ   04bh      ;lsb-- 11010010-- msb === 4Bh   
        0085    ON    equ    01h
        0086    OFF   equ    00h
        0087     
        0088    ;#################################################################### 
        0089              org       000h 
0000    0090              goto      Start 
        0091              org       002h 
0002    0092              retfie 
        0093              org       008h 
        0094             ; retfie 
0008    0095              goto      PB_TM0_Interrup
        0096              
        0097        PB_TM0_Interrup:
0009    0098          btrss     intflag,0              ;是TMR0引起的中断吗?
000A    0099          goto      PB_Interrup   
        0100          
        0101        TM0_Interrup: 
        0102              ;CLRWDT
000B    0103              movar    ACCTemp              ;save ACC 
000C    0104              movr    status,0 
000D    0105              movar    StatusTemp           ;save Status 
        0106              
000E    0107              bcr       intflag,0              ;清除计时器中断标志 
000F    0108              incr      second_count,1               ;定时计数器加1 
        0109                        
0010    0110              movr      StatusTemp,0           
0011    0111              movar     status                ;pop Status 
0012    0112             movr      ACCTemp,0             ;pop ACC 
0013    0113              retfie 
        0114              
        0115        PB_Interrup:
0014    0116          bcr       intflag,1              ;清除PB输入改变中断标志      
        0117         
0015    0118          retfie      
        0119       ;------------------------------------------------------------------- 
        0120        Start: 
        0121              ;CLRWDT
0016    0122              call      ClrRAM                 ;清除内存 
0017    0123              call      Define_Register        ;初始化特定功能寄存器      
0018    0124              call      read_eep_1byte;     读I2c ,eep_data_tmp寄存所读数据 
0019    0125              movr      eep_data_tmp,0
001A    0126              movar     store_channel 
001B    0127              movia     0ffh 
001C    0128              xorar     store_channel,0  
001D    0129              btrss     status,z 
001E    0130              goto      i2c_full 
        0131              
        0132        i2c_empty: 
001F    0133              movia     1 
0020    0134              movar     channel  
0021    0135              movar     store_channel  
0022    0136              movar     eep_data_writen 
0023    0137              call      write_eep_1byte              ;写 I2c 
0024    0138              goto     send_date_light_led0   
        0139              
        0140        i2c_full:       
0025    0141              movr      store_channel,0 
0026    0142              movar     channel   
        0143              
        0144        send_date_light_led0: 
0027    0145              call      send_date_light_led 
        0146       
        0147        main:     
0028    0148                sleep
        0149        scan_key: 
0029    0150                call       scan 
002A    0151                btrss      flag,key_yes 
002B    0152                 goto       no_key 
        0153       ;have key 
002C    0154                 clrr       second_count          ;清中断次数计数器 
002D    0155                 clrr       tmr0                  ;清时钟计数器,开始计时 
        0156        scan_again:          
002E    0157                 movr       temp,0 
002F    0158                 movar      temp0 
0030    0159                 call       scan 
0031    0160                 movr       temp,0 
0032    0161                 subar      temp0,0 
0033    0162                 btrsc      status,z 
0034    0163                 goto       scan_again 
        0164         
        0165        scan_complete: 
0035    0166                 movr       second_count,0 
0036    0167                 subia      46                ;65.5ms*46=3s 
0037    0168                 btrss      status,c 
0038    0169                 goto       long_key 
        0170         
        0171       ;short key 
0039    0172                 movr       BH1415_State,0 
003A    0173                 subia      ON 
003B    0174                 btrss      status,z
003C    0175                 goto       no_key
003D    0176                 incr       channel,1 
003E    0177                 movr       channel,0 
003F    0178                 subia      8 
0040    0179                 btrsc      status,c 
0041    0180                 goto       display 
        0181         
0042    0182                 movia      1 
0043    0183                 movar      channel 
        0184        display: 
0044    0185                 call       send_date_light_led 
0045    0186                 movr       channel,0 
0046    0187                 movar      store_channel 
0047    0188                 movar      eep_data_writen 
0048    0189                 call       write_eep_1byte              ;写 I2c 
        0190     
0049    0191                 goto      main 
        0192     
        0193     
        0194        long_key: 
004A    0195                 movr       BH1415_State,0 
004B    0196                 subia      ON
004C    0197                 btrss      status,z
004D    0198                 goto       ON_KEY
        0199          OFF_KEY:
004E    0200                 movia      0Ah 
004F    0201                 iost       porta
0050    0202                 bcr        porta,2 
0051    0203                 movia      0Ffh 
0052    0204                 iost       portb 
0053    0205                 movar      portb_state
0054    0206                 movia      OFF
0055    0207                 movar      BH1415_State
        0208                 
0056    0209                 goto      main 
        0210     
        0211          ON_KEY:      
0057    0212                 goto     Start  
        0213            
        0214        no_key: 
0058    0215                  goto      main 
        0216     
        0217       ;------------------------------------- 
        0218        scan: 
0059    0219                 movr        portb,0 
005A    0220                 andia      02h 
005B    0221                 movar      temp 
        0222        
005C    0223                 btrss      temp,1 
005D    0224                 goto       no_key1 
        0225         
005E    0226                 call       Debounce  
005F    0227                 movr        portb,0 
0060    0228                 andia      02h 
0061    0229                 movar      temp 
        0230         
0062    0231                 btrss      temp,1 
0063    0232                 goto       no_key1 
        0233         
0064    0234                 bsr        flag,key_yes 
0065    0235                 return 
        0236        no_key1: 
0066    0237                 bcr        flag,key_yes 
0067    0238                 return 
        0239         
        0240       ;############################################### 
        0241       ;******************************************************************* 
        0242      ;function name:    send_date_light_led 
        0243       ;description:    send date  and  light led 
        0244       ;input:        channel  
        0245       ;output:    portb_state 
        0246       ;**************************************** 
        0247       send_date_light_led: 
0068    0248                 movr       channel,0 
0069    0249                 subia      1 
006A    0250                 btrss        status,z 
006B    0251                 goto       channel2 
        0252       ;channel1 
006C    0253                 movia      02h 
006D    0254                 iost       porta 
006E    0255                 movia      0fh 
006F    0256                 iost       portb 
0070    0257                movar      portb_state  
0071    0258                 bsr        porta,3 
        0259                
        0260      ;发送数据 
0072    0261                 movia      chan1 
0073    0262                 movar      send_date_low 
        0263     
0074    0264                 call       send_date 
        0265                 
0075    0266                 return 
        0267         
        0268       channel2: 
0076    0269                movr       channel,0 
0077    0270                subia      2 
0078    0271                btrss        status,z 
0079    0272                 goto       channel3 
        0273         
007A    0274                 movia      0Ah 
007B    0275                 iost       porta 
007C    0276                 movia      0bh 
007D    0277                 iost       portb 
007E    0278                 movar      portb_state  
007F    0279                 bsr        portb,2 
        0280       ;发送数据 
0080    0281                movia      chan2 
0081    0282                movar      send_date_low 
0082    0283                 call       send_date 
0083    0284                 return 
        0285        channel3:          
0084    0286                 movr       channel,0 
0085    0287                subia      3 
0086    0288                 btrss        status,z 
0087    0289                 goto       channel4 
        0290         
0088    0291                 movia      08h 
0089    0292                 iost       porta 
008A    0293                 movia      0Fh 
008B    0294                 iost       portb 
008C    0295                 movar      portb_state  
008D    0296                 bsr        porta,1 
        0297         ;发送数据 
008E    0298                 movia      chan3 
008F    0299                 movar      send_date_low 
0090    0300                call       send_date 
0091    0301                 return 
        0302        channel4:          
0092    0303                movr       channel,0 
0093    0304                subia      4 
0094    0305                 btrss        status,z 
0095    0306                 goto       channel5 
        0307        
0096    0308                movia      0Ah 
0097    0309                 iost       porta 

⌨️ 快捷键说明

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