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

📄 main.lst

📁 一款用 Rohm BH1415 设计的FM Transmittor
💻 LST
📖 第 1 页 / 共 3 页
字号:
0098    0310                 movia      0eh 
0099    0311                iost       portb 
009A    0312                movar      portb_state  
009B    0313                 bsr        portb,0  
        0314     
        0315       ;发送数据 
009C    0316                 movia      chan4 
009D    0317                 movar      send_date_low 
009E    0318                 call       send_date 
009F    0319                 return 
        0320                 
        0321        channel5: 
00A0    0322                 movr       channel,0 
00A1    0323                 subia      5 
00A2    0324                 btrss        status,z 
00A3    0325                 goto       channel6 
        0326         
00A4    0327                 movia      02h 
00A5    0328                 iost       porta 
00A6    0329                 movia      0fh 
00A7    0330                 iost       portb 
00A8    0331                movar      portb_state  
00A9    0332                 bcr        porta,3 
        0333        ;发送数据 
00AA    0334                 movia      chan5 
00AB    0335                 movar      send_date_low 
00AC    0336                 call       send_date 
00AD    0337                return 
        0338        channel6: 
00AE    0339                movr       channel,0 
00AF    0340                subia      6 
00B0    0341                btrss        status,z 
00B1    0342                goto       channel7 
        0343        
00B2    0344                 movia      0Ah 
00B3    0345                 iost       porta 
00B4    0346                 movia      0bh 
00B5    0347                 iost       portb 
00B6    0348                 movar      portb_state  
00B7    0349                 bcr        portb,2 
        0350        ;发送数据 
00B8    0351                 movia      chan6 
00B9    0352                 movar      send_date_low 
00BA    0353                 call       send_date 
00BB    0354                 return 
        0355        channel7:          
00BC    0356                 movr       channel,0 
00BD    0357                 subia      7 
00BE    0358                 btrss        status,z 
00BF    0359                 goto       channel8 
        0360         
00C0    0361                 movia      08h 
00C1    0362                 iost       porta 
00C2    0363                 movia      0Fh 
        0364     
00C3    0365                 iost       portb 
00C4    0366                 movar      portb_state  
00C5    0367                 bcr        porta,1 
        0368       ;发送数据 
00C6    0369                 movia      chan7 
00C7    0370                 movar      send_date_low 
00C8    0371                 call       send_date 
00C9    0372                 return 
        0373        channel8:          
00CA    0374                 movr       channel,0 
00CB    0375                 subia      8 
00CC    0376                 btrss        status,z 
00CD    0377                 return       
        0378        
00CE    0379                 movia      0Ah 
00CF    0380                 iost       porta 
00D0    0381                 movia      0eh 
00D1    0382                 iost       portb 
00D2    0383                 movar      portb_state  
00D3    0384                 bcr        portb,0 
        0385        ;发送数据 
00D4    0386                 movia      chan8 
00D5    0387                 movar     send_date_low 
00D6    0388                 call       send_date 
00D7    0389                 return 
        0390         
        0391       ;----------------发送数据子程序---------------------  
        0392        send_date: 
00D8    0393                 bsr        porta,0 
00D9    0394                 call	Delay10us
        0395     
00DA    0396                 movr       send_date_low,0 
00DB    0397                 movar      SendBuf 
00DC    0398                 call       SendByte 
00DD    0399                 movia      send_date_high  
00DE    0400                 movar      SendBuf 
00DF    0401                 call       SendByte 
00E0    0402                 bcr         porta,0 
        0403                 ;bcr        portb,6 
        0404                 ;bcr         portb,7 
00E1    0405                 return 
        0406       ;----------------发送一字节子程序----------------------  
        0407        SendByte: 
00E2    0408            movia          8 
00E3    0409            movar          Bits                    ;byte=8bits 
        0410        Send_8_Bits: 
00E4    0411            rrr            SendBuf,1               ;发送缓冲器右移一位,低位 => C 
00E5    0412            btrsc          status,c 
00E6    0413            goto           Send1                    ;C=1,发1 
        0414        Send0: 
00E7    0415            bcr            portb,7                  ;B7清0 
        0416            ;bsr           portb,7  
00E8    0417            bcr            portb,6  
00E9    0418            call           Delay250us               ;延时250us 
00EA    0419            call           Delay250us               ;延时250us
00EB    0420            NOP
        0421            ;bsr            portb,7                  ;B7置1 
        0422           ; bcr            portb,7  
00EC    0423            bsr            portb,6  
00ED    0424            call           Delay250us               ;延时250us 
00EE    0425            call           Delay250us               ;延时250us 
00EF    0426            call           Delay250us               ;延时250us
00F0    0427            call           Delay250us               ;延时250us
00F1    0428            NOP
00F2    0429            goto           OK 
        0430        Send1: 
00F3    0431           bsr            portb,7  
        0432            ;bcr           portb,7 
00F4    0433            bcr            portb,6  
00F5    0434            NOP
00F6    0435            call           Delay250us 
00F7    0436            call           Delay250us 
        0437            ;bcr            portb,7  
        0438            ;bsr            portb,7 
00F8    0439            bsr            portb,6  
00F9    0440            call           Delay250us 
00FA    0441            call           Delay250us 
00FB    0442            call           Delay250us               ;延时250us 
00FC    0443            call           Delay250us               ;延时250us
00FD    0444            NOP
        0445        OK: 
00FE    0446            decrsz         Bits,1 
00FF    0447            goto           Send_8_Bits 
0100    0448            return 
        0449        
        0450       ;-------------------------------------------  
        0451        Delay250us: 
0101    0452            movia          80                      ;82 
0102    0453            movar          count1 
        0454        loop1: 
0103    0455            decrsz         count1,1 
0104    0456            goto           loop1                      ;延时=[2+(82*3-1)+3]*1uS=250uS 
0105    0457            nop 
0106    0458            return   
        0459         
        0460      ;-------------------------------------------  
        0461        Delay60us: 
0107    0462            movia          19                      
0108    0463            movar          count1 
        0464        loop2: 
0109    0465            decrsz         count1,1 
010A    0466            goto           loop2                      ;延时=[2+(19*3-1)+3]*1uS=61uS 
010B    0467            nop 
010C    0468           return  
        0469       ;-------------------------------------------- 
        0470      ;-------------------------------------------  
        0471        Delay10us: 
010D    0472            movia          2                      
010E    0473            movar          count1 
        0474        loop: 
010F    0475            decrsz         count1,1 
0110    0476            goto           loop                      ;延时=[2+(2*3-1)+3]*1uS=10uS 
0111    0477            nop 
0112    0478           return  
        0479       ;-------------------------------------------- 
        0480        Debounce: 
0113    0481                 movia      68 
0114    0482                 movar      count2 
        0483        counter2: 
0115    0484                 movia      100 
0116    0485                 movar      count1 
        0486        counter1: 
0117    0487                 decrsz     count1,1 
0118    0488                 goto       counter1               ;指令周期=4Fosc=4*1/4M=1uS 
0119    0489                 decrsz     count2,1              ;指令执行次数=2+[2+(3*100-1)]*68+2=20472 
011A    0490                 goto       counter2               ;延时去抖动时间=(1/4M*4)*20402=20.4ms 
011B    0491                 return 
        0492     
        0493         
        0494       ;******************************************************************* 
        0495       ;function name:    ClearRAM 
        0496       ;description:    clear the RAM 010h--03fh  after reset 
        0497       ;input:        none 
        0498       ;output:    none 
        0499       ;**************************************** 
        0500        ClrRAM: 
011C    0501              movia     010h 
011D    0502              movar     fsr                   ;Fsr指向10h 
        0503        Again: 
011E    0504              clrr      indf 
011F    0505              incr      fsr,1 
0120    0506              movr      fsr,0 
0121    0507              andia     03fh 
0122    0508              xoria     03fh 
0123    0509              btrss     status,z 
0124    0510              goto      Again 
0125    0511              return 
        0512         
        0513       ;*********************************************************************** 
        0514       ;function name:    Define_Register 
        0515       ;description:    Define_Register 
        0516       ;input:        none 
        0517       ;output:    none 
        0518      ;**************************************** 
        0519       Define_Register: 
0126    0520              movia     020h 
0127    0521              movar     pcon       ;bit.5=1,enable LVDT;bit.7=0,disable WDT;disable ROC;bit.6=0,select IOB0 
0128    0522              clra                 ;ACC=00000000b 
0129    0523              movar     pdcon      ;enable the internal pull-down of the pins of IOA3-0 and IOB3-0  
012A    0524              movar     odcon      ;disable the internal open-drain of all pins of IOB 
012B    0525              bsr       wucon,1
        0526             ; movar     phcon      ;enable  the internal pull-high of all pins of IOB 
012C    0527              movia     00Ah        ;00001010b 
012D    0528              iost      porta      ;IOA3 .1 input mode  ,IOA2.0  output mode  
012E    0529              bsr       porta,2    ; IOA2=1 , ON 
012F    0530              movia     ON
0130    0531              movar     BH1415_State
0131    0532              movia     01fh       ;00011111b 
0132    0533              iost      portb      ;IOB5-7 output mode;IOB4-0 input mode 
0133    0534              movar     portb_state  
0134    0535              movia     087h       ;00000011b 
0135    0536              movar     inten      ;bit.0=1,enable the Timer0 overflow interrup;bit.1=1,enable the IOB input chang interrup 
0136    0537              clrr      intflag 
0137    0538              bcr       porta,0 
0138    0539              bsr       portb,6 
0139    0540              bsr       portb,7 
        0541       ;------------------------ 
013A    0542              movia      07h                   ;选择TMR0,分频系数1:256,从00h计到0ffh 
013B    0543              option                           ;计数器溢出时间=256*256*1uS=65.5mS 
        0544        ;------------------------ 
013C    0545              return 
        0546      
        0547     ;-----------------------------------------------------------------------
        0548    ;function: write a byte to eeprom
        0549    ;entrance: eep_data_writen save the writen data,eep_address is to access 
        0550    ;address
        0551    ;input: eep_data_writen
        0552    ;output:   none
        0553    ;status:   flg_eep_error=1,wrong
        0554    write_eep_1byte:
013D    0555    	clrr	cnt_eep_wr_error
        0556    write_eep_again:
013E    0557    	incr	cnt_eep_wr_error,1
013F    0558    	btrsc	cnt_eep_wr_error,5	;allow writing 32 times
0140    0559    	goto	write_eep_error
0141    0560    	call	byte_write
0142    0561    	call	h_delay60us
0143    0562    	call	read_eep_1byte
0144    0563    	movr	eep_data_tmp,0
0145    0564    	subar	eep_data_writen,0
0146    0565    	btrss	status,2
0147    0566    	goto	write_eep_again		
0148    0567    	clrr	flg_eep_error		;write 1 byte to eeprom OK
0149    0568    	return 
        0569    write_eep_error:
014A    0570    	movia	1
014B    0571    	movar	flg_eep_error
014C    0572    	return
        0573    ;----------------------------------------------------------------------------
        0574    ;*********************************************************************
        0575    ;function: read a data from specific address
        0576    ;entrance:eep_address is to read from this eeprom address
        0577    ;result:eep_data_tmp
        0578    ;status: flg_eep_error=0,OK. =1 is mistake 
        0579    read_eep_1byte:	
014D    0580    	clrr	cnt_eep_error
        0581    random_read_again:
014E    0582    	call	h_start
        0583    	;movia	10100000b		;dummy write
014F    0584    	movia	0a0h
0150    0585    	movar	eep_data_tmp
0151    0586    	call	h_send_I2C		;??device address 000
0152    0587    	call	h_delay6us	
0153    0588    	call	h_rec_ack
0154    0589    	btrsc	flg_eep_error,0
0155    0590    	goto	random_read_error
0156    0591    	call	h_delay60us
        0592    	
0157    0593    	clrr	eep_data_tmp		;??word address:000h
        0594    	;movia	001h
        0595    	;movar	eep_data_tmp
0158    0596    	call	h_send_I2C		
0159    0597    	call	h_delay6us
015A    0598    	call	h_rec_ack
015B    0599    	btrsc	flg_eep_error,0
015C    0600    	goto	random_read_error
015D    0601    	call	h_delay6us
        0602    	
015E    0603    	movia	010h		;data high
        0604    	;iorar	prtb_state,0
        0605    	;movar	portb
015F    0606    	iorar	portb,1
        0607    	
0160    0608    	call	h_start
        0609    	
        0610    	;movia	10100001b		;??device address
0161    0611    	movia	0a1h
0162    0612    	movar	eep_data_tmp
0163    0613    	call	h_send_I2C
0164    0614    	call	h_delay6us
0165    0615    	call	h_rec_ack
0166    0616    	btrsc	flg_eep_error,0
0167    0617    	goto	random_read_error
        0618    	
0168    0619    	call	h_receive_I2C		;????
0169    0620    	call	h_no_ack_to_ic
016A    0621    	call	h_stop

⌨️ 快捷键说明

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