2504|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

汇编写的一段自切换量程电压表程序 [复制链接]

这是编写的一个自动切换量程的电压表汇编程序,调试时有个问题,就是只能从0.00调到1.99,不满足题目及程序的编写要求,恳请前辈们悉心指点一二:
(题目:采用模数转换芯片ADC0832做电压采集,继电器做量程切换,电压采集结果用3位数码管显示,要求分档采集0-2V的电压。当电压在0~0.2V范围内,显示单位为毫伏mV,如175mV;在0.2~2V范围内,显示单位为V,如0.22V。(单位不显示,仅显示数字)

(附加说明:p2口控字形,p0口控字位,p3.6档位切换,我在线,还有要说明的我再补充)
            ORG     0000H
MAIN:   CLR     P3.6
            CLR      00H
TEST:
        MOV      SP,#60H
        ACALL   DELAY
        ACALL   CONV
        ACALL   JUDGE
        ACALL   DISPLAY
        LJMP     TEST
CONV:
        SETB    P3.0   ;初始化通道选择
        CLR      P3.2
        NOP
        NOP
        CLR      P3.3   ;拉低/CS端
        NOP
        NOP
        SETB    P3.2   ;拉高CLK端
        NOP
        NOP
        CLR      P3.2   ;拉低CLK端,形成下降沿
        SETB    P3.0
        NOP
        NOP
        SETB    P3.2   ;拉高CLK端
        NOP
        NOP
        CLR     P3.2   ;拉低CLK端,形成下降沿2
        CLR     P3.0   ;1-0选择1通道
        NOP
        NOP
        SETB    P3.2   ;拉高CLK端
        NOP
        NOP
        CLR      P3.2   ;拉低CLK端,形成下降沿3
        SETB    P3.0
        NOP
        NOP
        MOV     R7,#8  ;准备送下后8个时钟脉冲
RECEIVE:
        MOV     C,P3.1 ;接收数据
        MOV     ACC.0,C
        RL        A      ;左移一次
        SETB    P3.2
        CLR     P3.2   ;形成一次时钟脉冲
        DJNZ    R7,RECEIVE      ;循环7次
        MOV     C,P3.1 ;接收数据
        MOV     ACC.0,C
        SETB    P3.3   ;拉高/CS端
        CLR      P3.2   ;拉低CLK端
        SETB    P3.1   ;拉高数据端,回到初始状态
        MOV     30H,A
        RET
JUDGE:  JB      00H,LOOP
        CJNE    A,#0FFH,LOOP1
        SETB    00H    ;大量程
        SETB    P3.6
        SJMP    DONE
LOOP:
        CJNE    A,#19H,LOOP2
        CLR     00H
        CLR     P3.6
        SJMP    DONE
LOOP1:  CLR     00H
        CLR     P3.6
        LCALL   BCDCON
        SJMP    DONE
LOOP2:  JC      CLEAR
        LCALL   BCDCON
        SJMP    DONE
        CLEAR:  CLR     00H
        CLR     P3.6
        SJMP    DONE
DONE:   RET
BCDCON:
        MOV      A,30H
        MOV      B,#200
        MUL      AB
        MOV      R4,B
        MOV      A,R4
        MOV      B,#100
        DIV      AB
        MOV      40H,A
        MOV      A,B
        MOV  B,#10
        DIV      AB
        MOV      41H,A
        MOV      42H,B
DISPLAY:
        SETB     P0.3
        SETB     P0.4
        SETB     P0.5
NUMBER1:JB       P3.4,LED
        MOV      DPTR,#TAB1
        MOV      A,40H
        MOVC     A,@A+DPTR ;查字形表
        MOV      P2,A      ;p2口作字形
        CLR      P0.5
        ACALL    DELAY
        SETB     P0.5
        SJMP     NUMBER2
LED:    MOV      DPTR,#TAB2
        MOV      A,40H
        MOVC     A,@A+DPTR  ;查字形表
        MOV      P2,A       ;p2口作字形
        CLR      P0.5
        ACALL    DELAY
        SETB     P0.5

NUMBER2:MOV  DPTR,# TAB1
        MOV      A,41H
        MOVC     A,@A+DPTR  ;查字形表
        MOV      P2,A
        CLR      P0.4
        ACALL    DELAY
        SETB     P0.4
NUMBER3:MOV  DPTR,# TAB1
        MOV      A,42H
        MOVC     A,@A+DPTR  ;查字形表
        MOV      P2,A
        CLR      P0.3
        ACALL    DELAY
        SETB     P0.3
        RET
TAB1:     DB       3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
TAB2:     DB       0BFH,86H,0DBH
DELAY:  MOV      R3,#0AH
DELAY1: MOV      R4,#0FFH
DELAY2: DJNZ     R4,DELAY2
               DJNZ     R3,DELAY1
               RET
此帖出自单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表