• 專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    STC12C2052單片機制作數字電壓表匯編程序

    作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月24日   【字體:

    用STC12C2052單片機芯片自帶的ad進行采樣得到電壓并顯示在數碼管上面,下面是匯編語言源程序:

    ;===================數字電壓表模擬采樣===================================

     

                   P1M0         EQU        91H   ;端口設置寄存器
                   P1M1         EQU        92H   ;端口設置寄存器
                   AK           EQU        0C5H  ;A/D轉換控制寄存器
                   ADATA        EQU        0C6H  ;保存轉換數據的高8位
                   ADATAD       EQU        0BEH  ;保存轉換數據的低2位
                   ORG          00H
                   JMP          MAIN

    ;==================================================
    MAIN:          MOV          P1,#00H
                   MOV          P3,#00H
                   MOV          TMOD,#01H
                   MOV          TH0,#0FCH
                   MOV          TL0,#17H
                   MOV         30H,#01
                   MOV        32H,#03H
                   MOV        33H,#04H
                   MOV        31H,#02H
                   MOV        8EH,#00H
                   MOV        PCON,#00H
                   MOV        P1,#0FFH
                   MOV        P3,#0FFH
                   MOV        P1M0,#4H    ;設置端口為A/D模式
                   MOV        P1M1,#4H    ;設置端口為A/D模式
                   MOV        ADATA,#00H
                   MOV        AK,#80H     ;打開A/D電源
                   CALL       DIP
                   CALL       DIP
                   CALL       DIP
                   CALL       DIP
                   CALL       DIP
                   CALL       DIP
               ;==================================================
                  MOV        AK,#0E2H    ;選擇通道P1。2為A/D輸入端
               ;===============================================
    LOOP_22:      ORL        Ak,#08H     ;啟動轉換
    LOOP_0:       MOV        A,#10H
                  ANL        A,AK        ;判斷是否轉換完成
                  JZ         LOOP_0
               ;==============================================
                  ANL        AK,#0E7H    ;把標志位清零
                  MOV        A,ADATA     ;讀取轉換后的高8值
               ;==============================================
                  MOV        B,#100
                  DIV        AB
                  MOV        30H,A
                  MOV        A,B
                  MOV        B,#10
                  DIV        AB
                  MOV        31H,A
                  MOV        32H,B
    ;================================================
                   MOV          66H,#50
    LOOP:          CALL         DIP
                   DJNZ         66H,LOOP
                   JMP          LOOP_22
    ;=================================================
    DIP:           MOV          A,30H
                   CALL         TABLE
                   MOV          P3,A
                   SETB         P1.0
                   MOV          65H,#1
                   CALL         T2MS
                   CLR          P1.0
                   ;=================
                   MOV          A,31H
                   CALL         TABLE
                   MOV          P3,A
                   SETB         P1.1
                   MOV          65H,#1
                   CALL         T2MS
                   CLR          P1.1
                   ;===============
                   MOV          A,32H
                   CALL         TABLE
                   MOV          P3,A
                   SETB         P1.7
                   MOV          65H,#1
                   CALL         T2MS
                   CLR          P1.7
                   ;================
                   MOV          A,33H
                   CALL         TABLE
                   MOV          P3,A
                   SETB         P1.4
                   MOV          65H,#1
                   CALL         T2MS
                   CLR          P1.4
                   RET
    ;=================================================
    T2MS:
                  MOV          TH0,#0FCH
                  MOV          TL0,#17H
                  SETB         TR0
                  JNB          TF0,$
                  CLR          TF0
                  DJNZ         65H,T2MS
                  RET
    ;=============================================
    TABLE:        INC          A
                  MOVC         A,@A+PC
                  RET
                  DB          3FH,06H,9BH,8FH,0A6H,0ADH,0BDH,7H,0BFH,0AFH
                              ;0   1   2   3   4    5    6    7   8   9
    ;==============================================
                END

     

           成功啦 更愛上我的單片機設計

     

    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的