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

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

?? conf_tny.a51

?? KEILC51程序實例和配套硬件目標板,很詳細,程序有注釋
?? 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	20000	; 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     1      ; 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本视频在线| 日韩欧美一级二级三级久久久| 色哟哟日韩精品| 日韩一区二区在线观看| 日本一区二区在线不卡| 亚洲国产精品久久艾草纯爱| 国产91精品免费| 宅男噜噜噜66一区二区66| 一色屋精品亚洲香蕉网站| 蜜桃视频在线一区| 在线观看亚洲a| 国产精品免费视频网站| 精品亚洲成a人| 欧美三级一区二区| 亚洲精品欧美二区三区中文字幕| 极品少妇一区二区三区精品视频| 欧美日韩在线一区二区| 亚洲免费电影在线| av不卡一区二区三区| 国产欧美精品一区二区色综合朱莉| 午夜电影网一区| 欧美亚州韩日在线看免费版国语版| 国产欧美精品一区二区色综合| 日本在线不卡视频一二三区| 在线观看日韩毛片| 亚洲精品视频在线看| 成人黄色片在线观看| 91精品国产高清一区二区三区| 国产亚洲欧美日韩在线一区| 日韩精品亚洲一区二区三区免费| www.亚洲免费av| 国产午夜三级一区二区三| 日韩va欧美va亚洲va久久| 91在线观看免费视频| 欧美一区二区三区视频| 亚洲私人影院在线观看| 国产一区二区三区不卡在线观看| 成人激情文学综合网| 久久久久久99久久久精品网站| 亚洲午夜电影网| 色国产综合视频| 一区二区三区四区精品在线视频| 成人精品在线视频观看| 精品国产精品网麻豆系列| 日韩电影免费在线看| 在线综合+亚洲+欧美中文字幕| 亚洲国产精品久久不卡毛片| 一本色道久久综合精品竹菊| 中文字幕精品综合| 懂色一区二区三区免费观看| 久久久久久免费毛片精品| 亚洲一区二区高清| 国产一区二区精品久久99| 国产精品人妖ts系列视频| 国产成人精品免费网站| 国产婷婷色一区二区三区| 国产一区二区看久久| 国产情人综合久久777777| 国产成人免费xxxxxxxx| 中文字幕精品三区| 97se亚洲国产综合自在线不卡| 国产精品久久二区二区| 91免费看片在线观看| 亚洲精品成人a在线观看| 欧美日韩一区二区在线观看| 久99久精品视频免费观看| 精品国产一区二区三区忘忧草| 久久99精品一区二区三区三区| 久久综合狠狠综合久久激情| 国产一区二区在线影院| 国产精品视频你懂的| 91黄色激情网站| 日本 国产 欧美色综合| 精品久久久久香蕉网| 成人激情免费视频| 一区二区三区中文字幕精品精品| 欧美日韩另类一区| 久久国产精品99久久久久久老狼| 欧美精品一区二区三区很污很色的| 国产在线日韩欧美| 中文字幕佐山爱一区二区免费| 欧洲一区二区三区免费视频| 蜜桃视频免费观看一区| 国产三级精品三级在线专区| 色婷婷久久综合| 久久精品国产在热久久| 一区视频在线播放| 色综合久久天天| 亚洲高清免费一级二级三级| 久久久久久久久久美女| 91国偷自产一区二区三区成为亚洲经典| 亚洲一区二区欧美激情| 久久精品免视看| 欧美性淫爽ww久久久久无| 国产一区二区0| 性做久久久久久| 欧美国产日韩精品免费观看| 欧美人动与zoxxxx乱| 成人av在线一区二区三区| 午夜激情久久久| 国产精品久久久久久久第一福利 | 一本大道久久a久久综合婷婷| 天天影视网天天综合色在线播放| 久久综合色播五月| 精品视频免费在线| 99久久综合99久久综合网站| 免费观看在线综合| 亚洲一区二区三区美女| 国产精品免费视频一区| 欧美白人最猛性xxxxx69交| 色综合天天综合网国产成人综合天| 六月丁香综合在线视频| 五月激情综合色| 一区二区三区国产| 国产精品蜜臀在线观看| 精品视频在线免费| 色拍拍在线精品视频8848| 国产精品一级黄| 国产一区二区视频在线播放| 免费不卡在线视频| 麻豆成人免费电影| 激情五月播播久久久精品| 国产在线视视频有精品| 国产精品 欧美精品| 国产不卡在线视频| 91啪在线观看| 欧美日韩国产色站一区二区三区| 欧美色图一区二区三区| 5858s免费视频成人| 欧美一级片在线观看| 91精品一区二区三区久久久久久| 欧美亚洲丝袜传媒另类| 99久久99精品久久久久久| 粉嫩aⅴ一区二区三区四区| 色综合久久久久综合体| 色婷婷综合五月| 色婷婷av一区二区三区之一色屋| 91丨porny丨最新| 91丨九色丨黑人外教| 97精品国产露脸对白| av影院午夜一区| 色综合久久中文综合久久牛| 欧美麻豆精品久久久久久| 欧美美女喷水视频| 欧美一级欧美一级在线播放| 欧美videossexotv100| 欧美r级在线观看| 国产精品丝袜一区| 亚洲精品国产一区二区三区四区在线 | 美女视频网站黄色亚洲| 日韩精品电影一区亚洲| 老司机精品视频线观看86 | 一本大道久久精品懂色aⅴ| 色综合久久综合中文综合网| 欧美午夜不卡在线观看免费| 宅男在线国产精品| 久久影音资源网| 欧美一区二视频| 国产精品区一区二区三| 亚洲精品五月天| 日韩综合小视频| 狠狠色狠狠色合久久伊人| 成人网在线播放| 欧美日韩高清一区二区不卡| 日韩免费高清视频| 国产精品狼人久久影院观看方式| 国产三级欧美三级| 日韩国产高清在线| 国产成人精品www牛牛影视| 99re66热这里只有精品3直播| 欧美日韩国产首页在线观看| 精品国产123| 亚洲婷婷在线视频| 日本成人在线电影网| 成人午夜av在线| 3d动漫精品啪啪一区二区竹菊| 国产精品嫩草99a| 麻豆免费精品视频| 91精品福利视频| 久久免费偷拍视频| 午夜天堂影视香蕉久久| 成人免费视频app| 欧美一区二区三区视频| 亚洲欧美激情在线| 美女网站色91| 日韩亚洲欧美中文三级| 最新日韩av在线| 久久av资源网| 欧美日韩一区二区在线观看视频| 久久久久亚洲综合| 热久久久久久久| 欧美视频自拍偷拍| 国产亚洲成年网址在线观看| 国产一区二区三区在线观看免费 | 91麻豆自制传媒国产之光| 91精品欧美一区二区三区综合在| 亚洲欧美国产高清| 国产99久久久久久免费看农村| 欧美一区二区美女| 日日摸夜夜添夜夜添国产精品|