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

📄 main.lst

📁 display a char with the position and ascci data
💻 LST
📖 第 1 页 / 共 4 页
字号:
0000802D 01 95       <      		R2 = R1;
0000802E 49 93       <      		R1 = R1 LSL 2;
0000802F 02 03       <      		R1 += R2;
00008030 40 94       <      		R2 = 0;	
00008031 13 97 ED 01 <      		R3 = [DispXPos]; 	
00008033 48 46       <      		CMP R3, 8;
00008034 20 0E       <      		JB F_DispLowPosChar;
                     <      	F_DispHighPosChar:
00008035 0B 97 F0 01 <      		R3 = TB_CharCode
00008037 02 07       <      		R3 += R2
00008038 01 07       <      		R3 += R1
00008039 C3 96       <      		R3 = [R3];
0000803A 1B D7 EE 01 <      		[SegVal] = R3;
0000803C 59 97       <      		R3 = R1 LSL 4;
0000803D 5B 97       <      		R3 = R3 LSL 4;
0000803E 43 97       <      		R3 = R3 LSL 1;
0000803F 1B D7 EE 01 <      		[SegVal] = R3;
00008041 13 97 ED 01 <      		R3 = [DispXPos];
00008043 0B 07 CB 03 <      		R3 += TB_LcdAddr;
00008045 C3 96       <      		R3 = [R3];
00008046 02 07       <      		R3 +=R2;
00008047 1B D7 EF 01 <      		[SegAddr] = R3;
00008049 0B B7 FF 01 <      		R3 &= 0x01ff
0000804B 1B D7 EF 01 <      		[SegAddr] = R3;
0000804D 13 A7 EE 01 <      		R3 |= [SegVal];
0000804F 1B D7 EF 01 <      		[SegAddr] = R3; 
00008051 41 04       <      		R2 += 1;
00008052 45 44       <      		CMP R2, 5;
00008053 5F 0E       <      		JB F_DispHighPosChar;
00008054 1A EE       <      		JMP DisplayCharRet; 
                     <      	F_DispLowPosChar:
00008055 0B 97 F0 01 <      		R3 = TB_CharCode
00008057 01 07       <      		R3 += R1
00008058 02 07       <      		R3 += R2
00008059 C3 96       <      		R3 = [R3]
0000805A 1B D7 EE 01 <      		[SegVal] = R3;
0000805C 13 97 ED 01 <      		R3 = [DispXPos]
0000805E 0B 07 CB 03 <      		R3 += TB_LcdAddr
00008060 C3 96       <      		R3 = [R3]
00008061 02 07       <      		R3 += R2
00008062 1B D7 EF 01 <      		[SegAddr] = R3;
00008064 0B B7 80 FF <      		R3 &= 0xff80
00008066 1B D7 EF 01 <      		[SegAddr] = R3;
00008068 13 A7 EE 01 <      		R3 |= [SegVal]
0000806A 1B D7 EF 01 <      		[SegAddr] = R3;
0000806C 41 04       <      		R2 += 1;
0000806D 45 44       <      		CMP R2, 5;
0000806E 5A 0E       <      		JB F_DispLowPosChar;
                     <      	DisplayCharRet:
0000806F 90 9A       <      		RETF;	
                            	//----------------------------------------------------------------------------------------
                            	//----------------------------------------------------------------------------------------
00008070                    	.Code
                            	//----------------------------------------------------------------------------------------
                            	.public _main;
                            	_main:
00008070 40 F1              	        INT     OFF;                    //Disable Interrupt
00008071 40 92              	        R1 = 0;
00008072 19 D3 12 70        	        [P_WakeUp] = R1;                //disable all wakeup sources
00008074 19 D3 10 70        	        [P_Int] = R1;
00008076 09 93 AA 55        	        R1 = 0x55AA;                    //clear Watchdog
00008078 19 D3 16 70        	        [P_Watchdog_Clr] = R1;
0000807A 09 93 5D C0        	        R1 = B_8KHz+B_512Hz+B_128Hz+B_2Hz+B_Enable32768+B_Strong32768;
0000807C 19 D3 18 70        	        [P_TimeBaseSet] = R1;           // it's very important to keep 32KHz
                            	                                        // crystal running in strong mode
0000807E 11 93 13 70        	        R1 = [P_WakeUpClr];
00008080 19 D3 13 70        	        [P_WakeUpClr] = R1;             //clear all wakeup hardware flags
                            	
00008082 42 92              	        R1 = B_NormalCpuClock;
00008083 19 D3 15 70        	        [P_SystemClock] = R1;           // 1MHz/4 - for normal operation
                            	
00008085 40 F0 97 80        	        CALL    F_InitHardWare;         //reset hardware
00008087 40 F0 D9 80        	        CALL    F_ClrAllSRAM;
                            	
00008089 40 F0 E0 80        	        CALL    F_InitLcd;              //clear LCD dots, turn on LCD and
                            	                                        // set LCD contrast
0000808B 40 F0 EF 80        	        CALL    F_InitDisplay;
                            	
0000808D 11 93 11 70        	        R1 = [P_IntClr];
0000808F 19 D3 11 70        	        [P_IntClr] = R1;                //clear all interrupt requirement
00008091 09 93 A2 00        	        R1 = B_512HzInt+B_2HzInt+B_IoaInt;
00008093 19 D3 10 70        	        [P_Int] = R1;                   //set interrupt sources
00008095 43 F1              	        INT     FIQ,IRQ;
                            	//----------------------------------------------------------------------------------------
                            	MainLoop:	
00008096 41 EE              	        JMP     MainLoop;
                            	//////////////////////////////////////////////////////////////////////////////////////////
                            	//  Functions for Main Program
                            	//////////////////////////////////////////////////////////////////////////////////////////
                            	
                            	//----------------------------------------------------------------------------//
                            	F_InitHardWare:
00008097 40 92              	        R1 = 0;
00008098 19 D3 00 70        	        [P_IOA_Data] = R1;
0000809A 19 D3 02 70        	        [P_IOA_Dir] = R1;
0000809C 19 D3 14 70        	        [P_IoaWakeUp] = R1;
0000809E 09 93 00 80        	        R1 = 0x8000;                    //Enable IOA7 internal Pull-high resistor
000080A0 19 D3 03 70        	        [P_IOA_PullR] = R1;
                            	
000080A2 40 92              	        R1 = 0;
000080A3 19 D3 05 70        	        [P_IOB_Data] = R1;
000080A5 09 93 FF 00        	        R1 = 0x00FF;
000080A7 19 D3 07 70        	        [P_IOB_Dir] = R1;
                            	
000080A9 40 92              	        R1 = 0;
000080AA 19 D3 08 70        	        [P_IOC_Data] = R1;
000080AC 09 93 FF 00        	        R1 = 0x00FF;
000080AE 19 D3 0A 70        	        [P_IOC_Dir] = R1;
                            	
000080B0 40 92              	        R1 = 0;
000080B1 19 D3 0B 70        	        [P_IOD_Data] = R1;
000080B3 09 93 FF 00        	        R1 = 0x00FF;
000080B5 19 D3 0D 70        	        [P_IOD_Dir] = R1;
                            	
000080B7 4F 92              	        R1 = 0x000F;                    //IOC0 & IOC1 provide interrupt/wakeup
000080B8 19 D3 0E 70        	        [P_IOCD_Ctrl] = R1;             // at both rising & falling edges
                            	
000080BA 40 92              	        R1 = 0;
000080BB 19 D3 21 70        	        [P_BatDet] = R1;
000080BD 19 D3 26 70        	        [P_AdcCtrl] = R1;
000080BF 19 D3 25 70        	        [P_AgcCtrl] = R1;
000080C1 19 D3 2C 70        	        [P_PgaInSelect] = R1;
000080C3 19 D3 1A 70        	        [P_Tmr_Ctrl] = R1;
000080C5 19 D3 22 70        	        [P_DtmfTone] = R1;
000080C7 19 D3 23 70        	        [P_Ch0Envelope] = R1;
                            	//        [P_KeyScanCtrl] = R1;           //disable Key-Scan funcion that
                            	//        [P_KeyScanMode] = R1;           // share pins with LCD segments
                            	//        [P_KeyScanPort] = R1;
000080C9 19 D3 28 70        	        [P_RiDet] = R1;
000080CB 19 D3 2E 70        	        [P_LineDetCtrl] = R1;
                            	
000080CD 09 93 80 00        	        R1 = 0x0080;                    //Enable Auto Key Scan
000080CF 19 D3 3B 70        	        [P_KeyScanCtrl] = R1;
000080D1 09 93 7F 00        	        R1 = 0x007F;                    //IOA0~6 serve as Key Input port
000080D3 19 D3 3A 70        	        [P_KeyScanMode] = R1;
000080D5 40 92              	        R1 = 0;
000080D6 19 D3 3C 70        	        [P_KeyScanPort] = R1;
000080D8 90 9A              	        RETF;
                            	
                            	//----------------------------------------------------------------------------------------
                            	F_ClrAllSRAM:
000080D9 40 9A              	        BP = 0;
000080DA 40 92              	        R1 = 0;
                            	ClrSRAMLoop:
000080DB D5 D2              	        [BP++] = R1;
000080DC 0D 4B FF 03        	        CMP     BP,0x03FF;
000080DE 44 4E              	        JNZ     ClrSRAMLoop;
000080DF 90 9A              	        RETF;
                            	
                            	//----------------------------------------------------------------------------*/
                            	F_InitLcd:
000080E0 40 F0 E7 80        	        CALL    F_ClrLcd;       //clear all Lcd dots
                            	
000080E2 09 93 8F 80        	        R1 = B_Duty+B_LcdEn + 0x000F;
000080E4 19 D3 20 70        	        [P_LcdCtrl] = R1;
000080E6 90 9A              	        RETF;
                            	
                            	F_ClrLcd:
000080E7 40 92              	        R1 = 0;
000080E8 0A 95 00 71        	        R2 = P_Seg0;
                            	ClrLcdLoop:
000080EA D2 D2              	        [R2++] = R1;
000080EB 0A 45 27 71        	        CMP     R2,P_Seg39;
000080ED 44 8E              	        JBE     ClrLcdLoop;
000080EE 90 9A              	        RETF;
                            	//---------------------------------------------------------------------------------------------------
                            	//----------------------------------------------------------------------------*/
                            	F_InitDisplay:
000080EF 40 94              					R2 = 0;
000080F0 09 93 53 00        					R1 = 0X53;                  //S
000080F2 40 F0 26 80        	        CALL    _F_DisplayChar;     
000080F4 41 94              	        R2 = 1;
000080F5 09 93 75 00        					R1 = 0X75;                  //u
000080F7 40 F0 26 80        	        CALL    _F_DisplayChar;
000080F9 42 94              	        R2 = 2;
000080FA 09 93 6E 00        					R1 = 0X6e;                  //n
000080FC 40 F0 26 80        	        CALL    _F_DisplayChar;
000080FE 43 94              	        R2 = 3;
000080FF 09 93 64 00        					R1 = 0X64;                  //d
00008101 40 F0 26 80        	        CALL    _F_DisplayChar;
                            	       
00008103 45 94              	        R2 = 5;
00008104 09 93 54 00        					R1 = 0X54;                  //T
00008106 40 F0 26 80        	        CALL    _F_DisplayChar;
00008108 46 94              	        R2 = 6;
00008109 09 93 61 00        					R1 = 0X61;                  //a
0000810B 40 F0 26 80        	        CALL    _F_DisplayChar;
0000810D 47 94              	        R2 = 7;
0000810E 09 93 6F 00        					R1 = 0X6f;                  //o
00008110 40 F0 26 80        	        CALL    _F_DisplayChar;
                            	        
00008112 49 94              	        R2 = 9;
00008113 09 93 57 00        					R1 = 0X57;                  //W
00008115 40 F0 26 80        	        CALL    _F_DisplayChar;
00008117 4A 94              	        R2 = 10;
00008118 09 93 65 00        					R1 = 0X65;                  //e
0000811A 40 F0 26 80        	        CALL    _F_DisplayChar;
0000811C 4B 94              	        R2 = 11;
0000811D 09 93 69 00        					R1 = 0X69;                  //i
0000811F 40 F0 26 80        	        CALL    _F_DisplayChar;
                            	//------------------------------------------------------------------------------------------------------------
                            		 
0 error(s), 0 warning(s).

⌨️ 快捷键说明

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