单片机AT89C51的一段ASM代码出现了问题 LED数码管不亮 不知道是我电路图连错了还是怎么 不显示数字

代码如下org00h;开始MOVP1,#00H;开机电压置0SETBp2.5;关掉输出,防止开机瞬间电压过高损坏用电器。SETBP3.7SETBP3.6SETBP3.5S... 代码如下
org 00h ;开始
MOV P1,#00H;开机电压置0
SETB p2.5;关掉输出,防止开机瞬间电压过高损坏用电器。
SETB P3.7
SETB P3.6
SETB P3.5
SETB P3.4
start:
V15:;1.5伏
LCALL DELAY2;防按键抖动
MOV P1,#03H;1.5V数据量
CLR P2.5;闭合继电器开关,输出电压
B1:
MOV P0,#01111001B;显示1和小数点
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00010010B;显示5
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S1;检测是否短路,过流。
JB P3.6,T;减键
JB P3.7,V3;增键
JB P3.5,s1;关机
JMP B1
T:LJMP V12;因为程序太长,不能直接转移,所以要用长调用命令!
S1:LJMP STOP;因为程序太长,不能直接转移,所以要用长调用命令!
V3:;3伏
LCALL DELAY2
MOV P1,#1bH;3V数据量
B2:
MOV P0,#11000000B;显示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10110000B;显示3
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S2;检测是否短路,过流。
JB P3.5,s2;关机
JB P3.6,V15;减
JB P3.7,V42;增
JMP B2
S2:LJMP STOP
V42:;4.2伏
LCALL DELAY2
MOV P1,#2FH;4.2V数据量
B3:
MOV P0,#00011001B;显示4和小数点
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00100100B;显示2
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S3;检测是否短路,过流。
JB P3.5,s3;关机
JB P3.6,V3;减
JB P3.7,V5;增
JMP B3
S3:LJMP STOP
V5:;5伏
LCALL DELAY2
MOV P1,#3FH;5V数据量
B4:
MOV P0,#11000000B;显示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10010010B;5
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S4;检测是否短路
JB P3.5,s4;关机
JB P3.6,V42;减
JB P3.7,V6;增
JMP B4
S4:LJMP STOP
V6:;6伏
LCALL DELAY2
MOV P1,#4EH;6V数据量
B5:
MOV P0,#11000000B;显示0
clr P2.6
CLR P2.7
LCALL delay
MOV P0,#10000010B;显示6
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,S5;检测是否短路
JB P3.5,S5;关机
JB P3.6,V5;减
JB P3.7,V84;增
JMP B5
S5:LJMP STOP
V84:;8.4伏
LCALL DELAY2
MOV P1,#78H;8.4V数据量
B6:
MOV P0,#00000000B;显示8
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#00011001B;显示4
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,STOP;检测是否短路
JB P3.5,STOP;关机
JB P3.6,V6;减
JB P3.7,V12;增
JMP B6
V12:;12伏
LCALL DELAY2
MOV P1,#0B4H;12V数据量
B7:
MOV P0,#11111001B;显示1
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#10100100B;显示2
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,STOP;检测是否短路
JB P3.5,STOP;关机
JB P3.6,V84;减
JB P3.7,T2;增
JMP B7
T2:JMP V15
STOP:;关机
LCALL DELAY2
MOV P1,#00H;令LM317电压最低
STOP2:
SETB P2.5;关闭输出
MOV P0,#11000000B;显示O
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#10001110B;显示F
SETB P2.7
CLR P2.6
LCALL delay
JB P3.5,ST;再次开机
jb p3.6,st;再次开机
jb p3.7,st;再次开机
JMP STOP2
ST:LJMP V15
delay: MOV R2,#5;延时子程序
L1001: mov R3,#250
DJNZ R3,$
DJNZ R2, L1001
ret
DELAY2:;延时子程序
MOV R6,#3
D2:MOV R4,#200
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
djnz r6,d2
RET
end
希望大神解答
展开
 我来答
GUEL86
2013-04-23 · TA获得超过5855个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2728万
展开全部
你这个程序 数码管 应该用共阳的,能亮出来 但程序 太乱了 同时在一个数码管上显示了几个数,显示不正常,这样的电路 在仿真时还能掺和,实际电路是不行的,当然学习能仿真出来
已经是一大进步,先不要太复杂 一步一步 增加难度,这样比较 容易。
追问
能给个QQ帮助一下么  有偿的  谢谢拉
追答
知道名 就是 百度 Hi
org 00h ;开始 先这部分 试试 再增加功能
MOV P1,#00H;开机电压置0
SETB p2.5;关掉输出,防止开机瞬间电压过高损坏用电器。
SETB P3.7
SETB P3.6
SETB P3.5
SETB P3.4
start:
V15:;1.5伏
LCALL DELAY2;防按键抖动
MOV P1,#03H;1.5V数据量
CLR P2.5;闭合继电器开关,输出电压
B1:
MOV P0,#01111001B;显示1和小数点
SETB P2.6
LCALL delay
CLR P2.6
MOV P0,#10010010B;显示5
SETB P2.7
LCALL delay
CLR P2.7
;JNB P2.4,S1;检测是否短路,过流。
;JB P3.6,T;减键
;JB P3.7,V3;增键
;JB P3.5,s1;关机
JMP B1
lake_rd
2013-04-23 · TA获得超过1311个赞
知道小有建树答主
回答量:1434
采纳率:0%
帮助的人:834万
展开全部
电路连接问题.LED直接用I/O口不太合适.根据LED数码管是共阳的话把COM口接在电源端 ,共阴的化电路或比较麻烦一些,最好是共阳了.
更多追问追答
追问
55接了以后可以显示数字了 但是在不停地重复显示55 22 FF 是为什么?
追答
那说明数码管可以工作,显示乱码那与硬件关系不大了,检查代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朝酒晚舞8031
2013-04-23 · TA获得超过467个赞
知道答主
回答量:269
采纳率:0%
帮助的人:132万
展开全部
一部分、一部分的调试,先调试显示部分。

能稳定显示之后,再把检测到的数据,送去显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
czpsys
2013-04-24 · TA获得超过200个赞
知道小有建树答主
回答量:430
采纳率:0%
帮助的人:160万
展开全部
串联电阻就会亮了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jayyuz
2013-04-23
知道答主
回答量:9
采纳率:0%
帮助的人:9705
展开全部
数码管的数据改变的太快,每个要显示的数字延时太短,导致人眼不可分辨。所以你看到的是55,22,ff。如果你只显示一组数据就好了。或者每组数据延时足够长如5s。
追问
请问怎么改变呢?
追答
从这里:V3:;3伏
LCALL DELAY2
MOV P1,#1bH;3V数据量
B2:
MOV P0,#11000000B;显示0

B7:
MOV P0,#11111001B;显示1
SETB P2.6
CLR P2.7
LCALL delay
MOV P0,#10100100B;显示2
CLR P2.6
SETB P2.7
LCALL delay
JNB P2.4,STOP;检测是否短路
JB P3.5,STOP;关机
JB P3.6,V84;减
JB P3.7,T2;增
J
MP B7
T2: 到这里
在源程序中把这段注释掉就可以了。如果想要显示多组,可以自己重新写一个延时程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式