专注电子技术学习与研究
当前位置:单片机教程网 >> 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

 

       成功啦 更爱上我的单片机设计

 

关闭窗口

相关文章