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

📄 main.lst

📁 一款用 Rohm BH1415 设计的FM Transmittor
💻 LST
📖 第 1 页 / 共 3 页
字号:
016B    0622    	clrr	flg_eep_error
016C    0623    	return
        0624    random_read_error:
016D    0625    	call	h_delay60us
016E    0626    	incr	cnt_eep_error,1
016F    0627    	btrss	cnt_eep_error,5
0170    0628    	goto	random_read_again
0171    0629    	movia	1
0172    0630    	movar	flg_eep_error
0173    0631    	return
        0632    ;*********************************************************************
        0633    ;function:write a data to specific address
        0634    ;entry:	eep_address (to access),eep_data_writen
        0635    ;result:
        0636    ;status: flg_eep_error=0,OK. =1 is mistake 
        0637    byte_write:
        0638    	;clrr	cnt_eep_error
        0639    byte_write_again:
        0640     
        0641    	;movia	11001111b
0174    0642    	movia	0cfh
0175    0643    	andar	portb_state,0
0176    0644    	iost	portb			;portb4,5 output state
        0645     
0177    0646    	call	h_start
        0647    	;movia	10100000b
0178    0648    	movia	0a0h
0179    0649    	movar	eep_data_tmp
017A    0650    	call	h_send_I2C		;??driver address
017B    0651    	call	h_rec_ack		;??IC???
        0652    	;movr	flg_eep_error,0
        0653    	;subia	1
        0654    	;btrsc	status,2
017C    0655    	btrsc	flg_eep_error,0
017D    0656    	goto	byte_write_error
017E    0657    	clrr	eep_data_tmp		;;??word address:000h
017F    0658    	call	h_send_I2C		
0180    0659    	call	h_rec_ack		;??IC???
        0660    	;movr	flg_eep_error,0
        0661    	;subia	1
        0662    	;btrsc	status,2
0181    0663    	btrsc	flg_eep_error,0
0182    0664    	goto	byte_write_error
0183    0665    	movr	eep_data_writen,0
0184    0666    	movar	eep_data_tmp
0185    0667    	call	h_send_I2C		;????data
0186    0668    	call	h_rec_ack		;??IC???
        0669    	;movr	flg_eep_error,0
        0670    	;subia	1
        0671    	;btrsc	status,2
0187    0672    	btrsc	flg_eep_error,0
0188    0673    	goto	byte_write_error
0189    0674    	call	h_stop
018A    0675    	clrr	flg_eep_error			;?????
018B    0676    	return
        0677    byte_write_error:
018C    0678    	call	h_delay60us
018D    0679    	incr	cnt_eep_wr_error,1
018E    0680    	btrss	cnt_eep_wr_error,5
018F    0681    	goto	byte_write_again
0190    0682    	return
        0683    ;-------------------------------------
        0684    h_start:				
        0685    	;movia	11011111b		;clk low
0191    0686    	movia	0dfh
0192    0687    	andar	portb,1			
0193    0688    	call 	h_delay6us
        0689    	
0194    0690    	clrr	flg_eep_error
        0691    	
        0692    	;movia	00010000b		;data high
0195    0693    	movia	010h
0196    0694    	iorar	portb,1
0197    0695    	call	h_delay6us
        0696    	
        0697    	;movia	00100000b		;clk high
0198    0698    	movia	020h
0199    0699    	iorar	portb,1
019A    0700    	call	h_delay6us
        0701    	
        0702    	;movia	11101111b		;data low
019B    0703    	movia	0efh
019C    0704    	andar	portb,1
019D    0705    	call	h_delay6us
019E    0706    	call	h_delay6us
        0707    	
        0708    	;movia	11011111b		;clk low
019F    0709    	movia	0dfh
01A0    0710    	andar	portb,1	
01A1    0711    	call	h_delay6us
01A2    0712    	call	h_delay6us
01A3    0713    	return
        0714    ;---------------------------------------
        0715    h_stop:
        0716    	;movia	11101111b		;data low
01A4    0717    	movia	0efh
01A5    0718    	andar	portb,1		
01A6    0719    	call	h_delay6us
        0720    	
        0721    	;movia	00100000b		;clk high
01A7    0722    	movia	020h
01A8    0723    	iorar	portb,1
01A9    0724    	call	h_delay6us
01AA    0725    	call	h_delay6us
        0726    	
        0727    	;movia	00010000b		;data high
01AB    0728    	movia	010h
01AC    0729    	iorar	portb,1
01AD    0730    	call	h_delay6us
01AE    0731    	call	h_delay6us
01AF    0732    	return
        0733    ;---------------------------------------
        0734    h_rec_ack:				;?????
        0735    	;movia	00010000b		;data high
01B0    0736    	movia	010h
01B1    0737    	iorar	portb,1
        0738    	
        0739    	;movia	00100000b		;clk high
01B2    0740    	movia	020h
01B3    0741    	iorar	portb,1
01B4    0742    	call	h_delay6us
        0743    	
        0744    	;movia	00010000b		;data high
        0745    	;movia	010h
        0746    	;iorar	portb,1			;ready for reading data port(only for KB)
        0747    	;call	h_delay6us
        0748     
        0749    	;movia	00010000b		;此处要改为输入以读引脚状态
01B5    0750    	movia	010h
01B6    0751    	iorar	portb_state,0
01B7    0752    	iost	portb			
        0753    	
        0754    	;movia	00010000b
01B8    0755    	movia	010h
01B9    0756    	andar	portb,0
01BA    0757    	btrsc	status,2
01BB    0758    	goto	h_rec_ok
        0759     
        0760    	;movia	11101111b
01BC    0761    	movia	0efh
01BD    0762    	andar	portb_state,0
01BE    0763    	iost	portb                  ;此处改回输出以准备下一步处理
        0764     
01BF    0765    	movia	1
01C0    0766    	movar	flg_eep_error
01C1    0767    	call	h_delay6us
01C2    0768    	return
        0769    h_rec_ok:
        0770    	;movia	11101111b
01C3    0771    	movia	0efh
01C4    0772    	andar	portb_state,0
01C5    0773    	iost	portb                   ;此处改回输出以准备下一步处理
        0774    	
01C6    0775    	call	h_delay6us
01C7    0776    	call	h_delay6us
        0777     
        0778    	;movia	11011111b		;clk low
01C8    0779    	movia	0dfh
01C9    0780    	andar	portb,1
        0781     
01CA    0782    	movia	0
01CB    0783    	movar	flg_eep_error
        0784    ;	lda	prtd
        0785    ;	ora	#data_high		;same the programmer tooling diagram
        0786    ;	sta	prtd
01CC    0787    	return
        0788    ;---------------------------------------
        0789    h_ack_to_ic:				
        0790    	;movia	11101111b		;data low
01CD    0791    	movia	0efh
01CE    0792    	andar	portb,1	
01CF    0793    	call	h_delay6us
        0794    	
        0795    	;movia	00100000b		;clk high
01D0    0796    	movia	020h
01D1    0797    	iorar	portb,1
01D2    0798    	call	h_delay6us
        0799    	
        0800    	;movia	11011111b		;clk low
01D3    0801    	movia	0dfh
01D4    0802    	andar	portb,1
01D5    0803    	call	h_delay6us
01D6    0804    	return
        0805    ;--------------------------------------
        0806    h_no_ack_to_ic:				;???IC
        0807    	;movia	00010000b		;data high
01D7    0808    	movia	010h
01D8    0809    	iorar	portb,1
01D9    0810    	call	h_delay6us
        0811    	
        0812    	;movia	00100000b		;clk high
01DA    0813    	movia	020h
01DB    0814    	iorar	portb,1
01DC    0815    	call	h_delay6us
01DD    0816    	call	h_delay6us
        0817    	
        0818    	;movia	11011111b		;clk low
01DE    0819    	movia	0dfh
01DF    0820    	andar	portb,1
01E0    0821    	call	h_delay6us
01E1    0822    	return
        0823    ;--------------------------------------
        0824    h_send_I2C:				;??8?
01E2    0825    	movia	8
01E3    0826    	movar	flg_eep_error
        0827    h_send_I2C_1:
01E4    0828    	addia	0
01E5    0829    	rlr	eep_data_tmp,1
01E6    0830    	btrsc	status,0
01E7    0831    	goto	h_send_high
        0832    	;movia	11101111b		;data low
01E8    0833    	movia	0efh
01E9    0834    	andar	portb,1
01EA    0835    	goto	h_send_clk
        0836    h_send_high:
        0837    	;movia	00010000b		;data high
01EB    0838    	movia	010h
01EC    0839    	iorar	portb,1
01ED    0840    	nop
        0841    h_send_clk:
01EE    0842    	call	h_delay6us
        0843    	;movia	00100000b		;clk high
01EF    0844    	movia	020h
01F0    0845    	iorar	portb,1
01F1    0846    	call	h_delay6us
        0847    	
        0848    	;movia	11011111b		;clk low
01F2    0849    	movia	0dfh
01F3    0850    	andar	portb,1
01F4    0851    	call	h_delay6us
        0852     
01F5    0853    	decrsz	flg_eep_error,1
01F6    0854    	goto	h_send_I2C_1
        0855    	;goto	h_send_over
        0856    h_send_over:
01F7    0857    	return
        0858    ;-------------------------------------
        0859    h_receive_I2C:				;??8???
01F8    0860    	movia	8
01F9    0861    	movar	flg_eep_error
        0862    h_receive_I2C_1:
        0863    	;movia	00010000b		;data high
01FA    0864    	movia	010h
01FB    0865    	iorar	portb,1
01FC    0866    	call	h_delay6us
        0867    	
        0868    	;movia	00100000b		;clk high
01FD    0869    	movia	020h
01FE    0870    	iorar	portb,1
01FF    0871    	call	h_delay6us
        0872    	
        0873    	;lda	plata		;set to high before read for KB
        0874    	;ora	#data_high
        0875    	;sta	plata
        0876    	;nop
        0877     
        0878    	;movia	00010000b		;此处要改为输入以读引脚状态
0200    0879    	movia	010h
0201    0880    	iorar	portb_state,0
0202    0881    	iost	portb
        0882    	
        0883    	;movia	00010000b
0203    0884    	movia	010h
0204    0885    	andar	portb,0
0205    0886    	movar	value_temp
        0887    	;movia	00010000b
0206    0888    	movia	010h
0207    0889    	subar	value_temp,0		;value_temp>=ACC,cy=1
0208    0890    	rlr	eep_data_tmp,1
        0891    	
        0892    	;movia	11101111b		;此处改回输出
0209    0893    	movia	0efh
020A    0894    	andar	portb_state,0
020B    0895    	iost	portb                   
        0896    h_receive_clk:
        0897    	;movia	11011111b		;clk low
020C    0898    	movia	0dfh
020D    0899    	andar	portb,1
        0900    	
020E    0901    	decrsz	flg_eep_error,1
020F    0902    	goto	h_receive_I2C_1
        0903    	;goto	h_receive_over
        0904    h_receive_over:
0210    0905    	return
        0906     
        0907    h_delay6us:
0211    0908    	nop
0212    0909    	nop
0213    0910    	nop
0214    0911    	nop
0215    0912    	nop
0216    0913    	nop
0217    0914    	return
        0915    	
        0916    h_delay60us:
0218    0917    	call	h_delay6us
0219    0918    	call	h_delay6us
021A    0919    	call	h_delay6us
021B    0920    	call	h_delay6us
021C    0921    	call	h_delay6us
021D    0922    	call	h_delay6us
021E    0923    	call	h_delay6us
021F    0924    	call	h_delay6us
0220    0925    	call	h_delay6us
0221    0926    	call	h_delay6us
0222    0927    	return
        0928    	;-------------------------
        0929     
        0930    ORG 03FFH
        0931    NOP
 

⌨️ 快捷键说明

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