⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad.asm

📁 我学单片机89C51时编的大部分程序都在里面
💻 ASM
字号:
        ORG 0000H       
        LJMP START
        ORG 0020H
        LJMP SERVE
        ORG 0030H
START:  MOV R0,#00H
        MOV R1,#0FFH            ;256个数据
        MOV DPTR,#7FF7H         ;给DPTR置的初值
        
        MOV P1,#0FFH            ;读取键值
        MOV A,P1
        CPL A
        JZ START
        LCALL D10MS
        MOV A,P1
        CPL A
        ANL A,#0FFH
        JZ START
        MOV B,A
KEY:    MOV A,P1
        CPL A
        ANL A,#0FFH
        JNZ KEY                 ;判断是那个键按下,并执行相应操作
        LCALL D10MS
        MOV A,B
        JB ACC.0,K1
        JB ACC.1,K2
        JB ACC.2,K3
        JB ACC.3,K4
        JB ACC.4,K5
        JB ACC.5,K6
        JB ACC.6,K7
        JB ACC.7,K8
        LJMP START
        
        SETB IT1               ;脉冲触发方式
        SETB EA                ;开中断
        SETB EX1     

              
K1:     MOV B,#01H
        LJMP NEXT
             
K2:     MOV B,#02H
        LJMP NEXT
             
K3:     MOV B,#03H
        LJMP NEXT             
                      
K4:     MOV B,#04H
        LJMP NEXT
             
K5:     MOV B,#05H
        LJMP NEXT
             
K6:     MOV B,#06H
        LJMP NEXT
             
K7:     MOV B,#07H
        LJMP NEXT
             
K8:     MOV B,#08H
        LJMP NEXT

NEXT:   MOV A,DPL
        ADD A,B              ;选择计数器通道
        MOV DPL,A
        MOVX @DPTR,A           ;启动A/D转换

        SJMP $

SERVE:  MOVX A,@DPTR            ;读数
        MOVX @R0,A              ;存数
        INC R0                  ;更新暂存单元
        DJNZ R1,DONE            ;N次采样是否结束
        RETI
DONE:   MOVX @DPTR,A            ;转换完毕
        RETI


D10MS:  MOV R7,#10H           ;10MS延时程序
DS11:   MOV R6,#0FFH
DS22:   DJNZ R6,DS22
        DJNZ R7,DS11
        RET              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -