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

📄 main.lst

📁 ATT7026汇编语言读写程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
                +1   668     
                +1   669     ;********************************************************************
                +1   670     ; Send Data To ATT7022 For Calibrate
                +1   671     ;--------------------------------------------------------------------
0213            +1   672     SEntrySendCalibrateData:
                +1   673             ; Send register 0x01 to 0x21
0213 7880       +1   674             mov R0,#80h;
0215 7A80       +1   675             mov R2,#80h;
0217            +1   676     LEntrySendCalibrateDataLoop1:
0217 8A33       +1   677             mov vSPI_CM,R2;
0219 0A         +1   678             inc R2;
021A 8634       +1   679             mov vSPI_DH,@R0;
021C 08         +1   680             inc R0;
021D 8635       +1   681             mov vSPI_DM,@R0;
021F 08         +1   682             inc R0;
0220 8636       +1   683             mov vSPI_DL,@R0;
0222 08         +1   684             inc R0;
0223 51A7       +1   685             call SEntryWriteSpi;
0225 BAA2EF     +1   686             cjne R2,#0A2h,LEntrySendCalibrateDataLoop1;
                +1   687             ; Send register 0x25
                +1   688     ;       mov vSPI_CM,#0A5h;
                +1   689     ;       mov vSPI_DH,@R0;
0228 08         +1   690             inc R0;
                +1   691     ;       mov vSPI_DM,@R0;
0229 08         +1   692             inc R0;
                +1   693     ;       mov vSPI_DL,@R0;
022A 08         +1   694             inc R0;
                +1   695     ;       call SEntryWriteSpi;
                +1   696             ; Send register 0x01 to 0x21
022B 7AA6       +1   697             mov R2,#0A6h;
022D            +1   698     LEntrySendCalibrateDataLoop2:
022D 8A33       +1   699             mov vSPI_CM,R2;
022F 0A         +1   700             inc R2;
0230 8634       +1   701             mov vSPI_DH,@R0;
0232 08         +1   702             inc R0;
0233 8635       +1   703             mov vSPI_DM,@R0;
0235 08         +1   704             inc R0;
0236 8636       +1   705             mov vSPI_DL,@R0;
0238 08         +1   706             inc R0;
0239 51A7       +1   707             call SEntryWriteSpi;
023B BAA9EF     +1   708             cjne R2,#0A9h,LEntrySendCalibrateDataLoop2;
023E            +1   709     LEntrySendCalibrateDataEnd:
023E            +1   710     LEntrySendCalibrateDataRts:
023E 22         +1   711             ret;
                +1   712     
                     713     
                     714     ;$include (SpiOp.inc)
                +1   715     ;********************************************************************
                +1   716     ; Read Data From ATT7022
                +1   717     ;       input:  vSPI_CM is Address
                +1   718     ;       output: 
A51 MACRO ASSEMBLER  MAIN                                                                 06/16/2003 09:39:59 PAGE    12

                +1   719     ;               vSPI_DH,vSPI_DM,vSPI_DL is Data
                +1   720     ;--------------------------------------------------------------------
023F            +1   721     SEntryReadSpi:
                +1   722             ; Enable SPI
023F C290       +1   723             clr SPI_CK;
0241 C291       +1   724             clr SPI_CS;
                +1   725             ; Send 8bits Command
0243 7F08       +1   726             mov R7,#08h;
0245 E533       +1   727             mov a,vSPI_CM;
0247            +1   728     LEntryReadSpiSendCommandLoop:
0247 33         +1   729             rlc a;
0248 4008       +1   730             jc LEntryReadSpiSendCommandBitHi;
024A            +1   731     LEntryReadSpiSendCommandBitLo:
                +1   732             MacroSpiDoutLo;
                +1   736     ;       nop;
0250 8006       +1   737             jmp LEntryReadSpiSendCommandBitEnd;
0252            +1   738     LEntryReadSpiSendCommandBitHi:
                +1   739             MacroSpiDoutHi;
                +1   743     ;       nop;
0258            +1   744     LEntryReadSpiSendCommandBitEnd:
0258 DFED       +1   745             djnz R7,LEntryReadSpiSendCommandLoop;
025A C292       +1   746             clr SPI_DO;
                +1   747             ; waiting...
                +1   748             ; Read 24bits Data
025C 7F08       +1   749             mov R7,#08h;
025E 7400       +1   750             mov a,#00h;
0260            +1   751     LEntryReadSpiReadDataHighLoop:
0260 23         +1   752             rl a;
0261 D290       +1   753             setb SPI_CK;
                +1   754     ;       nop;
0263 D293       +1   755             setb SPI_DI;
0265 309304     +1   756             jnb SPI_DI,LEntryReadSpiReadDataHighLoopBitLo;
0268            +1   757     LEntryReadSpiReadDataHighLoopBitHi:
0268 D2E0       +1   758             setb ACC.0;
026A 8002       +1   759             jmp LEntryReadSpiReadDataHighLoopBitEnd;
026C            +1   760     LEntryReadSpiReadDataHighLoopBitLo:
026C C2E0       +1   761             clr ACC.0;
026E            +1   762     LEntryReadSpiReadDataHighLoopBitEnd:
026E C290       +1   763             clr SPI_CK;
0270 DFEE       +1   764             djnz R7,LEntryReadSpiReadDataHighLoop;
0272 F534       +1   765             mov vSPI_DH,a
                +1   766     
0274 7F08       +1   767             mov R7,#08h;
0276 7400       +1   768             mov a,#00h;
0278            +1   769     LEntryReadSpiReadDataMidLoop:
0278 23         +1   770             rl a;
0279 D290       +1   771             setb SPI_CK;
                +1   772     ;       nop;
027B D293       +1   773             setb SPI_DI;
027D 309304     +1   774             jnb SPI_DI,LEntryReadSpiReadDataMidLoopBitLo;
0280            +1   775     LEntryReadSpiReadDataMidLoopBitHi:
0280 D2E0       +1   776             setb ACC.0;
0282 8002       +1   777             jmp LEntryReadSpiReadDataMidLoopBitEnd;
0284            +1   778     LEntryReadSpiReadDataMidLoopBitLo:
0284 C2E0       +1   779             clr ACC.0;
0286            +1   780     LEntryReadSpiReadDataMidLoopBitEnd:
0286 C290       +1   781             clr SPI_CK;
0288 DFEE       +1   782             djnz R7,LEntryReadSpiReadDataMidLoop;
028A F535       +1   783             mov vSPI_DM,a
                +1   784             
028C 7F08       +1   785             mov R7,#08h;
028E 7400       +1   786             mov a,#00h;
0290            +1   787     LEntryReadSpiReadDataLowLoop:
0290 23         +1   788             rl a;
0291 D290       +1   789             setb SPI_CK;
                +1   790     ;       nop;
A51 MACRO ASSEMBLER  MAIN                                                                 06/16/2003 09:39:59 PAGE    13

0293 D293       +1   791             setb SPI_DI;
0295 309304     +1   792             jnb SPI_DI,LEntryReadSpiReadDataLowLoopBitLo;
0298            +1   793     LEntryReadSpiReadDataLowLoopBitHi:
0298 D2E0       +1   794             setb ACC.0;
029A 8002       +1   795             jmp LEntryReadSpiReadDataLowLoopBitEnd;
029C            +1   796     LEntryReadSpiReadDataLowLoopBitLo:
029C C2E0       +1   797             clr ACC.0;
029E            +1   798     LEntryReadSpiReadDataLowLoopBitEnd:
029E C290       +1   799             clr SPI_CK;
02A0 DFEE       +1   800             djnz R7,LEntryReadSpiReadDataLowLoop;
02A2 F536       +1   801             mov vSPI_DL,a
                +1   802     
                +1   803             ; Disable SPI
02A4 D291       +1   804             setb SPI_CS;
02A6            +1   805     LEntryReadSpiEnd:
02A6            +1   806     LEntryReadSpiRts:
02A6 22         +1   807             ret;
                +1   808     
                +1   809     ;********************************************************************
                +1   810     ; Write Data to ATT7022
                +1   811     ;       input:  vSPI_CM is Address
                +1   812     ;               vSPI_DH,vSPI_DM,vSPI_DL is Data
                +1   813     ;--------------------------------------------------------------------
02A7            +1   814     SEntryWriteSpi:
                +1   815             ; Enable SPI
02A7 C290       +1   816             clr SPI_CK;
02A9 C291       +1   817             clr SPI_CS;
                +1   818             ; Send 8bits Command
02AB 7908       +1   819             mov R1,#08h;
02AD E533       +1   820             mov a,vSPI_CM;
02AF            +1   821     LEntryWriteSpiSendCommandLoop:
02AF 33         +1   822             rlc a;
02B0 4009       +1   823             jc LEntryWriteSpiSendCommandBitHi;
02B2            +1   824     LEntryWriteSpiSendCommandBitLo:
                +1   825             MacroSpiDoutLo;
02B8 00         +1   829             nop;
02B9 8007       +1   830             jmp LEntryWriteSpiSendCommandBitEnd;
02BB            +1   831     LEntryWriteSpiSendCommandBitHi:
                +1   832             MacroSpiDoutHi;
02C1 00         +1   836             nop;
02C2            +1   837     LEntryWriteSpiSendCommandBitEnd:
02C2 D9EB       +1   838             djnz R1,LEntryWriteSpiSendCommandLoop;
                +1   839             ; Send 24Bits Data
02C4 7908       +1   840             mov R1,#08h;
02C6 E534       +1   841             mov a,vSPI_DH;
02C8            +1   842     LEntryWriteSpiSendDataHighLoop:
02C8 33         +1   843             rlc a;
02C9 4009       +1   844             jc LEntryWriteSpiSendDataHighBitHi;
02CB            +1   845     LEntryWriteSpiSendDataHighBitLo:
                +1   846             MacroSpiDoutLo;
02D1 00         +1   850             nop;
02D2 8007       +1   851             jmp LEntryWriteSpiSendDataHighBitEnd;
02D4            +1   852     LEntryWriteSpiSendDataHighBitHi:
                +1   853             MacroSpiDoutHi;
02DA 00         +1   857             nop;
02DB            +1   858     LEntryWriteSpiSendDataHighBitEnd:
02DB D9EB       +1   859             djnz R1,LEntryWriteSpiSendDataHighLoop;
                +1   860     
02DD 7908       +1   861             mov R1,#08h;
02DF E535       +1   862             mov a,vSPI_DM;
02E1            +1   863     LEntryWriteSpiSendDataMidLoop:
02E1 33         +1   864             rlc a;
02E2 4009       +1   865             jc LEntryWriteSpiSendDataMidBitHi;
02E4            +1   866     LEntryWriteSpiSendDataMidBitLo:
                +1   867             MacroSpiDoutLo;
02EA 00         +1   871             nop;
A51 MACRO ASSEMBLER  MAIN                                                                 06/16/2003 09:39:59 PAGE    14

02EB 8007       +1   872             jmp LEntryWriteSpiSendDataMidBitEnd;
02ED            +1   873     LEntryWriteSpiSendDataMidBitHi:
                +1   874             MacroSpiDoutHi;
02F3 00         +1   878             nop;
02F4            +1   879     LEntryWriteSpiSendDataMidBitEnd:
02F4 D9EB       +1   880             djnz R1,LEntryWriteSpiSendDataMidLoop;
                +1   881     
02F6 7908       +1   882             mov R1,#08h;
02F8 E536       +1   883             mov a,vSPI_DL;
02FA            +1   884     LEntryWriteSpiSendDataLowLoop:
02FA 33         +1   885             rlc a;
02FB 4009       +1   886             jc LEntryWriteSpiSendDataLowBitHi;
02FD            +1   887     LEntryWriteSpiSendDataLowBitLo:
                +1   888             MacroSpiDoutLo;
0303 00         +1   892             nop;
0304 8007       +1   893             jmp LEntryWriteSpiSendDataLowBitEnd;
0306            +1   894     LEntryWriteSpiSendDataLowBitHi:
                +1   895             MacroSpiDoutHi;
030C 00         +1   899             nop;
030D            +1   900     LEntryWriteSpiSendDataLowBitEnd:
030D D9EB       +1   901             djnz R1,LEntryWriteSpiSendDataLowLoop;
                +1   902     
                +1   903             ; Disable SPI
030F C292       +1   904             clr SPI_DO;
0311 D291       +1   905             setb SPI_CS;
0313            +1   906     LEntryWriteSpiEnd:
0313            +1   907     LEntryWriteSpiRts:
0313 22         +1   908             ret;
                +1   909     
                +1   910     ;********************************************************************
                +1   911     ; Read Data From ATT7022 For LCD Display
                +1   912     ;       output: 
                +1   913     ;               vSPI_DH,vSPI_DM,vSPI_DL is Data
                +1   914     ;--------------------------------------------------------------------
0314            +1   915     SEntryReadSpiForDisplay:
0314 900330     +1   916             mov DPTR,#PTabDataAddress
0317 E537       +1   917             mov a,vKeyProc;
0319 6014       +1   918             jz SEntryReadSpiForDisplayEnd;
031B 23         +1   919             rl a;
031C C0E0       +1   920             push acc;
031E 93         +1   921             movc a,@a+DPTR;
031F F533       +1   922             mov vSPI_CM,a;
0321 D0E0       +1   923             pop acc;

⌨️ 快捷键说明

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