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

📄 mdfan.lst

📁 用24L01的2.4Ghz无线控制风扇的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   254  000009             
   255  000009             ;---------------------------DigiTable Definition---------------------
   256  000010             	ORG 	10h
   257  000010             Freq_Agil_Table:
   258  000010   0002(1)  	DW	2,27,52,7,32,57,12,37,62,17,42,67,22,47,72
   259  000011   001B(1)  
   260  000012   0034(1)  
   261  000013   0007(1)  
   262  000014   0020(1)  
   263  000015   0039(1)  
   264  000016   000C(1)  
   265  000017   0025(1)  
   266  000018   003E(1)  
   267  000019   0011(1)  
   268  00001A   002A(1)  
   269  00001B   0043(1)  
   270  00001C   0016(1)  
   271  00001D   002F(1)  
   272  00001E   0048(1)  
   273  00001F             
   274  00001F             ;--------------------------------------------------------------------
   275  00001F             	INCLUDE		EEPROM24C02.ASM
   276  00001F             ;*******************************************************
   277  00001F             ;below is programmed by Wang WenCheng,modified by Figo
   278  00001F             ;==========================================
   279  00001F             ;------------I2C 24C02--------
   280  00001F             ;*****************************************************************
   281  00001F             ;Function:Save_AccessCode
   282  00001F             ;Description:Write Access Code to EEPROM via I2C bus.
   283  00001F             ;input:local_access_code0,local_access_code1
   284  00001F             ;output:none
   285  00001F             ;*****************************************************************
   286  00001F             Save_AccessCode:
   287  00001F             SaveData:
   288  00001F   421A(1)  	bclr	I2Csave
   289  000020   2B1D(1)  	clr	ErrorCount
   290  000021             SaveData_loop:
   291  000021   511A(1+S)  	bts0	I2CjoinErrorFlag
   292  000022   0E00(2)  	ret
   293  000023             	clrwdt
   294  000023   2D5A(1)  		MOV		A, #5AH
   295  000024   1FCC(1)  		MOV		WDTR, A
   296  000025   C0C5(2)  	call	I2Cstart	;Start
   297  000026   C0DC(2)  	call	I2Cout1		;Device address
   298  000027   C0E7(2)  	call	I2Cout0
   299  000028   C0DC(2)  	call	I2Cout1
   300  000029   C0E7(2)  	call	I2Cout0
   301  00002A   C0E7(2)  	call	I2Cout0
   302  00002B   C0E7(2)  	call	I2Cout0
   303  00002C   C0E7(2)  	call	I2Cout0
   304  00002D   C0E7(2)  	call	I2Cout0		;R/W
   305  00002E             
   306  00002E   C0F2(2)  	call	I2CwaitAck	;wait ACK
   307  00002F   581A(1+S)  	bts1	I2CackFlag
   308  000030   8067(2)  	jmp	SaveDataError
   309  000031             
   310  000031   C0E7(2)  	call	I2Cout0		;Word address
   311  000032   C0E7(2)  	call	I2Cout0
   312  000033   C0E7(2)  	call	I2Cout0
   313  000034   C0E7(2)  	call	I2Cout0
   314  000035   C0E7(2)  	call	I2Cout0
   315  000036   C0E7(2)  	call	I2Cout0
   316  000037   C0E7(2)  	call	I2Cout0
   317  000038   C0E7(2)  	call	I2Cout0
   318  000039             
   319  000039   C0F2(2)  	call	I2CwaitAck	;wait ACK
   320  00003A   581A(1+S)  	bts1	I2CackFlag
   321  00003B   8067(2)  	jmp	SaveDataError
   322  00003C             
   323  00003C   1E08(1)  	mov	A, local_access_code0			;DigiHigh--by Figo
   324  00003D   1F1B(1)  	mov	DataBuffer,A
   325  00003E   C0FE(2)  	call	I2CwriteBit	;Write Data
   326  00003F   C0FE(2)  	call	I2CwriteBit
   327  000040   C0FE(2)  	call	I2CwriteBit
   328  000041   C0FE(2)  	call	I2CwriteBit
   329  000042   C0FE(2)  	call	I2CwriteBit
   330  000043   C0FE(2)  	call	I2CwriteBit
   331  000044   C0FE(2)  	call	I2CwriteBit
   332  000045   C0FE(2)  	call	I2CwriteBit
   333  000046             
   334  000046   C0F2(2)  	call	I2CwaitAck	;wait ACK
   335  000047   581A(1+S)  	bts1	I2CackFlag
   336  000048   8067(2)  	jmp	SaveDataError
   337  000049             
   338  000049   1E09(1)  	mov	A, local_access_code1			;DigiLow--by Figo
   339  00004A   1F1B(1)  	mov	DataBuffer,A
   340  00004B   C0FE(2)  	call	I2CwriteBit	;Write Data
   341  00004C   C0FE(2)  	call	I2CwriteBit
   342  00004D   C0FE(2)  	call	I2CwriteBit
   343  00004E   C0FE(2)  	call	I2CwriteBit
   344  00004F   C0FE(2)  	call	I2CwriteBit
   345  000050   C0FE(2)  	call	I2CwriteBit
   346  000051   C0FE(2)  	call	I2CwriteBit
   347  000052   C0FE(2)  	call	I2CwriteBit
   348  000053             
   349  000053   C0F2(2)  	call	I2CwaitAck	;wait ACK
   350  000054   581A(1+S)  	bts1	I2CackFlag
   351  000055   8067(2)  	jmp	SaveDataError
   352  000056             
   353  000056   1E0A(1)  	mov	A, local_access_code2			;WorkingState--by Figo
   354  000057   1F1B(1)  	mov	DataBuffer,A
   355  000058   C0FE(2)  	call	I2CwriteBit	;Write Data
   356  000059   C0FE(2)  	call	I2CwriteBit
   357  00005A   C0FE(2)  	call	I2CwriteBit
   358  00005B   C0FE(2)  	call	I2CwriteBit
   359  00005C   C0FE(2)  	call	I2CwriteBit
   360  00005D   C0FE(2)  	call	I2CwriteBit
   361  00005E   C0FE(2)  	call	I2CwriteBit
   362  00005F   C0FE(2)  	call	I2CwriteBit
   363  000060             
   364  000060   C0F2(2)  	call	I2CwaitAck	;wait ACK
   365  000061   581A(1+S)  	bts1	I2CackFlag
   366  000062   8067(2)  	jmp	SaveDataError
   367  000063             
   368  000063   C0D1(2)  	call	I2Cstop		;Stop
   369  000064             	clrwdt
   370  000064   2D5A(1)  		MOV		A, #5AH
   371  000065   1FCC(1)  		MOV		WDTR, A
   372  000066   0E00(2)  	ret
   373  000067             
   374  000067             SaveDataError:
   375  000067   161D(1+S)  	incms	ErrorCount
   376  000068   0000(1)  	nop
   377  000069   2D0A(1)  	mov	A,#10
   378  00006A   221D(1)  	sub	A,ErrorCount
   379  00006B   5A86(1+S)  	bts1	FC
   380  00006C   491A(1)   	bset	I2CjoinErrorFlag
   381  00006D   8021(2)  	jmp	SaveData_loop
   382  00006E             
   383  00006E             ;*****************************************************************
   384  00006E             ;Function:Load_AccessCode
   385  00006E             ;Description:Read Access Code from EEPROM via I2C bus.
   386  00006E             ;input:none
   387  00006E             ;output:local_access_code0,local_access_code1
   388  00006E             ;*****************************************************************
   389  00006E             Load_AccessCode:
   390  00006E             ReloadData:
   391  00006E   2B1D(1)  	clr	ErrorCount
   392  00006F             ReloadData_Loop:
   393  00006F   511A(1+S)  	bts0	I2CjoinErrorFlag
   394  000070   0E00(2)  	ret
   395  000071             	clrwdt
   396  000071   2D5A(1)  		MOV		A, #5AH
   397  000072   1FCC(1)  		MOV		WDTR, A
   398  000073   C0C5(2)  	call	I2Cstart	;Start
   399  000074   C0DC(2)  	call	I2Cout1		;Device address
   400  000075   C0E7(2)  	call	I2Cout0
   401  000076   C0DC(2)  	call	I2Cout1
   402  000077   C0E7(2)  	call	I2Cout0
   403  000078   C0E7(2)  	call	I2Cout0
   404  000079   C0E7(2)  	call	I2Cout0
   405  00007A   C0E7(2)  	call	I2Cout0
   406  00007B   C0E7(2)  	call	I2Cout0		;R/W
   407  00007C             
   408  00007C   C0F2(2)  	call	I2CwaitAck	;wait ACK
   409  00007D   581A(1+S)  	bts1	I2CackFlag
   410  00007E   80BE(2)  	jmp	ReloadDataError
   411  00007F   2B1D(1)  	clr	ErrorCount
   412  000080             
   413  000080   C0E7(2)  	call	I2Cout0		;Word address
   414  000081   C0E7(2)  	call	I2Cout0
   415  000082   C0E7(2)  	call	I2Cout0
   416  000083   C0E7(2)  	call	I2Cout0
   417  000084   C0E7(2)  	call	I2Cout0
   418  000085   C0E7(2)  	call	I2Cout0
   419  000086   C0E7(2)  	call	I2Cout0
   420  000087   C0E7(2)  	call	I2Cout0
   421  000088             
   422  000088   C0F2(2)  	call	I2CwaitAck	;wait ACK
   423  000089   581A(1+S)  	bts1	I2CackFlag
   424  00008A   80BE(2)  	jmp	ReloadDataError
   425  00008B   2B1D(1)  	clr	ErrorCount
   426  00008C             
   427  00008C   C0C5(2)  	call	I2Cstart
   428  00008D   C0DC(2)  	call	I2Cout1		;Device address
   429  00008E   C0E7(2)  	call	I2Cout0
   430  00008F   C0DC(2)  	call	I2Cout1
   431  000090   C0E7(2)  	call	I2Cout0
   432  000091   C0E7(2)  	call	I2Cout0
   433  000092   C0E7(2)  	call	I2Cout0
   434  000093   C0E7(2)  	call	I2Cout0
   435  000094   C0DC(2)  	call	I2Cout1		;R/W
   436  000095             
   437  000095   C0F2(2)  	call	I2CwaitAck	;wait ACK
   438  000096   581A(1+S)  	bts1	I2CackFlag
   439  000097   80BE(2)  	jmp	ReloadDataError
   440  000098   2B1D(1)  	clr	ErrorCount
   441  000099             
   442  000099   C10C(2)  	call	I2CreadBit	;Read Data
   443  00009A   C10C(2)  	call	I2CreadBit
   444  00009B   C10C(2)  	call	I2CreadBit
   445  00009C   C10C(2)  	call	I2CreadBit
   446  00009D   C10C(2)  	call	I2CreadBit
   447  00009E   C10C(2)  	call	I2CreadBit
   448  00009F   C10C(2)  	call	I2CreadBit
   449  0000A0   C10C(2)  	call	I2CreadBit
   450  0000A1             
   451  0000A1   1E1B(1)  	mov	A,DataBuffer
   452  0000A2   1F08(1)  	mov	local_access_code0,A			;DigiHigh--by Figo
   453  0000A3   C0E7(2)  	call	I2Cout0		;out ACK
   454  0000A4             
   455  0000A4   C10C(2)  	call	I2CreadBit	;Read Data
   456  0000A5   C10C(2)  	call	I2CreadBit
   457  0000A6   C10C(2)  	call	I2CreadBit
   458  0000A7   C10C(2)  	call	I2CreadBit
   459  0000A8   C10C(2)  	call	I2CreadBit
   460  0000A9   C10C(2)  	call	I2CreadBit
   461  0000AA   C10C(2)  	call	I2CreadBit
   462  0000AB   C10C(2)  	call	I2CreadBit
   463  0000AC             
   464  0000AC   1E1B(1)  	mov	A,DataBuffer
   465  0000AD   1F09(1)  	mov	local_access_code1,A			;DigiLow--by Figo
   466  0000AE   C0E7(2)  	call	I2Cout0		;out ACK
   467  0000AF             
   468  0000AF   C10C(2)  	call	I2CreadBit	;Read Data
   469  0000B0   C10C(2)  	call	I2CreadBit
   470  0000B1   C10C(2)  	call	I2CreadBit
   471  0000B2   C10C(2)  	call	I2CreadBit
   472  0000B3   C10C(2)  	call	I2CreadBit
   473  0000B4   C10C(2)  	call	I2CreadBit
   474  0000B5   C10C(2)  	call	I2CreadBit
   475  0000B6   C10C(2)  	call	I2CreadBit
   476  0000B7   1E1B(1)  	mov	A,DataBuffer
   477  0000B8   1F0A(1)  	mov	local_access_code2,A				;WorkingState--by Figo
   478  0000B9   C0DC(2)  	call	I2Cout1		;out NACK
   479  0000BA             
   480  0000BA   C0D1(2)  	call	I2Cstop		;Stop
   481  0000BB             	clrwdt
   482  0000BB   2D5A(1)  		MOV		A, #5AH
   483  0000BC   1FCC(1)  		MOV		WDTR, A
   484  0000BD   0E00(2)  	ret
   485  0000BE             
   486  0000BE             ReloadDataError:
   487  0000BE   161D(1+S)  	incms	ErrorCount
   488  0000BF   0000(1)  	nop
   489  0000C0   2D0A(1)  	mov	A,#10
   490  0000C1   221D(1)  	sub	A,ErrorCount
   491  0000C2   5A86(1+S)  	bts1	FC
   492  0000C3   491A(1)   	bset	I2CjoinErrorFlag
   493  0000C4   806F(2)  	jmp	ReloadData_Loop
   494  0000C5             ;==========================================================	
   495  0000C5             I2Cstart:
   496  0000C5   4BC1(1)  	bset	SDA_IoSet	;set IO_SDA is Output port
   497  0000C6   4BD1(1)  	bset	SDA
   498  0000C7   4AC1(1)  	bset	SCL_IoSet	;set IO_SCL is Output port
   499  0000C8   4AD1(1)  	bset	SCL
   500  0000C9   C11B(2)  	call	Delay5us
   501  0000CA   C11B(2)  	call	Delay5us
   502  0000CB   43D1(1)  	bclr	SDA
   503  0000CC   C11B(2)  	call	Delay5us
   504  0000CD   C11B(2)  	call	Delay5us
   505  0000CE   42D1(1)  	bclr	SCL
   506  0000CF   C11B(2)  	call	Delay5us

⌨️ 快捷键说明

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