亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? conf_tny.a51

?? 基于Keil RTX51Tiny的遠程監控采集系統從設備開發
?? A51
?? 第 1 頁 / 共 2 頁
字號:
$NOMOD51
;------------------------------------------------------------------------------
;  This file is part of the RTX-51 TINY  Real-Time Operating System Package
;  Copyright KEIL ELEKTRONIK GmbH and Keil Software, Inc. 1991-2002
;  Version 2.01
;------------------------------------------------------------------------------
;  CONF_TNY.A51:  This code allows the configuration of the
;                 RTX-51 TINY Real-Time Operating System
;
;  Copy this file to your project folder and add the copy to your uVision2
;  project.  You can customize several parameters of RTX51 Tiny within this
;  configuration file.
;
;  If you use command line tools, translate this file with:
;
;     Ax51 CONF_TNY.A51
;
;  If you use command line tools, link the modified CONF_TNY.OBJ file to 
;  your application with:
;
;     Lx51 <your object file list>, CONF_TNY.OBJ <controls>
;
;------------------------------------------------------------------------------
;
;  RTX-51 TINY Hardware-Timer
;  ==========================
;
;  With the following EQU statements the initialization of the RTX-51 TINY
;  Hardware-Timer can be defined (RTX-51 TINY uses the 8051 Timer 0 for 
;  controlling RTX-51 software timers).
;
;  Define the register bank used for the timer interrupt.
INT_REGBANK	EQU	1	; default is Registerbank 1
;
;  Define Hardware-Timer tick time in 8051 machine cycles.
INT_CLOCK	EQU	1000	; default is 10000 cycles
;
;  Define Round-Robin Timeout in Hardware-Timer ticks.
TIMESHARING	EQU     0	; default is 5 Hardware-Timer ticks.
;		                ; 0 disables Round-Robin Task Switching
;
;  Long User Interrupt Routines: set to 1 if your application contains 
;  user interrupt functions that may take longer than a hardware timer 
;  interval for execution.
LONG_USR_INTR	EQU	0	; 0 user interrupts execute fast.
;                               ; 1 user interrupts take long execution times.
;
;
;------------------------------------------------------------------------------
;
;  USER CODE FOR 8051 HARDWARE TIMER INTERRUPT
;  ===========================================
;
;  The following macro defines the code executed on a hardware timer interrupt.
;
;  Define instructions executed on a hardware timer interrupt.
HW_TIMER_CODE	MACRO
				; Empty Macro by default
		RETI
		ENDM
;
;
;------------------------------------------------------------------------------
;
;  CODE BANKING SUPPORT
;  ====================
;
;  The following EQU statement controls the code banking support for RTX51 TINY.
;
;  Enable or disable code banking support
CODE_BANKING     EQU     0      ; 0 (default) application uses no code banking
;                               ; 1 application uses code banking
;
;------------------------------------------------------------------------------
;
;  RTX-51 TINY Stack Space
;  =======================
;
;  The following EQU statements defines the size of the internal RAM used
;  for stack area and the minimum free space on the stack.  A macro defines
;  the code executed when there is there is not enough free stack on the
;  CPU stack.
;
;  Define the highest RAM address used for CPU stack
RAMTOP		EQU	0FFH	; default is address (256-1)
;
FREE_STACK	EQU	20	; default is 20 bytes free space on stack
;                               ; the value 0 disables stack checking
;
STACK_ERROR	MACRO
		CLR	EA	; disable interrupts
		SJMP	$	; endless loop if stack space is exhausted
		ENDM
;
;
;------------------------------------------------------------------------------
;
;  8051 CPU IDLE CODE
;  ==================
;
;  Many 8051 devices provide an IDLE MODE that reduces power consumption and
;  EMC.  The following macro defines the code executed when there is no 
;  ready task in the system.  The code must set the CPU into an IDLE MODE
;  that stops instruction execution until an 8051 hardware interrupt occurs. 
;

; Disable or Enable CPU_IDLE CODE
CPU_IDLE_CODE   EQU     1       ; 0  CPU_IDLE MACRO is not inserted
                                ; 1  CPU_IDLE MACRO is executed

PCON            DATA    087H    ; Power Control SFR on most 8051 devices

; Stop CPU execution until hardware interrupt; executed when there is no 
; active task in the system. 
CPU_IDLE	MACRO
		ORL	PCON,#1	; set 8051 CPU to IDLE
		ENDM
;
;
;------------------------------------------------------------------------------
;----------------- !!! End of User Configuration Part    !!! ------------------
;----------------- !!! Do not modify code sections below !!! ------------------
;------------------------------------------------------------------------------

; SFR Symbols
PSW     DATA    0D0H
ACC     DATA    0E0H
B       DATA    0F0H
SP      DATA    81H
DPL     DATA    82H
DPH     DATA    83H
TCON    DATA    88H
TMOD    DATA    89H
TL0     DATA    8AH
TL1     DATA    8BH
TH0     DATA    8CH
TH1     DATA    8DH
IE      DATA    0A8H

; TCON
TF1     BIT     8FH
TR1     BIT     8EH
TF0     BIT     8DH
TR0     BIT     8CH
IE1     BIT     8BH
IT1     BIT     8AH
IE0     BIT     89H
IT0     BIT     88H
; IE 
EA      BIT     0AFH
ES      BIT     0ACH
ET1     BIT     0ABH
EX1     BIT     0AAH
ET0     BIT     0A9H
EX0     BIT     0A8H

; Check Configuration Values


		NAME	?RTX51_TINY_KERNAL

PUBLIC	?RTX_CURRENTTASK 
PUBLIC	?RTX_RAMTOP
PUBLIC  os_switch_task
PUBLIC  ?RTX?SET_ISR

EXTRN	NUMBER (?RTX_MAXTASKN)		; max Task Number

?RTX_RAMTOP       EQU   RAMTOP
?RTX_CLOCK	  EQU	-INT_CLOCK

?RTX_REGISTERBANK EQU	INT_REGBANK * 8
		  DSEG	AT    ?RTX_REGISTERBANK
		  DS	2     ; temporary space
?RTX_SAVEACC:     DS	1
saveacc		  EQU	R2    ; for access in interrupt service routine
?RTX_SAVEPSW:     DS	1
savepsw		  EQU	R3    ; for access in interrupt service routine
?RTX_CURRENTTASK: DS	1
currenttask       EQU	R4    ; for access in interrupt service routine

IF (TIMESHARING <> 0)
?RTX_ROBINTIME:   DS	1
robintime	  EQU	R5    ; for access in interrupt service routine
ENDIF

IF (CODE_BANKING <> 0)
EXTRN	DATA	(?B_CURRENTBANK)
EXTRN   CODE    (?B_RESTORE_BANK)
ENDIF


;------------------------------------------------
; Table of Task Entry Pointers
;------------------------------------------------
PUBLIC	?RTX_TASKENTRY

?RTX?TASKENT?S  SEGMENT CODE
		RSEG	?RTX?TASKENT?S
?RTX_TASKENTRY:	DS	2

;------------------------------------------------
; Table of Stack Pointers for each task
;------------------------------------------------
PUBLIC	?RTX_TASKSP

?RTX?TASKSP?S   SEGMENT	IDATA
		RSEG	?RTX?TASKSP?S
?RTX_TASKSP:	DS	1

;------------------------------------------------
; Table of Task Timer/State Pointers
;------------------------------------------------
PUBLIC	?RTX_TASKSTATUS

?RTX?TASKSTATE?S  SEGMENT IDATA
		  RSEG	  ?RTX?TASKSTATE?S
?RTX_TASKSTATUS:
TimerVal:	DS	1	; Task Timer (Software Timer for each task)
TaskState:	DS	1       ; Task Status (state of each Task)

; Definitions for Bits in Task State
;  TaskState.0  = Wait for Signal
;  TaskState.1  = Wait for TimeOut
;  TaskState.2  = Signal Flag
;  TaskState.3  = TimeOut Flag
;  TaskState.4  = Task Ready (Wait for Running)
;  TaskState.5  = Task Active (enabled with os_create)
;  TaskState.6  = Round Robin Time Out
;  TaskState.7  = Run Flag

; byte mask definitions
K_SIG	        EQU	1
K_TMO	        EQU	2
SIG_EVENT	EQU	4
TMO_EVENT	EQU	8
K_READY		EQU	16
K_ACTIVE	EQU	32
K_ROBIN		EQU	64
K_IVL           EQU     128  ; not a task state bit; only used in os_wait
RDY_EVENT       EQU     128  ; READY status flag
K_RDY           EQU     128  ; READY status flag

; bit position definitions
B_WAITSIG	EQU	0
B_WAITTIM	EQU	1
B_SIGNAL	EQU	2
B_TIMEOUT	EQU	3
B_READY		EQU	4
B_ACTIVE	EQU	5
B_ROBIN		EQU	6
B_IVL           EQU     7    ; not a task state bit; only used in os_wait
B_RDY           EQU     7


IF (TIMESHARING OR CPU_IDLE_CODE)
?RTX?BITS	SEGMENT	BIT
		RSEG	?RTX?BITS
ENDIF

IF (TIMESHARING)
?RTX_TS_DELAY:	DBIT	1       ; Status bit set when task switch in progress
ENDIF

IF (CPU_IDLE_CODE)
?RTX_ISR_SIG:	DBIT	1	; Status bit set when interrupt or os_set_signal
ENDIF


		CSEG	AT	0BH
                JMP	TIMERINT

?RTX?CODE       SEGMENT CODE
                RSEG	?RTX?CODE
		USING	0		; Registerbank 0 for following code

IF (FREE_STACK <> 0)
?RTX_STACKERROR:
                STACK_ERROR             ; User defined Stack Error Code
ENDIF

HW_TIMER:	HW_TIMER_CODE

TIMERINT:

IF (LONG_USR_INTR)
		PUSH	ACC
		MOV	A,PSW
		ANL	A,#018H
		XRL	A,#?RTX_REGISTERBANK
		JNZ	CONT_TIMINT
; avoid recursive timer interrupt
		POP	ACC
		RETI		; Return from Recursive Timer Interrupt
CONT_TIMINT:    POP	ACC

ENDIF

		CALL	HW_TIMER	; Enable Interrupts again.

		MOV	?RTX_SAVEPSW,PSW
		MOV	PSW,#?RTX_REGISTERBANK
		MOV	saveacc,A
; Update 8051 Interrupt Timer
		CLR	TR0
		MOV	A,TL0
		ADD	A,#LOW (?RTX_CLOCK + 7)
		MOV	TL0,A
		MOV	A,TH0
		ADDC	A,#HIGH (?RTX_CLOCK + 7)
		MOV	TH0,A
		SETB	TR0

IF (FREE_STACK <> 0)
; Check if enough free stack is available
		MOV	A,currenttask
		ADD	A,#?RTX?TASKSP?S+1
		MOV	R0,A
		MOV	A,@R0
		CJNE	currenttask,#?RTX_MAXTASKN,checkstack
		MOV	A,#RAMTOP
checkstack:	CLR	C
		SUBB	A,SP
		CJNE	A,#FREE_STACK,$+3
		JC	?RTX_STACKERROR
ENDIF

; Update & Check Task Timers
		MOV	R1,#?RTX_MAXTASKN+1
		MOV	R0,#?RTX?TASKSTATE?S
TIMERLOOP:	DEC	@R0          ; Decrement timer
		MOV	A,@R0
		INC	R0           ; advance to TaskState
		JNZ	NoTimeout
		CLR	EA
		MOV	A,@R0
		JNB	ACC.B_WAITTIM,NoWaitTimeout
		ORL	A,#(K_READY+TMO_EVENT)
		MOV	@R0,A
NoWaitTimeout:  SETB	EA
NoTimeout:	INC	R0           ; advance to TaskTimer
		DJNZ	R1,TIMERLOOP

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av不卡| 欧美午夜不卡在线观看免费| 日韩精品成人一区二区在线| 亚洲精品一卡二卡| 一区二区在线观看免费| 亚洲欧美在线aaa| 亚洲摸摸操操av| 亚洲人123区| 亚洲一区二区三区不卡国产欧美| 一区二区三区四区视频精品免费 | 欧美在线小视频| 91在线观看一区二区| 91蝌蚪porny九色| 欧美亚洲免费在线一区| 欧美乱妇23p| 精品捆绑美女sm三区| 国产视频一区二区在线| 国产精品乱码人人做人人爱| 国产精品天美传媒| 亚洲激情六月丁香| 久久精品国内一区二区三区| 国产91精品免费| 99久久婷婷国产精品综合| 欧美日韩国产综合视频在线观看| 欧美一区二区三区四区久久| 精品成人免费观看| 成人欧美一区二区三区1314| 一区2区3区在线看| 韩国欧美国产一区| 99v久久综合狠狠综合久久| 欧美在线观看禁18| 久久综合久久综合九色| 亚洲欧洲三级电影| 麻豆国产欧美日韩综合精品二区| 国产999精品久久久久久绿帽| 欧美一区二区日韩一区二区| 精品福利二区三区| 亚洲精品免费播放| 麻豆精品在线观看| 色呦呦国产精品| 国产亚洲一本大道中文在线| 一级中文字幕一区二区| 国产精品一区二区在线播放| 欧美中文字幕久久| 久久九九国产精品| 日本美女一区二区| 色综合天天在线| 国产三级一区二区| 日韩av网站在线观看| 欧洲视频一区二区| 亚洲国产成人自拍| 老司机免费视频一区二区| 91丨九色porny丨蝌蚪| 国产午夜亚洲精品理论片色戒 | 美国十次综合导航| 色先锋资源久久综合| 久久久国产午夜精品 | 欧美不卡视频一区| 亚洲在线成人精品| 北条麻妃国产九九精品视频| 精品久久人人做人人爱| 日韩在线一二三区| 久久久久久99精品| 首页综合国产亚洲丝袜| 日本久久一区二区| 中文字幕精品综合| 国产在线精品不卡| 欧美一区二区女人| 日本aⅴ亚洲精品中文乱码| 欧美在线免费观看亚洲| 尤物视频一区二区| 欧美丝袜第三区| 洋洋成人永久网站入口| 91福利精品第一导航| 一区二区三区欧美亚洲| 91久久人澡人人添人人爽欧美| 中文字幕视频一区二区三区久| 国产成人日日夜夜| 日本一区二区三区免费乱视频 | 欧美日本国产视频| 香蕉av福利精品导航| 正在播放亚洲一区| 另类中文字幕网| 欧美精品一区二区精品网| 精品在线一区二区三区| 国产亚洲精品久| 成人国产亚洲欧美成人综合网| 国产精品国产三级国产a | 欧美刺激脚交jootjob| 久久99国产精品麻豆| 亚洲精品一区二区三区精华液| 国产在线精品一区在线观看麻豆| 久久夜色精品国产欧美乱极品| 丁香五精品蜜臀久久久久99网站| 欧美激情一区二区三区在线| 色一情一乱一乱一91av| 亚洲成人精品一区| 精品国产91乱码一区二区三区| 成人精品视频一区二区三区尤物| 亚洲精品欧美激情| 3d动漫精品啪啪| 国产福利一区二区三区视频在线 | 亚洲电影中文字幕在线观看| 91精品国产综合久久久久| 国产在线精品一区二区| 亚洲精品高清在线| 日韩一区二区三区电影在线观看| 国产麻豆精品在线观看| 一区二区三区在线观看动漫| 欧美成va人片在线观看| 99久久精品一区二区| 首页国产丝袜综合| 国产精品视频你懂的| 欧美日本不卡视频| 播五月开心婷婷综合| 日韩专区欧美专区| 国产精品福利一区| 精品久久五月天| 欧美在线色视频| 成人18精品视频| 激情五月激情综合网| 亚洲国产精品一区二区久久恐怖片| 精品福利一区二区三区免费视频| 日本道免费精品一区二区三区| 激情欧美一区二区三区在线观看| 伊人开心综合网| 久久精品亚洲国产奇米99| 欧美男男青年gay1069videost| 不卡av免费在线观看| 国产麻豆91精品| 精品一区中文字幕| 日韩精品三区四区| 亚洲在线视频免费观看| 中文字幕中文乱码欧美一区二区| 这里只有精品免费| 欧美日韩中文国产| 在线精品亚洲一区二区不卡| 成人污污视频在线观看| 国产一区二区三区免费观看| 青青草97国产精品免费观看无弹窗版| 亚洲免费视频中文字幕| 国产精品久久久久久久久久免费看| 久久久久久免费毛片精品| 欧美电影免费观看高清完整版 | 国产喂奶挤奶一区二区三区| 欧美一二区视频| 欧美精品tushy高清| 在线欧美日韩精品| 在线精品视频一区二区| 欧洲另类一二三四区| 在线看国产一区二区| 欧美日韩在线播| 欧美性色黄大片手机版| 精品视频在线免费| 欧美绝品在线观看成人午夜影视| 日本丶国产丶欧美色综合| 欧美在线你懂得| 欧美日韩国产欧美日美国产精品| 精品1区2区3区| 欧美日韩不卡视频| 日韩视频中午一区| 2023国产精品视频| 欧美国产精品一区| 国产精品二三区| 一区二区三区蜜桃| 亚洲不卡av一区二区三区| 日韩精品乱码免费| 精品一区二区三区欧美| 国产福利一区二区三区| 成人综合激情网| 色婷婷香蕉在线一区二区| 欧美色网一区二区| 欧美成人性福生活免费看| 精品国产一区二区国模嫣然| 欧美国产一区二区| √…a在线天堂一区| 亚洲国产综合91精品麻豆| 日韩精品一级中文字幕精品视频免费观看 | 国产欧美日韩综合精品一区二区 | 一区二区三区精品久久久| 天天色图综合网| 国产一区二区中文字幕| 色综合天天做天天爱| 91精品国产手机| 国产日韩欧美在线一区| 亚洲综合免费观看高清在线观看| 亚洲最大的成人av| 久久超碰97人人做人人爱| 成人免费毛片嘿嘿连载视频| 欧美日韩一区二区在线观看视频 | 国产亚洲精品福利| 一区二区三区蜜桃| 国产一区二区伦理| 在线国产电影不卡| 国产欧美一区二区精品性色超碰| 一级中文字幕一区二区| 国产成人在线影院| 欧美日韩一区二区三区视频 | 在线成人免费观看| 国产欧美日韩精品一区|