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

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

?? b13-9.asm

?? 本文件包包括8051徹底研究書籍各章的實例源代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;PROGRAM NAME B13-9.ASM
BPS9600 EQU     FDH
OUT_CNT EQU     8
MS10    EQU     9217    ;APPROXIMATELY 10MS INTERRUPR
;
INTR_CNT EQU    30H     ;CNT STORIAGE
BUFFER  EQU     31H     ;DISPLAY BUFFER
BINARY  EQU     32H     ;BINARY DATA STORIAGE
ASCBUF  EQU     33H     ;ASCII TEMPERATURE DATA BUFFER(8 BYTES)
TX_CNT  EQU     3BH     ;TRANSMIT BYTE COUNT
;
CNTH_L  EQU     3CH
CNTH_H  EQU     3DH     ;COUNTER FOR DUTY HI
CNTT_L  EQU     3EH
CNTT_H  EQU     3FH     ;COUNTER FOR DUTY HI+LO
SIN_BUF EQU     40H     ;8 BYTE
;
EE_ID   EQU     2FH     ;ID READ FROM 24LC16
BEEP    EQU     2EH     ;BUZZER ON TIME
SIN_CNT EQU     2DH     ;SERIAL INPUT COUNT
;
SCLK    REG     P1.7    ;SERIAL CLOCK
SDA     REG     P1.6    ;SERIAL DATA
SMT160  REG     P3.2    ;TEMP SENSOR
CH1     REG     P3.3    ;CHECK BY SCOPE,SIO_ISR
BUZZER  REG     P3.4
CH2     REG     P3.5    ;CHECK BY SCOPE,T0_ISR
LED     REG     P3.7
KEY     REG     P3.7
;
SAMPLING REG    20H.0
TX_START REG    20H.1
;
        ORG     0000H
        JMP     START
        ORG     0003H   ;[DISABLE]  EXTERNAL INT0 INTERRUPT
        RETI
        ORG     000BH   ;[ENABLE]  TIMER0 OVERFLOW INTERRUPT
        JMP     T0_ISR
;
        ORG     0013H
        RETI            ;[DISABLE] EXTERNAL INT1 INTERRUPT
        ORG     001BH
        RETI            ;[DISABLE] TIMER1 OVERFLOW INTERRUPT
        ORG     0023H
        JMP     SIO_ISR ;[ENABLE] SERIAL INTERRUPT
;
        ORG     30H
START   MOV     R0,#00H
        DJNZ    R0,$    ;DELAY A WHILE
        MOV     SP,#60H
        MOV     P1,#FFH
        MOV     P3,#FFH
        MOV     INTR_CNT,#00H
        MOV     SIN_CNT,#00H
        CLR     TX_START
        MOV     TX_CNT,#00H
        CLR     BUZZER  ;P3.4=0,BUZZER OFF
        CLR     LED     ;P3.7=0,LED OFF
        CALL    SET_TMR0
        MOV     BUFFER,#FFH ;BLANK DISPLAY
        CLR     SAMPLING
        CALL    CHECK_EE
        CALL    READ_ID
;
$WAIT   JNB     SAMPLING,$WAIT
        JB      TX_START,$WAIT
        CALL    READ_TEMP
        CLR     SAMPLING
        SJMP    $WAIT
;
SIO_ISR
        PUSH    A
        PUSH    PSW
        PUSH    00H
        PUSH    01H
        JNB     RI,$CHK_TI
        CLR     RI
;
;CHECK COMMAND STRING
        MOV     A,#SIN_BUF      ;A=40H
        ADD     A,SIN_CNT       ;A=40H+(SIN_CNT)
        MOV     R0,A
        MOV     A,SBUF
        MOV     @R0,A
        INC     SIN_CNT         ;SIN_CNT+1
        CJNE    A,#0AH,$CHK_TI
;
;"IDx?" COMMAND CHECK
        MOV     R0,#SIN_BUF
        CJNE    @R0,#'I',$ERR_C
;1ST BYTE
        INC     R0
        CJNE    @R0,#'D',$ERR_C
;2ND BYTE
        INC     R0
        MOV     A,EE_ID
        ADD     A,#'0'          ;CONVERT TO ASCII CODE
        MOV     B,A
        MOV     A,@R0
        CJNE    A,B,$ERR_C
;3RD BYTE(CHECK ID)
        INC     R0
        CJNE    @R0,#'?',$ERR_C
;3RD BYTE('?' CHECK)
        INC     R0
        CJNE    @R0,#0DH,$ERR_C
;4TH BYTE(CARRIAGE RETURN)
        INC     R0
        CJNE    @R0,#0AH,$ERR_C
;5TH BYTE(LINE FEED)
;ALL CODES ARE CORRECT!!
$OK     MOV     R0,#SIN_BUF
        MOV     R1,#8
$1      MOV     @R0,#00H
        DJNZ    R1,$1           ;CLEAR SIN_BUFFFER
        MOV     SIN_CNT,#00H    ;CLEAR SIN_CNT
;
        SETB    TX_START
        MOV     TX_CNT,#00H     ;TX_CNT=0
        SETB    TI
        SETB    LED             ;LED ON
;
$ERR_C  MOV     SIN_CNT,#00H
;
$CHK_TI JNB     TI,$NO_TX
        JNB     TX_START,$NO_TX
        CLR     TI
        MOV     A,TX_CNT
        MOV     R0,#ASCBUF
        ADD     A,R0
        MOV     R0,A
        MOV     A,@R0
        MOV     SBUF,A
        INC     TX_CNT  ;TX_CNT=TX_CNT+1
        MOV     A,TX_CNT
        CJNE    A,#OUT_CNT,$ISRE
        CLR     TX_START        ;STOP TX
        MOV     TX_CNT,#00H
        CLR     LED     ;LED OFF
$ISRE
$NO_TX  POP     01H
        POP     00H
        POP     PSW
        POP     A
        RETI
;
;MEASURE PULSE
READ_TEMP
        CLR     EA
$HI     JB      SMT160,$HI
$LO     JNB     SMT160,$LO
;LOW TO HIGH TRANSITION
H_ONLY  MOV     DPTR,#0000H
        MOV     R0,#10  ;READ COUNT
$0      INC     DPTR
        JB      SMT160,$0
$1      JNB     SMT160,$1       ;SKIP LO
        DJNZ    R0,$0
        MOV     R4,DPL
        MOV     R5,DPH
;
H_L     MOV     DPTR,#0000H
        MOV     R0,#10
$HI     JB      SMT160,$HI
$LO     JNB     SMT160,$LO
$0      INC     DPTR
        JB      SMT160,$0
$1      INC     DPTR
        JNB     SMT160,$1
        DJNZ    R0,$0
        MOV     R6,DPL
        MOV     R7,DPH
        SETB    EA
;
        MOV     CNTH_L,R4
        MOV     CNTH_H,R5
        MOV     CNTT_L,R6
        MOV     CNTT_H,R7
;
        MOV     R4,CNTH_L
        MOV     R5,CNTH_H
        MOV     R7,#00H         ;(07H 06H 05H 04H)=DUTY HI
        MOV     R6,#00H
;
        MOV     0FH,#00H        ;(0FH 0EH 0DH 0CH)=212 CONSTANT
        MOV     0EH,#00H
        MOV     0DH,#00H
        MOV     0CH,#212
        CALL    MUL_4BYTE       ;RESULT IN (07H 06H 05H 04H)
;
        MOV     0FH,#00H
        MOV     0EH,#00H
        MOV     0CH,CNTT_L
        MOV     0DH,CNTT_H
        CALL    DIV_4BYTE       ;(7)(6)(5)(4)/=(F)(E)(D)(C)
        MOV     A,04H           ;GET LOWER BYTE ONLY
        SUBB    A,#68           ;A=(212*HI)/(HI+LO)-68
        MOV     BINARY,A
TEST    CALL    CONV            ;DATA IN BUFFER
        CALL    ASC_CONV
        RET
;
;
ASC_CONV
        MOV     ASCBUF  ,#'T'
        MOV     A,EE_ID
        ADD     A,#'0'          ;ID=ID+'0'
        MOV     ASCBUF+1,A
        MOV     ASCBUF+2,#'='
        MOV     A,BUFFER
        SWAP    A
        ANL     A,#0FH
        ADD     A,#'0'
        MOV     ASCBUF+3,A ;SAVE DIGIT1
        MOV     A,BUFFER
        ANL     A,#0FH
        ADD     A,#'0'
        MOV     ASCBUF+4,A ;SAVE DIGIT2
        MOV     ASCBUF+5,#'C'
        MOV     ASCBUF+6,#0DH   ;CARRIAGE RETURN
        MOV     ASCBUF+7,#0AH   ;LINE FEED
        RET
;
T0_ISR
        MOV     TH0,#(65536-MS10) / 256 ;RELOAD TH0
        MOV     TL0,#(65536-MS10) .MOD. 256
        PUSH    A
        PUSH    PSW
        PUSH    00H
;
        MOV     A,BUFFER
        ANL     A,#0FH  ;GET LOW NIBBLE
        SETB    ACC.5   ;BIT5=1
        MOV     P1,A    ;SHOW 1 DIGIT
        MOV     R0,#30H
        DJNZ    R0,$    ;DELAY
;inter-blanking
        CLR     ACC.4
        CLR     ACC.5
        MOV     P1,A    ;ALL DIGIT BLANK
        MOV     R0,#04H
        DJNZ    R0,$    ;DELAY
;
        MOV     A,BUFFER
        ANL     A,#F0H  ;GET HIGH NIBBLE
        SWAP    A       ;SWAP A
        SETB    ACC.4   ;BIT4=1
        MOV     P1,A    ;SHOW ANOTHER DIGIT
        MOV     R0,#30H
        DJNZ    R0,$    ;DELAY
;
        CLR     ACC.4
        CLR     ACC.5
        MOV     P1,A    ;ALL DIGIT BLANK
;
;INTR_CNT+1
        MOV     A,INTR_CNT
        JNZ     $NEXT
        SETB    SAMPLING        ;IF A=0 OR A=50 THEN SAMPLING=1
        SJMP    $INC
$NEXT   CJNE    A,#50,$INC
        SETB    SAMPLING
$INC    INC     INTR_CNT
        MOV     A,INTR_CNT
        CJNE    A,#100,$T0_END
        MOV     INTR_CNT,#00H
;CHECK BUZZER
$T0_END MOV     A,BEEP
        JZ      $NOBEEP
        DEC     BEEP
        SETB    BUZZER
        SJMP    $END
$NOBEEP CLR     BUZZER
$END    POP     00H
        POP     PSW
        POP     A
        RETI
;
CONV    MOV     A,BINARY
        MOV     B,#10
        DIV     AB      ;A=A/10,B=A MOD 10
        ANL     A,#0FH  ;A=A AND 0FH
        JNZ     $1
        MOV     A,#0FH  ;IF A=00H THEN A=0FH LEADING BLANK
$1      SWAP    A
        ORL     A,B     ;A AS BCD FORM
        MOV     BUFFER,A ;SAVE AT BUFFER
        RET
;
DELAY   MOV     R7,#00H
$1      MOV     R6,#00H
        DJNZ    R6,$
        DJNZ    R7,$1
        RET
;
SET_TMR0
        MOV     A,#21H  ;TIMER1 MODE2,TIMER0 MODE1
        MOV     TMOD,A
        MOV     TH0,#(65536-MS10) / 256 ;RELOAD TH0
        MOV     TL0,#(65536-MS10) .MOD. 256
        CLR     TF0     ;CLEAR TIMER0 FLAG
        SETB    TR0     ;TIMER0 START COUNT
        MOV     SCON,#50H    ;8BIT DATA OUTPUT
        MOV     TH1,#BPS9600 ;BAUD RATE 9600BPS
        SETB    TR1     ;TIMER1 START COUNT
        SETB    ET0     ;ENABLE TIMER0 INTERRUPT
        SETB    ES      ;ENABLE SERIAL INTERRUPT
        SETB    EA      ;ENABLE SYSTEM INTERRUPT
        RET
;
;ROUTINES FOR AT2051 KIT
;
;FUNCTION NAME : CLEAR_INTERNAL_DATA_MEMORY
;FUNCTION : CLEAR 4 BYTES DATA MEMORY 08H,09H,0AH,0BH
;
CLEAR_INTERNAL_DATA_MEMORY
        MOV     R0,#08H ;DATA MEMORY ADDR
        MOV     R2,#04H ;COUNT
$1      CLR     A
        MOV     @R0,A
        INC     R0
        DJNZ    R2,$1
        RET
;
;FUNCTION NAME : DATA_ADD_4BYTE
;FUNCTION : ADD 4 BYTES IN DATA MEMORY

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产成人精品亚洲午夜| 成人蜜臀av电影| 色哦色哦哦色天天综合| 国产精品美女久久久久av爽李琼| 国产成人精品午夜视频免费| 国产午夜亚洲精品午夜鲁丝片| 国产精品综合二区| 久久久噜噜噜久久中文字幕色伊伊| 国产美女在线观看一区| 国产精品欧美极品| 色94色欧美sute亚洲线路二| 亚洲网友自拍偷拍| 欧美一区二区三区视频免费| 国产一区二区三区最好精华液| 国产欧美综合色| 色系网站成人免费| 日韩精品每日更新| 国产日韩成人精品| 色老汉av一区二区三区| 丝袜亚洲另类欧美| 午夜精品久久久久久久99樱桃| 日韩一区二区电影网| 国产精品影音先锋| 樱桃视频在线观看一区| 91精品久久久久久久99蜜桃| 国产sm精品调教视频网站| 一区二区三区四区蜜桃| 日韩一区二区免费视频| 成人动漫一区二区在线| 日韩在线卡一卡二| 中文字幕av不卡| 欧美日韩国产美| 国产精品一区二区在线看| 亚洲精品你懂的| 精品国产污网站| 91亚洲国产成人精品一区二三| 天堂资源在线中文精品| 亚洲国产精品成人综合色在线婷婷 | 国产成人一区二区精品非洲| 亚洲精品欧美二区三区中文字幕| 日韩欧美资源站| 一本高清dvd不卡在线观看| 久久国产精品区| 一区二区国产盗摄色噜噜| 久久精品视频在线看| 欧美日韩精品一区视频| 成人一道本在线| 免费精品视频在线| 亚洲一区二区在线免费看| 久久综合九色综合97婷婷女人 | 色中色一区二区| 国产一区欧美日韩| 首页综合国产亚洲丝袜| 亚洲色欲色欲www| 国产无人区一区二区三区| 日韩亚洲欧美一区| 欧美日韩激情一区| 色噜噜狠狠色综合欧洲selulu| 国产经典欧美精品| 免费成人深夜小野草| 亚洲影院免费观看| 中文字幕一区av| 亚洲国产精品传媒在线观看| 精品久久五月天| 91精品国产色综合久久不卡电影| 91久久久免费一区二区| va亚洲va日韩不卡在线观看| 国产精品一区不卡| 国精产品一区一区三区mba桃花| 日韩国产精品久久久久久亚洲| 亚洲精品伦理在线| 亚洲婷婷国产精品电影人久久| 国产清纯在线一区二区www| 久久综合99re88久久爱| 日韩一级黄色片| 日韩一级片网站| 日韩欧美一二区| 日韩欧美一级二级三级| 日韩一区二区三区三四区视频在线观看| 欧美日韩成人高清| 欧美日韩精品系列| 欧美日韩精品一区视频| 91精品国产高清一区二区三区蜜臀| 欧美日韩在线播放三区四区| 色婷婷激情综合| 在线一区二区视频| 欧美在线观看一区| 欧美性欧美巨大黑白大战| 欧美视频在线播放| 91精品国产综合久久国产大片 | 99久久精品免费看国产免费软件| 国产99久久久国产精品潘金| 成人精品免费看| 99精品偷自拍| 欧美日韩的一区二区| 3d成人h动漫网站入口| 日韩欧美色电影| 国产视频一区二区在线观看| 国产精品久久久久久久久久免费看| 亚洲欧洲99久久| 亚洲一区二区3| 男人操女人的视频在线观看欧美 | 国产亚洲精品中文字幕| 亚洲国产高清aⅴ视频| 亚洲色图.com| 日韩精品一级中文字幕精品视频免费观看 | 亚洲福利视频一区二区| 久久69国产一区二区蜜臀| 国产一区二区三区美女| 成人avav影音| 4438x成人网最大色成网站| 久久久无码精品亚洲日韩按摩| 欧美激情一区二区三区不卡| 一区二区三区在线视频免费观看| 丝袜诱惑制服诱惑色一区在线观看 | 欧美视频一区二区三区四区| 日韩一区二区三区免费观看| 国产精品久久久久影院亚瑟 | 欧美一区二区女人| 中文幕一区二区三区久久蜜桃| 亚洲综合色视频| 狠狠色狠狠色合久久伊人| 成人v精品蜜桃久久一区| 7777精品伊人久久久大香线蕉超级流畅| 欧美va亚洲va在线观看蝴蝶网| 最近中文字幕一区二区三区| 日本亚洲天堂网| 99久久99久久久精品齐齐| 日韩精品资源二区在线| 亚洲欧美一区二区三区国产精品 | 欧美系列一区二区| 久久久精品黄色| 成人网在线播放| 欧美影院精品一区| 久久久不卡影院| 丝袜脚交一区二区| 成人激情校园春色| 精品国产电影一区二区| 亚洲综合偷拍欧美一区色| 韩国av一区二区| 欧美亚洲禁片免费| 国产精品卡一卡二| 国产在线精品免费| 在线不卡一区二区| 亚洲欧美日韩国产综合在线 | av亚洲精华国产精华精华| 日韩一区二区中文字幕| 亚洲主播在线播放| 成人99免费视频| 国产午夜亚洲精品不卡 | 国产一区二区三区久久悠悠色av| 欧美日韩五月天| 亚洲精品欧美在线| 一本久久精品一区二区| 国产精品久线观看视频| 国产成人无遮挡在线视频| 日韩精品一区在线观看| 青娱乐精品在线视频| 欧美精品99久久久**| 亚洲精品日韩综合观看成人91| www.欧美.com| 中文在线一区二区| 国产高清成人在线| 久久亚洲私人国产精品va媚药| 青青青爽久久午夜综合久久午夜| 欧美四级电影网| 亚洲超碰精品一区二区| 欧美日本乱大交xxxxx| 亚洲国产精品影院| 欧美网站一区二区| 亚洲va欧美va国产va天堂影院| 欧美性受xxxx黑人xyx性爽| 亚洲综合自拍偷拍| 欧美性大战久久| 日韩福利视频网| 日韩一区二区精品葵司在线| 青青草精品视频| 精品国产免费人成在线观看| 久久99国内精品| 国产日韩精品一区| jizz一区二区| 亚洲精品日韩专区silk| 欧美日韩精品欧美日韩精品一| 视频一区中文字幕国产| 欧美一区二区高清| 国产尤物一区二区| 国产精品久久久久久久久免费丝袜| av一二三不卡影片| 亚洲成人777| 欧美tk丨vk视频| 不卡视频一二三四| 一卡二卡欧美日韩| 欧美一区二区三区日韩| 国产综合色精品一区二区三区| 国产午夜精品一区二区三区视频 | 国产激情视频一区二区三区欧美| 国产婷婷色一区二区三区四区 | 国产98色在线|日韩| |精品福利一区二区三区| 欧美色大人视频|