找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1343|回复: 1
打印 上一主题 下一主题
收起左侧

大佬帮忙看一下我这个单片机A/D扩展的程序

[复制链接]
跳转到指定楼层
楼主
   程序目的是开机后稳定显示准备符 P - - 3 7 - 0 0,当中断出现后,连续实时采集模拟电压,将结果在数码管最后二位显示出来,其它显示位不变。当手动旋转可调电压在 0--5 V范围变化时,显示应该在 00----FF之间变化。   但是我做的这个点击中断脉冲之后,滑动变阻器,后两位数字并不会变化,一直是00,这怎么回事儿啊,大佬们帮我看一下,谢谢!原理图如图:




程序是:
ORG 0000H
AJMP MAIN
org 0003h
ajmp zd0
ORG 0100H
MAIN:nop
setb ex0
setb ea
setb it0
LOOP0:            
mov 70H, #00H
mov 71H, #00H
mov 72h, #11h
mov 73h, #07h
mov 74h, #03h
mov 75H, #11H
mov 76H, #11H
mov 77H, #10H

LOOP:        ACALL  DIS
                   AJMP  LOOP
zd0:nop
lop001:mov p1,#0f8h  ;选中0809 IN0
clr p3.4         ;给 START 发正脉冲,启动转换
nop
nop
setb p3.4
nop
nop
clr p3.4
nop
nop
acall dis         ;延时,等待转换结束
mov a,p1          ;读转换结果
mov r6,a
anl a,#0fh         ;将转换结果分别送对应显示缓冲单元
mov 71h,a
mov a,r6
swap a
anl a,#0fh
mov 70h,a
acall dis
ajmp lop001
reti
DIS:    MOV R0, #77H  ;动态显示子程序
        MOV R2, #7fH
        MOV A, R2
LP0: MOV P2,A
           MOV DPTR, #TABLE
           MOV A, @R0
           MOVC  A, @A+DPTR
           MOV P0, A
           ACALL  D2MS
           DEC  R0
           MOV A, R2
               JNB  Acc.0,LP1
               RR  A
               MOV R2, A
               AJMP  LP0
LP1:RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H
       DB 82H,0F8H,80H,90H,88H,83H
       DB 0C6H,0A1H,86H,8EH,8CH,0BFH,0FFH
D2MS:   MOV R7,#02H
DL:      MOV R6,#0FFH
DL1: DJNZ R6,DL1
              DJNZ R7,DL
              RET
        end



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:267719 发表于 2020-5-22 18:14 | 只看该作者
软件问题:
p3.3的ADC CLOCK没给。
没判断p3.6转换是否结束
锁存输出OE p3.5也没给
所以IO读入始终为0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表