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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? conf_tny.a51

?? Keil uVision2
?? 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	10000	; 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日韩成人| 日韩一卡二卡三卡四卡| 国内成+人亚洲+欧美+综合在线 | 国产精品青草综合久久久久99| 日韩欧美123| 欧美精品一区二区三区久久久| 欧美精品丝袜中出| 欧美一区二区三区四区在线观看 | 一本到一区二区三区| 9人人澡人人爽人人精品| 不卡av电影在线播放| av亚洲精华国产精华精华| 99riav久久精品riav| 欧美亚洲日本国产| 日韩一区二区免费视频| 2020国产精品久久精品美国| 日本一区二区高清| 亚洲视频在线观看一区| 香蕉久久夜色精品国产使用方法 | 中文字幕欧美区| 中文字幕一区三区| 偷窥少妇高潮呻吟av久久免费| 琪琪久久久久日韩精品| 国产经典欧美精品| 91亚洲精华国产精华精华液| 亚洲视频网在线直播| 一区二区三区四区乱视频| 日韩中文字幕区一区有砖一区 | 久久久精品国产免费观看同学| 国产精品福利av| 五月婷婷色综合| 黑人精品欧美一区二区蜜桃| 91丨porny丨最新| 日韩小视频在线观看专区| 国产精品成人免费在线| 污片在线观看一区二区| 成人黄色av网站在线| 5858s免费视频成人| 国产精品久久久久久久久动漫 | 国产成人自拍高清视频在线免费播放| 91天堂素人约啪| 日韩精品专区在线影院重磅| 亚洲特黄一级片| 国产一区二区毛片| 制服.丝袜.亚洲.另类.中文| 国产精品麻豆一区二区| 麻豆成人91精品二区三区| 91高清视频在线| 欧美经典一区二区| 日本91福利区| 欧美日韩精品三区| 樱桃视频在线观看一区| 国产二区国产一区在线观看| 日韩欧美123| 日韩和欧美一区二区| 色综合天天天天做夜夜夜夜做| 国产欧美日韩激情| 久久av中文字幕片| 6080yy午夜一二三区久久| 久久国产精品99久久久久久老狼| 一本一本大道香蕉久在线精品 | 91在线云播放| 国产日韩综合av| 激情图区综合网| 精品人在线二区三区| 午夜国产不卡在线观看视频| 欧美色视频一区| 亚洲国产精品精华液网站| 色狠狠色噜噜噜综合网| 国产精品毛片大码女人| 成人午夜免费电影| 国产精品久久久久久久久免费丝袜 | 成人av集中营| 国产精品色呦呦| 成人成人成人在线视频| 国产欧美1区2区3区| 成人免费看黄yyy456| 中文字幕第一区二区| av网站免费线看精品| 亚洲视频一区二区在线观看| 91污在线观看| 天天综合天天综合色| 欧美日本在线播放| 久久99精品视频| 国产午夜精品久久| 91丨porny丨最新| 亚洲国产精品一区二区久久恐怖片| 欧美亚洲国产一区二区三区va| 亚洲综合清纯丝袜自拍| 制服.丝袜.亚洲.另类.中文 | 国产喂奶挤奶一区二区三区| 国产精品99久久久久久似苏梦涵| 久久久不卡网国产精品二区| 成年人国产精品| 亚洲图片自拍偷拍| 日韩欧美亚洲国产精品字幕久久久| 激情综合一区二区三区| 中文字幕一区二区三区四区不卡| 91麻豆精品一区二区三区| 日韩电影免费在线观看网站| 26uuu亚洲| 91免费小视频| 另类小说综合欧美亚洲| 国产精品理伦片| 欧美日韩一区二区在线观看| 国产自产高清不卡| 亚洲另类在线一区| 精品精品国产高清一毛片一天堂| 成人av手机在线观看| 免费成人你懂的| 亚洲黄色在线视频| 亚洲精品在线电影| 欧美色网一区二区| 国产91丝袜在线观看| 午夜激情久久久| 亚洲色图一区二区| 久久久久99精品国产片| 717成人午夜免费福利电影| 成年人国产精品| 精品一区二区三区在线播放视频| 亚洲精品久久久蜜桃| www欧美成人18+| 91精品久久久久久久91蜜桃| 99久久国产综合精品色伊| 黄色日韩网站视频| 香蕉影视欧美成人| 一区二区三区美女| 1024成人网| 国产日韩欧美一区二区三区乱码| 69堂精品视频| 精品少妇一区二区三区在线视频 | 亚洲午夜精品在线| 不卡在线观看av| 精品亚洲免费视频| 久久久99精品久久| 国产成人啪午夜精品网站男同| 日韩欧美色综合| 国产精品一区二区免费不卡 | 激情五月婷婷综合网| 在线影院国内精品| 国产精品69毛片高清亚洲| 一二三四社区欧美黄| 中文字幕乱码日本亚洲一区二区| 日韩欧美国产不卡| 欧美日韩国产乱码电影| 欧美在线free| 色综合久久久久久久| av资源网一区| 97久久超碰精品国产| 国产成人精品免费看| 国内外成人在线| 精品一区二区三区在线播放| 蜜桃精品视频在线观看| 免费成人在线播放| 国内久久婷婷综合| 国产精品18久久久久久久久| 国产资源精品在线观看| 国产黄色精品视频| 成人aa视频在线观看| 成人禁用看黄a在线| 99久久亚洲一区二区三区青草| 91亚洲精品久久久蜜桃| 欧美性高清videossexo| 欧美日韩一级黄| 日韩视频在线你懂得| 精品国产髙清在线看国产毛片| 欧美成人激情免费网| 久久综合九色欧美综合狠狠| 久久视频一区二区| 中文字幕在线观看不卡| 亚洲国产一区二区a毛片| 日韩精品五月天| 国产一区二区导航在线播放| 91蜜桃婷婷狠狠久久综合9色| 91小视频免费观看| 欧美一级爆毛片| 国产精品剧情在线亚洲| 亚洲综合免费观看高清完整版 | 日韩精品最新网址| 国产精品麻豆一区二区| 亚洲成人在线免费| 国产麻豆视频一区| 在线观看亚洲精品视频| 欧美r级在线观看| 一区二区三区欧美日| 韩国精品久久久| 欧美丝袜丝nylons| 国产亚洲精品精华液| 亚洲bdsm女犯bdsm网站| 狠狠久久亚洲欧美| 91麻豆自制传媒国产之光| 日韩亚洲欧美在线| 一区二区三区毛片| 国产成人av影院| 日韩午夜av一区| 亚洲最新视频在线观看| 国产成人在线影院| 日韩亚洲欧美高清| 一区二区三区日韩在线观看| 国产成人精品免费在线|