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

📄 ad1

📁 我学单片机89C51时编的大部分程序都在里面
💻
字号:
;改用一个通道判别方式,并加入显示程序
;能重复按键,已选择不同通道
;将不同通道的数据存放于内存不同单元
        ORG 0000H
        LJMP START
        ORG 0020H
        LJMP SERVE
        ORG 0030H
START:  MOV SCON,#00H           ;初始化串行口方式0
        MOV DPTR,#TABLE         ;查表
        LCALL QINGLING
        CLR EA

        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

        MOV R2,#00H             ;选择计数器通道第R2个
RR0:    RR A
        INC R2
        CPL ACC.7
        JNZ RR0

        MOV DPTR,#TABLE         ;查表
        MOV A,R2
        LCALL DISPLAY           ;显示通道数

        MOV DPTR,#7FF7H         ;给DPTR置的初值
        MOV A,DPL
        ADD A,R2
        MOV DPL,A
        MOVX @DPTR,A           ;启动A/D转换

        MOV R0,#00H             ;数据存放地址
        MOV R1,#0FFH            ;256个数据

        SJMP $

;中断服务程序
SERVE:  MOVX A,@DPTR            ;读数
        MOVX @R0,A              ;存数
        INC R0                  ;更新暂存单元
        DJNZ R1,DONE            ;N次采样是否结束
        RETI
DONE:   MOVX @DPTR,A            ;转换完毕
        RETI                    ;改为LJMP START,是否能跳到主循环

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

QINGLING:MOV R0,#04H             ;清零
LOOP:   MOV A,#20
        LCALL DISPLAY
        DJNZ R0,LOOP
        LCALL D1S
        RET
                                ;显示
DISPLAY:MOVC A,@A+DPTR          ;查表
        MOV SBUF,A              ;输出
DELAY:  JNB TI,DELAY            ;八个字节是否发送完
        CLR TI                  ;清标志位
        RET

D1S:    MOV R7,#010       ;1S延时程序
DS1:    MOV R6,#200
DS2:    MOV R5,#250
DS3:    DJNZ R5,DS3
        DJNZ R6,DS2
        DJNZ R7,DS1
        RET

TABLE:  DB 0BBH,09H,0EAH,6BH,59H,73H,0F3H,0BH,0FBH,7BH
        DB 0F1H,0B2H,0E9H,0F2H,0D2H
        DB 49h,40h,0d9h,51h,60H,00H

⌨️ 快捷键说明

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