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

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

?? conf_tny.a51

?? KEILC51程序?qū)嵗团涮子布繕?biāo)板,很詳細(xì),程序有注釋
?? 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.0
;------------------------------------------------------------------------------
;  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
K_RUN           EQU     128

; 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_RUN           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一区二区三区免费野_久草精品视频
舔着乳尖日韩一区| 日韩av一二三| 中文字幕不卡在线播放| 日韩和的一区二区| 色婷婷亚洲精品| 中文字幕一区二区5566日韩| 国产麻豆成人传媒免费观看| 日韩欧美一级片| 国产伦理精品不卡| 久久久影视传媒| caoporm超碰国产精品| 亚洲日本一区二区三区| 在线亚洲+欧美+日本专区| 亚洲一区在线观看网站| 7777精品久久久大香线蕉| 日一区二区三区| 久久久亚洲国产美女国产盗摄 | 亚洲制服丝袜av| 欧美日韩国产首页| 国产一区二区三区黄视频 | 日韩视频一区二区在线观看| 久久成人麻豆午夜电影| 国产精品网站一区| 欧美在线综合视频| 国产一区二区三区电影在线观看| 中文字幕欧美激情| 欧美放荡的少妇| 成人免费看黄yyy456| 首页国产欧美日韩丝袜| 久久在线观看免费| 91精品福利在线| 韩国精品免费视频| 亚洲一区二区精品3399| 久久综合九色综合欧美98| 欧美在线观看视频一区二区 | 一色桃子久久精品亚洲| 91丝袜美腿高跟国产极品老师| 欧美国产日韩亚洲一区| 91国产福利在线| 欧美性受xxxx黑人xyx| 欧美精品三级在线观看| 麻豆精品一区二区| 国产人成亚洲第一网站在线播放| 日韩精品一区二区三区swag| 中文字幕在线一区二区三区| 中文字幕在线观看不卡| 亚洲国产一区二区三区青草影视| 午夜电影久久久| 国产尤物一区二区在线| 成人永久免费视频| 欧美日韩精品欧美日韩精品一综合| 欧美成人性福生活免费看| 国产精品超碰97尤物18| 免费视频最近日韩| 成人免费毛片高清视频| 99久久国产综合色|国产精品| 色噜噜夜夜夜综合网| 欧美一区二区三区免费在线看 | 日韩av在线发布| 免费观看一级特黄欧美大片| 毛片av一区二区| 99国产精品久久久| 日韩亚洲欧美中文三级| 精品国产一二三区| 中文字幕av不卡| 亚洲成人免费观看| 国产综合色在线| 欧美性色黄大片| 26uuu成人网一区二区三区| 中文字幕高清一区| 激情亚洲综合在线| 欧美丝袜第三区| 国产视频一区二区三区在线观看| 亚洲精品国产视频| 激情欧美一区二区| 在线观看一区日韩| 久久精品日韩一区二区三区| 夜夜嗨av一区二区三区网页| 国产一区二区日韩精品| 久久亚洲综合色一区二区三区| 亚洲黄一区二区三区| 国产在线精品视频| 日韩一区二区免费电影| 午夜精品一区二区三区免费视频 | 奇米色777欧美一区二区| 成人精品电影在线观看| 欧美一区二区三区性视频| 亚洲一区二区高清| 色综合久久综合网欧美综合网| 日韩免费福利电影在线观看| 一区二区三区成人| 一本到不卡免费一区二区| 日本一区二区在线不卡| 成人性生交大片免费看在线播放 | 午夜精品久久一牛影视| 精品视频在线免费| 丝袜亚洲另类欧美| 欧美一区二区三区影视| 麻豆国产欧美日韩综合精品二区 | 国产精品系列在线播放| 久久精品一区二区| 菠萝蜜视频在线观看一区| 国产精品国产成人国产三级| 在线观看www91| 日本强好片久久久久久aaa| 日韩精品一区二区三区在线播放 | 色婷婷亚洲综合| 亚洲一二三四久久| 日韩一区二区视频| 丰满亚洲少妇av| 亚洲综合网站在线观看| 欧美一区三区二区| 国产电影一区二区三区| 日韩精品一二三区| 亚洲18影院在线观看| 一区二区三区电影在线播| 亚洲少妇最新在线视频| 亚洲色图欧美激情| 日韩毛片一二三区| 亚洲美腿欧美偷拍| 夜夜爽夜夜爽精品视频| 亚洲三级在线免费| 欧美精品一区二区三区在线播放| 在线视频一区二区免费| 成人伦理片在线| 国产精品一色哟哟哟| 日韩高清在线不卡| 一区二区三区在线影院| 中文字幕精品在线不卡| 精品国产一区a| 欧美一级艳片视频免费观看| 在线欧美小视频| 国产日韩欧美高清| 91精品午夜视频| 欧美xxxxxxxx| 欧美电影免费观看高清完整版在线 | 色悠悠亚洲一区二区| 成人三级在线视频| 国产一区二区三区日韩| 精品一区二区精品| 国产精品亚洲第一区在线暖暖韩国| 麻豆精品视频在线| 国产麻豆视频精品| 91精品国产综合久久久久久久久久| 国产精品久久久久久妇女6080| 色综合 综合色| 欧美日韩精品免费观看视频| 久久综合国产精品| 亚洲.国产.中文慕字在线| 国内精品视频一区二区三区八戒 | 国产在线观看一区二区 | 国产精品一区二区x88av| 91亚洲精品乱码久久久久久蜜桃| 欧美制服丝袜第一页| 久久无码av三级| 亚洲国产精品一区二区www | 欧美一区二区不卡视频| 国产精品伦一区| 久久精品国产亚洲一区二区三区| 成人av网站免费| 精品国产髙清在线看国产毛片| 亚洲人午夜精品天堂一二香蕉| 久久精品国产澳门| 波多野结衣在线一区| 国产老女人精品毛片久久| 亚洲视频一区在线| 国产午夜精品福利| 一本色道综合亚洲| 99久久婷婷国产精品综合| 国产凹凸在线观看一区二区| 国产一区二区美女| 麻豆精品视频在线观看免费| 麻豆精品久久精品色综合| 捆绑紧缚一区二区三区视频| 色综合久久久久久久久| 中文字幕一区二区三区不卡| 成人性生交大片免费看在线播放| 亚洲免费观看高清完整版在线观看| 欧美天堂一区二区三区| 免费成人你懂的| 国产精品三级电影| 欧美激情综合在线| 91首页免费视频| 蜜臀a∨国产成人精品| 中文字幕一区二区三区四区不卡| 欧美日韩成人一区| 成人精品国产一区二区4080| 日日摸夜夜添夜夜添精品视频| 国产亚洲短视频| 欧美日韩一区三区四区| 国产91精品久久久久久久网曝门| 亚洲国产精品久久人人爱| 国产亚洲综合av| 欧美男人的天堂一二区| 高清日韩电视剧大全免费| 亚洲第一在线综合网站| 日本亚洲欧美天堂免费| 不卡av免费在线观看| 欧美一区二区性放荡片| 国产精品网曝门|