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

📄 sleep.lst

📁 the sleep file .the program is used to goto sleep mode.
💻 LST
📖 第 1 页 / 共 5 页
字号:
                     <      	TW_DigitTime:
00005308 14 71 10 00 <      		.DW	P_Seg20,B_Com4,P_Seg20,B_Com5,P_Seg20,B_Com6
         14 71 20 00
         14 71 40 00
0000530E 15 71 10 00 <      		.DW	P_Seg21,B_Com4,P_Seg21,B_Com5,P_Seg21,B_Com6,P_Seg21,B_Com7,0
         15 71 20 00
         15 71 40 00
         15 71 80 00
         00 00      
00005317 16 71 10 00 <      		.DW	P_Seg22,B_Com4,P_Seg22,B_Com5,P_Seg22,B_Com6
         16 71 20 00
         16 71 40 00
0000531D 17 71 10 00 <      		.DW	P_Seg23,B_Com4,P_Seg23,B_Com5,P_Seg23,B_Com6,P_Seg23,B_Com7,0
         17 71 20 00
         17 71 40 00
         17 71 80 00
         00 00      
00005326 18 71 10 00 <      		.DW	P_Seg24,B_Com4,P_Seg24,B_Com5,P_Seg24,B_Com6
         18 71 20 00
         18 71 40 00
0000532C 19 71 10 00 <      		.DW	P_Seg25,B_Com4,P_Seg25,B_Com5,P_Seg25,B_Com6,P_Seg25,B_Com7,0
         19 71 20 00
         19 71 40 00
         19 71 80 00
         00 00      
00005335 1A 71 10 00 <      		.DW	P_Seg26,B_Com4,P_Seg26,B_Com5,P_Seg26,B_Com6
         1A 71 20 00
         1A 71 40 00
0000533B 1B 71 10 00 <      		.DW	P_Seg27,B_Com4,P_Seg27,B_Com5,P_Seg27,B_Com6,P_Seg27,B_Com7,0
         1B 71 20 00
         1B 71 40 00
         1B 71 80 00
         00 00      
                     <      	
                     <      	TW_MonthDay:
00005344 0E 71 80 00 <      		.DW	P_Seg14,B_Com7,P_Seg19,B_Com5,0
         13 71 20 00
         00 00      
                     <      	
                     <      	
                     <      	
                     <      	//-----------------------------------------------------------------------
                     <      	//-----------------------------------------------------------------------
                            	.const			CW_StackBottom	=0x05ff
                            	.public			_FIQ
                            	.public			_IRQ0
                            	.public			_IRQ1
                            	.public			_IRQ2
                            	.public			_IRQ3
                            	.public			_IRQ4
                            	.public			_IRQ5
                            	.public			_IRQ6
                            	.public			_IRQ7
                            	.public			_BREAK
                            	.public			_main
                            	//---------------------------------------------------------
0000000D                    	.RAM
0000000D 00 00              	RW_WakeUpBuf:		.dw		0
0000000E 00 00              	RW_SleepTime:		.dw		0
                            	//---------------------------------------------------------
00005349                    	.Code
                            	_main:
00005349 40 F1              		int	off			//Disable FIQ and IRQ
0000534A 09 93 AA 55        		r1 =	0x55aa			//Reset watchdog
0000534C 19 D3 16 70        		[P_WatchdogClr] = r1
0000534E 08 91 FF 05        		sp =	CW_StackBottom		//Initial stack pointer
00005350 42 92              		r1 =	B_NormalCpuClock
00005351 19 D3 15 70        		[P_SystemClock] = r1		//Give proper CPU clock
00005353 09 93 1D 80        		r1 =	B_2Hz+B_128Hz+B_512Hz+B_Enable32768
00005355 19 D3 18 70        		[P_TimeBaseSet] = r1		//Initial timebase
00005357 40 92              		r1 =	0x0000
00005358 19 D3 12 70        		[P_WakeUp] = r1			//Disable all wake up sourcese
0000535A 11 93 13 70        		r1 =	[P_WakeUpClr]
0000535C 19 D3 13 70        		[P_WakeUpClr] = r1		//Clear all wake up event flags
0000535E 09 C3 FF 03        		test	r1,0x03ff
00005360 13 5E              		jz	?L_PowerOnInit
00005361 19 D3 0D 00        		[RW_WakeUpBuf] = r1		//Store wake up flag
00005363 09 C3 80 00        		test	r1,0x0080		//Check if 2Hz timer wake up
00005365 05 5E              		jz	?L_TwoHzWakeCheckOk	//No
00005366 00 EE              		nop
00005367 00 EE              		nop
00005368 00 EE              		nop
00005369 40 F0 EA 53        		Call	F_IRQ7Service		//Yes, call 2Hz timer service routine
                            	?L_TwoHzWakeCheckOk:
0000536B 11 93 0D 00        		r1 =	[RW_WakeUpBuf]
0000536D 42 C2              		test	r1,B_IoaInt		//Check if IOA wake up
0000536E 03 5E              		jz	?L_NotIOAWakeUp		//No
0000536F 70 92              		r1 =	0x0030			//Yes, set automatic sleep time limit
00005370 19 D3 0E 00        		[RW_SleepTime] = r1		//for key scan
                            	?L_NotIOAWakeUp:
00005372 0F 9F 9C 53        		goto	?L_InitInt
                            	?L_PowerOnInit:
00005374 40 92              		r1 =	0x0000
00005375 19 D3 02 70        		[P_IOA_Dir] = r1		//Set IOA0~IOA7 as input ports
00005377 5F 92              		r1 =	0x001f
00005378 19 D3 07 70        		[P_IOB_Dir] = r1		//Set IOB0~IOB5 as Output ports
0000537A 09 93 00 1F        		r1 =	0x1f00
0000537C 19 D3 03 70        		[P_IOA_PullR] = r1		//Enable Pull-high Resistor of IOA0~IOA4
                            		
0000537E 40 92              		r1 =	0x0000			//Clear RAM
0000537F 01 95              		r2 =	r1
                            	?L_ClrRamLoop:
00005380 D2 D2              		[r2++]	=r1
00005381 0A 45 00 04        		cmp	r2,0x400
00005383 44 0E              		jb	?L_ClrRamLoop
                            	
00005384 0A 95 00 71        		r2 =	0x7100			//Clear LCD display RAM
                            	?L_ClrLcdLoop:
00005386 D2 D2              		[r2++]	= r1
00005387 0A 45 1C 71        		cmp	r2,0x711c
00005389 44 0E              		jb	?L_ClrLcdLoop
                            	
0000538A 09 93 CF 00        		r1 =	0x00cf
0000538C 19 D3 20 70        		[P_LcdCtrl]=r1			//Enable LCD display
                            	
0000538E 09 93 04 11        		r1 =	0x1104
00005390 19 D3 0B 00        		[RW_Date] = r1			//Initialize date
00005392 09 93 17 09        		r1 =	0x0917
00005394 19 D3 0C 00        		[RW_Time] = r1			//Initialize time
                            		
00005396 40 F0 90 51        		call	F_ShowMonthDay		//Show date and time on LCD
00005398 40 F0 AC 51        		call	F_ShowDate
0000539A 40 F0 9A 51        		call	F_ShowTime
                            	?L_InitInt:
                            	
0000539C 09 93 A0 00        		r1 =	B_2HzInt+B_512HzInt	
0000539E 19 D3 10 70        		[P_Int] = r1
000053A0 43 F1              		INT	FIQ,IRQ
                            	//---------------------------------------------------------	
                            	L_MainLoop:
000053A1 09 93 AA 55        		R1 =	0x55aa
000053A3 19 D3 16 70        		[P_WatchdogClr] = R1
000053A5 40 F0 78 50        		call	F_KeyScan
000053A7 09 93 AA 55        		R1 =	0x55aa
000053A9 19 D3 16 70        		[P_WatchdogClr] = R1
000053AB 40 F0 C7 53        		call	F_KeyDeal
000053AD 11 93 0E 00        		r1 =	[RW_SleepTime]
000053AF 4F 4E              		jnz	L_MainLoop
                            	//---------------------------------------------------------
                            	F_GotoSleep:
000053B0 40 F1              		int	off
000053B1 09 93 FF 03        		r1 =	0x03ff			//Clear all interrupt event flags
000053B3 19 D3 11 70        		[P_IntClr] = r1
000053B5 40 92              		r1 =	0x0000			//Disable all interrupt resourcese
000053B6 19 D3 10 70        		[P_Int]	= r1
000053B8 09 93 82 00        		r1 =	0x0082			//Enable 2Hz wakeup and IOA wake up
000053BA 19 D3 12 70        		[P_WakeUp] = r1
000053BC 5F 92              		r1 =	0x001F
000053BD 19 D3 14 70        		[P_IoaWakeUp] = r1		//Eanble IOA0~IOA4 wake up
000053BF 40 92              		r1 =	0x0000
000053C0 19 D3 05 70        		[P_IOB_Data] = r1		//IOB0~IOB4 output low voltage
000053C2 11 93 04 70        		r1 =	[P_IOA_Latch]		//Latch the current pad status of 
                            						//IOA0~IOA7 for key-change wakeup function
000053C4 47 92              		r1 =	0x0007
000053C5 19 D3 15 70        		[P_SystemClock] = r1		//Enter sleep mode
                            	//--------------------------------------------------------------
                            	//Key Deal Routine
                            	//--------------------------------------------------------------
                            	F_KeyDeal:
000053C7 12 95 06 00        		R2 =	[RPtr_KeyQueueBuf]
000053C9 0A C5 00 0F        		test	r2,0x0f00		//Check if have key in key buffer
000053CB 02 4E              		jnz	?L_KeyValueNotNull	
000053CC 0F 9F E9 53        		goto	?L_KeyDealOver		//No, key deal over
                            	?L_KeyValueNotNull:
000053CE 4F B4              		r2&=	0x000f			//Yes, get key index in buffer
                            		
000053CF 62 97              		R3 =	R2 lsr 1		//Get key value
000053D0 0B 07 07 00        		R3+=	SW_KeyQueueBuf
000053D2 C3 92              		R1 =	[R3]			
000053D3 41 C4              		test	R2,0x0001
000053D4 02 5E              		jz	?L_KeyValueOk
000053D5 79 93              		R1 =	R1 lsr 4
000053D6 79 93              		R1 =	R1 lsr 4
                            	?L_KeyValueOk:
000053D7 09 B3 FF 00        		R1&=	0x00ff
                            		
000053D9 12 95 06 00        		R2 =	[RPtr_KeyQueueBuf]	//Key buffer point shift
000053DB 41 04              		R2+=	0x0001			//to next key value
000053DC 0A 25 00 01        		R2-=	0x0100
000053DE 0A B5 F7 FF        		R2&=	0xfff7
000053E0 1A D5 06 00        		[RPtr_KeyQueueBuf] = R2
                            	//--------------------------------------------------------------
000053E2 4D 42              		cmp	r1,0x000d		//Check if numeric key
000053E3 05 9E              		ja	?L_KeyDealOver		//No, not deal with it
                            	
000053E4 0D 9B BD 52        		bp =	Digit13			//Yes, show it on LCD
000053E6 01 95              		r2 =	r1
000053E7 40 F0 D2 51        		call	F_ShowDigit
                            	?L_KeyDealOver:
000053E9 90 9A              		retf
                            	//--------------------------------------------------------------
                            	F_IRQ7Service:
000053EA 11 93 18 71        		r1 =	[P_ColonSeg]		//Flash colon on LCD
000053EC 09 83 80 00        		r1^=	B_ColonCom
000053EE 19 D3 18 71        		[P_ColonSeg] = r1
000053F0 90 9A              		retf
                            	//--------------------------------------------------------------
                            	
                            	//--------------------------------------------------------------
                            	//Interrupt Routine
00005009                    	.TEXT
                            	_FIQ:	
00005009 A8 DA              		push r1,r5 to [sp]
0000500A 09 93 00 02        		r1=	B_Ioc1Int
0000500C 19 D3 11 70        		[P_IntClr] = r1 	
0000500E A8 90              		pop r1,r5 from [sp]
0000500F 98 9A              		reti 
                            	//----------------------------------------------------------
                            	_IRQ0:	
00005010 A8 DA              		push	r1,r5 to [sp] 
00005011 09 93 01 01        		r1=	B_Ioc0Int+B_RiInt
00005013 19 D3 11 70        		[P_IntClr] = r1
00005015 A8 90              		pop r1,r5 from [sp] 
00005016 98 9A              		reti
                            	//----------------------------------------------------------
                            	_IRQ1:	
00005017 A8 DA              		push	r1,r5 to [sp]
00005018 42 92              		r1 =	B_IoaInt
00005019 19 D3 11 70        		[P_IntClr] = r1
0000501B A8 90              		pop	r1,r5 from [sp]
0000501C 98 9A              		reti 
                            	//----------------------------------------------------------
                            	_IRQ2:	
0000501D A8 DA              		push r1,r5 to [sp]
0000501E 44 92              		r1=	B_TmrAInt

⌨️ 快捷键说明

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