大香蕉大香蕉在线播放-日韩av在线一区中文字幕-日韩熟女熟妇久久精品综合-精品免费视频一区二区三区

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動態(tài)

一個簡單的利用PC機(jī)的串口讀取ICD1板上AD0電壓的程序

更新時間: 2019-03-23
閱讀量:2438

十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享一個簡單的利用PC機(jī)的串口讀取ICD1板上AD0電壓的程序。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

用的是PIC16F877A單片機(jī)來調(diào)試的,下面是PIC的ASM文件,由于是用于其它的目的,用在這里有些代碼是多余的!
;
;用于串口實(shí)驗(yàn)的程序,主要的是10位
;
  INCLUDE
  LIST P=16F877

BANK3 MACRO
BSF STATUS,RP0
BSF STATUS,RP1                   ;體3
ENDM
BANK2 MACRO
BCF STATUS,RP0;
BSF STATUS,RP1                   ;
ENDM                             ;
BANK1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1                   ;
ENDM
BANK0 MACRO
BCF STATUS,RP0
BCF STATUS,RP1                   ;體0

ENDM

READCUNT    EQU   70H             ;
COUNT1      EQU   72H             ;
TEMP        EQU   73H             ;
FEIFA       EQU   74H             ;
TEMP1       EQU   75H             ;
TEMP2       EQU   76H             ;
CNT         EQU   77H             ;
SOU         EQU   78H             ;
SOUH        EQU   79H             ;
RLT         EQU   7AH             ;
TEMP3       EQU   7BH;

   ORG   0000H                    ;
   NOP                            ;
   GOTO  STATUP                   ;主要程序的入口
   ORG   004H                     ;中斷的入口

HIGHISR  
   BTFSS    PIR1,RCIF     ;判斷是否為USART中斷
   RETFIE                 ;不是中斷返回
   MOVF     RCREG,0       ;取RCREG的數(shù)值到W中,同時RCIF變?yōu)榱?br/>   MOVWF    TEMP2         ;暫時保存W中的數(shù)值用于下個轉(zhuǎn)換時用A
   SUBLW    41H           ;是否為回車,這個指令是取電壓指令,對應(yīng)鍵盤上的回車
   BTFSS    STATUS,Z      ;
   GOTO     FEEDBACK;NEXT1         ;不是;目前的處理是出錯時返回原來的數(shù)值
   CALL     DYZH          ;是CALL 電壓轉(zhuǎn)換
   RETFIE
;   GOTO     FEEDBACK      ;
;   BTFSS    FEIFA,0       ;
;  GOTO     CALL1;
;   GOTO     CALL2;
NEXT1;
    MOVF    TEMP2,0         ;
    SUBLW   44H            ;溫度1的判斷,對應(yīng)鍵盤上的D
    BTFSS   STATUS,Z       ;
    RETFIE                 ;也不是那就中斷返回

  CALL    WDZH1          ;
    RETFIE                 ;轉(zhuǎn)換完成就返回中斷
CALL1  
   CLRF     COUNT1;
   CALL     TABLE
   GOTO     EXIT;
CALL2
   MOVLW    D'26';
   MOVWF    COUNT1;
   CALL     TABLE;
EXIT
   CLRF     READCUNT;
   CLRF     FEIFA;
   RETFIE;
FEEDBACK
   MOVF    RCREG,0;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   MOVWF   TXREG;
   RETFIE;;;
   MOVF    READCUNT,0;
   CALL    READ2;
   INCF    READCUNT,1;
   SUBWF   RCREG,0;
   BTFSC   STATUS,Z;

  RETFIE;
   BSF     FEIFA,0;
   RETFIE;

;
TABLE
LOOP
    MOVF   COUNT1,0
    CALL   READ1;
    MOVWF  TEMP;
GETDATA  
    BTFSS  PIR1,TXIF;
    GOTO   GETDATA;
    MOVWF  TXREG;
    INCF   COUNT1,1;
    MOVF   TEMP,0;
    BTFSS  STATUS,Z;
    GOTO   LOOP;
    RETURN;

READ1
   ADDWF   PCL,1;
   RETLW   A'\N';
   RETLW   A'\R';
   RETLW   A'M';

 RETLW   A'Y';
   RETLW   A' ';
   RETLW   A'N';
   RETLW   A'A';
   RETLW   A'M';
   RETLW   A'E';
   RETLW   A' ';
   RETLW   A'I';
   RETLW   A'S';
   RETLW   A' ';
   RETLW   A'P';
   RETLW   A'I';
   RETLW   A'C';
   RETLW   A'1';
   RETLW   A'6';
   RETLW   A'F';
   RETLW   A'8';
   RETLW   A'7';
   RETLW   A'7';

 RETLW   A'.';      
   RETLW   A'\N';
   RETLW   A'\R';
   RETLW   0
READ
   RETLW   A'N';
   RETLW   A'R';
   RETLW   A'E';
   RETLW   A'R';
   RETLW   A'R';
   RETLW   A'O';
   RETLW   A'R';
   RETLW   A'!';
   RETLW   A'\N';
   RETLW   A'\R';
   RETLW   0

READ2
   ADDWF   PCL,1;
   RETLW   A'W';
   RETLW   A'H';
   RETLW   A'A';
   RETLW   A'T';

RETLW   A' ';
   RETLW   A'I';
   RETLW   A'S';
   RETLW   A' ';
   RETLW   A'Y'
   RETLW   A'O';
   RETLW   A'U';
   RETLW   A'R';
   RETLW   A' ';
   RETLW   A'N';
   RETLW   A'A';
   RETLW   A'M';
   RETLW   A'E';
   RETLW   A'?';

STATUP                   ;這邊是程序的初始化
   BANK1                 ;選體1
   BSF    TRISC,6        ;
   BSF    TRISC,7        ;
   BCF    TRISC,0        ;
   MOVLW  D'12'          ;

MOVWF  SPBRG          ;
   MOVLW  B'00100100'    ;24H
   MOVWF  TXSTA          ;
   BSF    PIE1,RCIE      ;
   MOVLW  0FFH           ;
   MOVWF  TRISA          ;設(shè)置RA口為輸入
   MOVLW  B'10000010'    ;設(shè)置為AD0進(jìn)入轉(zhuǎn)換,基準(zhǔn)電壓為VDDANDVSS,右對齊方式,結(jié)果是ADRESH 高.ADRESL 低,
   MOVWF  ADCON1         ;RA0,1,2,3,4,是AD口,RE2,1,0是數(shù)字口
   BANK0                 ;恢復(fù)體0
   MOVLW   35H           ;
   MOVWF   T1CON         ;
   MOVLW   B'10010000'   ;
   MOVWF   RCSTA         ;
   BSF     INTCON,GIE    ;
   BSF     INTCON,PEIE   ;
   CLRF    READCUNT      ;
   CLRF    FEIFA         ;
MAIN
;
;   call    dyzh
;   goto    $
   CLRWDT                ;
   BTFSS   PIR1,TMR1IF   ;
   GOTO    MAIN          ;
   BCF     PIR1,TMR1IF   ;

MOVLW   B'00000001'   ;
   XORWF   PORTC,1       ;
   GOTO    MAIN          ;
;*******************************************************************
;這個是電壓轉(zhuǎn)換
DYZH;電壓轉(zhuǎn)換程序
   MOVLW  B'01000001'    ;SELECT AD0,OPEN AD;
   MOVWF  ADCON0         ;
   BSF    ADCON0,GO      ;GO Bit是自動清零
   BTFSS  PIR1,ADIF      ;
   GOTO   $-1            ;
   MOVF   ADRESH,0       ;
   MOVWF  SOUH           ;
   BANK1                 ;
   MOVF   ADRESL,0       ;
   MOVWF  SOU            ;
   BANK0                 ;
;   MOVLW  32H;

;   MOVWF  SOU;
;   MOVLW  48H;
;   MOVWF  SOUH;
   CALL   DBTBCD         ;已經(jīng)是轉(zhuǎn)換完成
   CALL   BCDTX          ;CALL BCD碼發(fā)送
   RETURN                ;
  
      

WDZH1;溫度1的轉(zhuǎn)換
   MOVLW  B'01001001' ;
   MOVWF  ADCON0      ;
   BSF    ADCON0,GO   ;
   BTFSS  PIR1,ADIF   ;
   GOTO   $-1         ;
   CALL   DBTBCD      ;
   CALL   BCDTX       ;
   RETURN;
;


;********************DBTBCD********************
;本程序?qū)崿F(xiàn)雙字節(jié)二進(jìn)制數(shù)轉(zhuǎn)化為3字節(jié)壓縮BCD碼。
;入口參數(shù):原二進(jìn)制數(shù)在SOUH:SOU中。
;出口參數(shù):結(jié)果在RLT:SOUH:SOU中。
;占用資源:W,STATUS,FSR,023H,024H,025H,026H,028H,029,02AH,兩重堆棧。

DBTBCD      MOVF        SOU,W
            MOVWF       TEMP2
            MOVF        SOUH,W
            MOVWF       TEMP3
            CLRF        SOU
            CLRF        SOUH
            CLRF        RLT
            BCF         STATUS,C
            MOVLW       .16
            MOVWF       CNT
LOOPC1      RLF         TEMP2,F
            RLF         TEMP3,F
            RLF         SOU,F
            RLF         SOUH,F
            RLF         RLT,F
            DECFSZ      CNT,F
            GOTO        ADJDEC1        
            RETURN           ;整個子程序結(jié)束

ADJDEC1     MOVLW       SOU
            MOVWF       FSR
            CALL        ADJBCD1     ;調(diào)整RLT
            MOVLW       SOUH
            MOVWF       FSR
            CALL        ADJBCD1     ;調(diào)整RLTH
            MOVLW       RLT
            MOVWF       FSR
            CALL        ADJBCD1     ;調(diào)整TEMP1
            GOTO        LOOPC1
;********************調(diào)整BCD********************
ADJBCD1     MOVLW       03H
            ADDWF       INDF,W      ;低四位加3
            MOVWF       TEMP1       ;暫存
            BTFSC       TEMP1,3     ;結(jié)果大于7,
            MOVWF       INDF        ;則存起來
            MOVLW       30H
            ADDWF       INDF,W      ;高四位加3
            MOVWF       TEMP1              
            BTFSC       TEMP1,7     ;結(jié)果大于7,
            MOVWF       INDF        ;則存起來

    RETURN
;**********************************
;結(jié)果的順序是RLT SOUH SOU
BCDTX;
   SWAPF   RLT,0;
   ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG;
   MOVF    RLT,0;
   ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG              ;這個是發(fā)送完RLT字節(jié)
   SWAPF   SOUH,0;
   ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG;
   MOVF    SOUH,0;

ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG              ;這個是發(fā)送完SOUH字節(jié)
   SWAPF   SOU,0;
   ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG;
   MOVF    SOU,0;
   ANDLW   0FH;
   BTFSS   PIR1,TXIF;
   GOTO    $-1;
   CALL    READASC;
   MOVWF   TXREG                 ;這個是發(fā)送完SOU字節(jié)
   BTFSS   PIR1,TXIF             ;

GOTO    $-1                   ;
;   MOVLW   A'\N';
;   MOVWF   TXREG;
;   BTFSS   PIR1,TXIF;
;   GOTO    $-1;
;   MOVLW   A'\R';
;   MOVWF   TXREG;
;   MOVLW    00H                  ;這個是用來換行的00H
;  CALL     READ3                ;
;   MOVWF    TXREG                ;
;   BTFSS    PIR1,TXIF            ;
;   GOTO     $-1                  ;
;   MOVLW    01H                  ;01H
;   CALL     READ3                ;
;  MOVWF    TXREG                ;
   RETURN                        ;返回

READASC
    ADDWF   PCL,1;
    RETLW   A'0';
    RETLW   A'1';
    RETLW   A'2';
    RETLW   A'3';
    RETLW   A'4';

RETLW   A'5';
    RETLW   A'6';
    RETLW   A'7';
    RETLW   A'8';
    RETLW   A'9';
READ3                             ;
    ADDWF    PCL,1                ;
    RETLW    A'\n'                ;
    RETLW    A'\r'                ;

   END;

實(shí)驗(yàn)時,串口配置波特率要選擇19200,數(shù)據(jù)位是8位,校驗(yàn)位是N,停止位是1.就可以,調(diào)節(jié)ICD1板上的電壓就可以在程序中顯示出來,分辨率是10位.

大黑鸡巴操模特骚B| 欧美一级免费观看| 久久久五月性色视频| 中日韩国内精品视频| 99视频在线看免费视频| 69亚洲一级黄片| 免费黄色 操逼视频| 日韩高清精品一区有码在线| 国产精品欧美久久久久久| 91久国产在线观看| 日韩有码一区二区三区在线观看| 高清无码精品一区二区三区| 裸体午夜一级视频| 国产亚洲精品高清视频免费| 日韩午夜精品中文字幕| 精品一区二区三区女性色| 午夜成人理论片在线观看| 黄网官方在线观看| 大黑屌日本另类肛交| 美女让我插她的骚逼| 小穴抽插流水视频| 我想看操小嫩逼大片| 欧美日韩国产这里只有精品| 非洲大鸡巴操逼黄色录像| 日韩素人精品亚洲热一区| 好嗨哟直播看片在线观看| 婷婷激情五月天四房| 久久久国产精品2020| 美女大鸡操很多水在线看 | 爱男爽高潮鸡穴视频| 久久国产精品二卡| 欧美高清在线观看一区二区三区 | 欧美日韩精品视频在线第一区| 2021国产精品自在自线| 影音先锋天堂网亚洲无码| 五月天婷婷一区二区三区久久| 日韩毛片一区视频免费在线观看| 亚洲av一区二区在线看| 久久精品男人的天堂av| 欧美人与动人物A级| 大鸡巴射精在小穴动漫版|