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

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

?? temp_2.asm

?? C & Asm source code for cygnal microcontrollers C8051F02x.
?? ASM
字號:
;-----------------------------------------------------------------------------
; Temp_2.ASM
;-----------------------------------------------------------------------------
; Copyright 2001, Cygnal Integrated Products, Inc.
;
; FILE:        Temp_2.ASM
; DEVICE:      C8051F02x
; ASSEMBLER:   Keil A51
; AUTH:        BW
; DATE:        1 SEP 01
;
; This program provides an example of how to configure the on-chip temperature
; sensor with the ADC.  The ADC is configured for left-justified mode, so this
; code will work as-is on devices which have 10 or 12-bit ADCs.
;
; An external 22.1184MHz crystal is used as the system clock source.
;
; The ADC is configured for left-justified mode, GAIN = 2, using Timer3 
; overflows as the start-of-conversion source.  Timer3 is configured in 
; auto-reload mode to overflow every 10ms.  The ADC conversion complete 
; interrupt handler reads the ADC value and compares it with the expected 
; value for room temperature (about 25 degrees C), stored in ROOMCODE.  
; If the measured temperature is below this value, the LED is turned off.  
; If the measured value is above ROOMCODE, the LED is turned on.
;
; The LED switch point can be easily modified by changing the value of 
; ROOMCODE.
;
;-----------------------------------------------------------------------------

;-----------------------------------------------------------------------------
; EQUATES
;-----------------------------------------------------------------------------

$INCLUDE (C8051F020.inc)

LED         EQU      P1.6        ; LED on target board ('1' is LED ON)

SYSCLK      EQU      22118       ; SYSCLK frequency in kHz

TC_10ms     EQU      (SYSCLK / 12) * 10; number of timer counts in 10ms

ROOMCODE    EQU      0xb930      ; left-justified ADC value for 25 degrees C.

;-----------------------------------------------------------------------------
; VARIABLES
;-----------------------------------------------------------------------------

MYDATA      SEGMENT DATA         ; declare DATA segment
            RSEG  MYDATA         ; select DATA segment

; ADC data variables
TEMPCODE:   DS    2              ; holding register for temp code (16-bit)
                                 ; stored MSB-first (like in Keil 'C' code)

;-------------------
; STACK

STACK       SEGMENT IDATA        ; declare STACK segment
            RSEG  STACK
            DS    80h            ; reserve 128 bytes for stack

;-----------------------------------------------------------------------------
; MACRO DEFINITIONS
;-----------------------------------------------------------------------------

;-----------------------------------------------------------------------------
; RESET AND INTERRUPT VECTOR TABLE
;-----------------------------------------------------------------------------

            CSEG AT 0
            ljmp  Main

            org   7bh
            ljmp  ADC0_ISR       ; ADC0 end of conversion interrupt

;-----------------------------------------------------------------------------
; MAIN PROGRAM CODE
;-----------------------------------------------------------------------------

Temp_2      SEGMENT  CODE                 ; declare CODE segment
            RSEG  Temp_2                  ; select CODE segment
            USING 0                       ; using register bank 0

Main:
            mov   WDTCN, #0deh            ; disable watchdog timer
            mov   WDTCN, #0adh

            mov   SP, #STACK-1            ; init stack pointer

            acall SYSCLK_Init             ; initialize system clock source

            mov   XBR2, #40h              ; Enable crossbar and weak pull-ups

            orl   P1MDOUT, #40h           ; enable P1.6 (LED on target board)
                                          ; as push-pull

            acall ADC0_Init               ; initialize ADC0 and temp sensor
            acall Timer3_Init             ; initialize Timer3

            acall Timer3_Start            ; enable Timer3
            acall ADC0_Enable             ; enable ADC

            setb  EA                      ; enable global interrupts

            sjmp  $                       ; spin forever

;-----------------------------------------------------------------------------
; INTERRUPT VECTORS
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
; ADC0_ISR
;
; This ISR is activated on the completion of an ADC sample.  When this event
; occurs, the ADC value is copied to the holding variable TEMPCODE, and is
; compared with the code for 25 degrees C.  If the temperature is above
; 25 degrees C, the LED is turned on.  If the temperature is below 25 degrees
; C, the LED is turned off.  There is no correction here for self-heating.
;
ADC0_ISR:
            push  PSW                     ; preserve registers
            push  acc

            clr   AD0INT                  ; clear ADC0 interrupt flag

            mov   TEMPCODE, ADC0H         ; copy MSB of ADC0 result into 
                                          ; TEMPCODE
            mov   TEMPCODE+1, ADC0L       ; copy LSB of ADC result into
                                          ; TEMPCODE

            ; compare TEMPCODE with value expected for 25 degrees C

            ; if (TEMPCODE - ROOMDEG) < 0, then turn LED off, otherwise, 
            ; turn it on.
            ; Calculate TEMPCODE - ROOMREG and store in TEMPCODE 
            ; (16-bit subtract)

            clr   C
            mov   a, TEMPCODE+1           ; subtract LSBs
            subb  a, #LOW(ROOMCODE)
            mov   TEMPCODE+1, a           ; store new LSB
            mov   a, TEMPCODE             ; subtract MSBs (and carry)
            subb  a, #HIGH(ROOMCODE)
            mov   TEMPCODE,a              ; store new MSB

            setb  LED                     ; turn LED on.
            jnc   ADC0_ISR_END            ; exit if subtract result was 
                                          ; positive,
            clr   LED                     ; otherwise, turn LED off then exit

ADC0_ISR_END:
            pop   acc
            pop   PSW

            reti

;-----------------------------------------------------------------------------
; SUBROUTINES
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
; SYSCLK_Init
;-----------------------------------------------------------------------------
; This routine initializes the system time base by enabling the external
; oscillator, waiting for it to start up, and then switching the system clock
; source from the internal oscillator to the external oscillator.  Also
; enables the Missing Clock Detector.  Assumes a 22.1184MHz crystal attached
; between XTAL1 and XTAL2.
;
SYSCLK_Init:
            mov   OSCXCN, #67h            ; enable external crystal
                                          ; oscillator at 22.1184MHz

            clr   A                       ; wait at least 1ms
            djnz  acc, $                  ;  wait 512us
            djnz  acc, $                  ;  wait 512us

osc_wait:                                 ; poll for XTLVLD-->1
            mov   a, OSCXCN
            jnb   acc.7, osc_wait

            orl   OSCICN, #08h            ; select external oscillator as 
                                          ; system clock source
            orl   OSCXCN, #80h            ; enable missing clock detector
            ret

;-----------------------------------------------------------------------------
; Timer3_Init
;-----------------------------------------------------------------------------
; This routine initializes Timer3 in 16-bit auto-reload mode to overflow
; at 100Hz using SYSCLK/12 as its time base.  Exits with Timer3
; stopped and Timer3 interrupts disabled.
;
Timer3_Init:
            mov   TMR3CN, #00h            ; stop Timer3, clear TF3, use
                                          ; SYSCLK/12 as timebase
            mov   TMR3RLH, #HIGH(-TC_10ms); init reload values
            mov   TMR3RLL, #LOW(-TC_10ms)
            mov   TMR3H, #0ffh            ; set to auto-reload immediately
            mov   TMR3L, #0ffh
            anl   EIE2, #NOT(01h)         ; disable Timer3 interrupts

            ret

;-----------------------------------------------------------------------------
; TIMER3_Start
;-----------------------------------------------------------------------------
; This routine starts Timer3
;
Timer3_Start:
            orl   TMR3CN, #04h            ; set TR3
            ret

;-----------------------------------------------------------------------------
; ADC0_Init
;-----------------------------------------------------------------------------
; This routine initializes ADC0 for left-justified mode monitoring the
; on-chip temp sensor at a gain of '2'.  Leaves ADC in disabled state.
;
ADC0_Init:
            clr   AD0EN                   ; disable ADC
            mov   REF0CN, #07h            ; enable temp sensor, bias
                                          ; generator, and output
                                          ; buffer
            mov   AMX0SL, #0fh            ; select TEMP sensor as ADC0
                                          ; input
            mov   ADC0CF, #((SYSCLK/2500) SHL 3) ; set SAR clock to 2.5MHz
            orl   ADC0CF, #01h            ; PGA Gain = 2
            mov   ADC0CN, #45h            ; ADC disabled, low power
                                          ; track mode, ADC0 conversions
														; initiated by overflow on
														; Timer3, left-justified data
            ret

;-----------------------------------------------------------------------------
; ADC0_Enable
;-----------------------------------------------------------------------------
; This routine enables the ADC and ADC interrupts.
;
ADC0_Enable:
            setb	AD0EN                   ; enable ADC
            orl   EIE2, #02h              ; enable ADC EOC interrupt
            ret

;-----------------------------------------------------------------------------
; End of file.

END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久中文字幕| 成人爱爱电影网址| 一区二区在线观看免费视频播放| 精品福利av导航| 日韩欧美一区中文| 日韩免费电影网站| 久久丝袜美腿综合| 国产亚洲一区二区三区| 2021国产精品久久精品| 国产亚洲一区二区在线观看| 久久久精品综合| 国产精品入口麻豆九色| 中文字幕av资源一区| 国产欧美综合在线| 中文字幕在线观看不卡视频| 成人免费小视频| 一区二区欧美精品| 青椒成人免费视频| 国产乱人伦精品一区二区在线观看| 激情图片小说一区| 豆国产96在线|亚洲| 91尤物视频在线观看| 在线观看亚洲成人| 日韩欧美国产三级电影视频| 久久久久久毛片| 综合久久一区二区三区| 亚洲电影视频在线| 男人的j进女人的j一区| 国产99久久久久久免费看农村| 成人动漫一区二区在线| 欧美日韩综合在线| 精品国产乱码久久久久久免费 | 91麻豆国产精品久久| 在线观看亚洲一区| 久久久久免费观看| 亚洲黄色av一区| 韩国三级中文字幕hd久久精品| www.日韩在线| 制服丝袜亚洲精品中文字幕| 久久精品一区四区| 亚洲不卡一区二区三区| 国产精品 日产精品 欧美精品| 91天堂素人约啪| 精品久久国产字幕高潮| 亚洲综合自拍偷拍| 国产久卡久卡久卡久卡视频精品| 在线欧美一区二区| 久久免费看少妇高潮| 综合久久久久久| 国产一区在线不卡| 欧美一区二区在线免费观看| 成人欧美一区二区三区1314| 九色综合国产一区二区三区| 色综合久久综合| 国产日韩精品视频一区| 亚瑟在线精品视频| 91麻豆视频网站| 国产精品美女久久久久久2018| 丝袜亚洲精品中文字幕一区| 99久久婷婷国产综合精品电影| 精品久久久久久久久久久久久久久 | 成人黄色网址在线观看| 日韩一级在线观看| 亚洲高清免费视频| 97久久精品人人澡人人爽| 精品乱码亚洲一区二区不卡| 婷婷丁香激情综合| 欧洲精品中文字幕| 亚洲精品国产高清久久伦理二区| 国产精品一区二区久久不卡| 精品久久久三级丝袜| 久久精品噜噜噜成人88aⅴ| 欧美三级日韩三级| 亚洲国产成人av网| 精品视频一区二区三区免费| 亚洲免费在线视频| 色av一区二区| 夜夜精品视频一区二区| 欧洲一区在线观看| 亚洲国产婷婷综合在线精品| 欧美体内she精视频| 亚洲精品国产a久久久久久| 色综合久久综合网97色综合 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产午夜精品久久久久久免费视| 国内精品写真在线观看| 久久影视一区二区| 成人爽a毛片一区二区免费| 国产欧美综合色| 91丨九色丨蝌蚪丨老版| 亚洲婷婷国产精品电影人久久| 99国产精品国产精品毛片| 亚洲免费色视频| 欧美日韩国产色站一区二区三区| 视频一区二区三区中文字幕| 欧美一区二区视频免费观看| 久久精品国产**网站演员| 国产午夜久久久久| 色又黄又爽网站www久久| 午夜精品久久久| 精品国产在天天线2019| 成人激情免费视频| 亚洲一区二区影院| 日韩视频永久免费| 丁香六月久久综合狠狠色| 亚洲乱码国产乱码精品精的特点| 欧美日韩综合一区| 国产乱人伦偷精品视频不卡| 亚洲乱码日产精品bd| 91精品国产欧美一区二区18| 国产99久久久久久免费看农村| 亚洲精品一二三| 精品久久久久香蕉网| 91丨porny丨最新| 麻豆国产欧美日韩综合精品二区| 国产欧美一区二区三区在线看蜜臀| 95精品视频在线| 美女网站一区二区| 亚洲欧美日本在线| 精品国产123| 欧美三日本三级三级在线播放| 久久97超碰国产精品超碰| 亚洲精品中文在线影院| 国产亚洲va综合人人澡精品 | 欧美精品一区二区蜜臀亚洲| 91无套直看片红桃| 国产精品乡下勾搭老头1| 亚洲电影在线免费观看| 亚洲国产精品传媒在线观看| 亚洲精品一区二区三区精华液| 国产91在线观看丝袜| 日本免费新一区视频| 亚洲青青青在线视频| 久久精品欧美一区二区三区不卡 | 丝袜美腿高跟呻吟高潮一区| 国产精品护士白丝一区av| 日韩欧美中文字幕一区| 色综合激情五月| 成人99免费视频| 国产精品一区三区| 日本va欧美va欧美va精品| 亚洲色欲色欲www在线观看| 国产亚洲短视频| 久久蜜桃香蕉精品一区二区三区| 欧美福利视频导航| 欧美色综合天天久久综合精品| 99re亚洲国产精品| 成人性色生活片免费看爆迷你毛片| 久久99热这里只有精品| 蜜桃久久av一区| 青青草国产成人av片免费| 亚洲成人av一区| 视频一区二区中文字幕| 亚洲成va人在线观看| 亚洲va在线va天堂| 婷婷开心激情综合| 亚洲精品欧美在线| 菠萝蜜视频在线观看一区| 日韩中文字幕1| 日韩中文字幕一区二区三区| 丝瓜av网站精品一区二区| 国产真实乱子伦精品视频| 国产寡妇亲子伦一区二区| 美女久久久精品| 欧美电影免费提供在线观看| 91精品国产一区二区三区蜜臀| 欧美日韩日日夜夜| 7777精品伊人久久久大香线蕉| 欧美精品免费视频| 日韩欧美国产小视频| 国产亚洲成aⅴ人片在线观看| 国产欧美中文在线| 亚洲情趣在线观看| 午夜精品福利久久久| 热久久一区二区| 国产精品中文字幕日韩精品 | 成人av在线一区二区三区| 国产精品久久久久aaaa樱花| 日本一区二区三级电影在线观看| 26uuu欧美| 亚洲国产激情av| 一区二区三区日韩在线观看| 偷拍亚洲欧洲综合| 国产一区二区三区免费看| 99re在线视频这里只有精品| 欧美色国产精品| 久久综合色8888| 亚洲婷婷国产精品电影人久久| 日韩高清不卡一区| 国产成人av自拍| 欧美日韩国产影片| 久久久久久久久久久久久女国产乱| 国产精品嫩草影院com| 亚洲国产精品精华液网站| 激情综合五月天| 在线观看免费亚洲| 久久久久久99久久久精品网站| 亚洲激情男女视频| 国内成+人亚洲+欧美+综合在线| 色综合婷婷久久|