您现在所在的是:

单片机论坛

回帖:6个,阅读:2625 [上一页] [1] [下一页]
804
wangzicc
文章数:3
年度积分:50
历史总积分:804
注册时间:2009/6/8
发站内信
发表于:2011/1/23 14:25:48
#0楼
[size=4]
这个是我照教材上画的图,程序也是书上写的,目的是向用开关控制小灯亮灭,但是现在发现不管开关什么状态,小灯在执行sjmp $后就一直亮着。由于我初学看不出来哪里有问题,是图的问题还是程序的问题,希望能帮我解决这个对我来说是大问题的问题,谢谢。附件有截图的原始dsn图。
程序:
LIGHT BIT P1.0
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:CLR LIGHT
    SJMP $
    END
附件:
[本地下载]
[/size]









图




[此贴子已经被作者于2011/1/23 14:31:35编辑过]
804
wangzicc
文章数:3
年度积分:50
历史总积分:804
注册时间:2009/6/8
发站内信
发表于:2011/1/23 14:32:33
#1楼
有人能帮帮忙吗?
19254
pqsh 版主
文章数:7424
年度积分:1084
历史总积分:19254
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2011/1/25 11:09:48
#2楼
开关在哪里呢?程序里没有啊?
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
917
clut
文章数:4
年度积分:50
历史总积分:917
注册时间:2006/9/19
发站内信
发表于:2011/1/28 11:28:28
#3楼
程序的问题。主程序第一条语句执行后点亮挂在p1.0口的小灯,第二条语句SJMP $为死循环,即一直跳转到该语句本身。程序当中未看到有读p0口开关状态的指令,所以开关无法控制小灯的状态。
1000
sunsoncheng
文章数:109
年度积分:50
历史总积分:1000
注册时间:2010/5/25
发站内信
发表于:2011/1/29 13:31:58
#4楼
程序就这两句:
CLR LIGHT;将灯的电平(P1.0)转为低电平,现在的板子一般都是初值设为高电平而由单片机来控制低电平的,也就是说,当P1.0变成低电平后,就会的电流通过灯就亮了!

    SJMP $;按命令的理解,就是跳转到$这句,但$就是自己,也就是说不断地自己在这里转,也就是进入了S循环,

所以你的灯一亮了就关不了了。
2086
zhengj1
文章数:143
年度积分:50
历史总积分:2086
注册时间:2010/12/8
发站内信
发表于:2011/2/9 16:44:34
#5楼
跳转没有用好
在程序中点亮小灯和熄灭小灯的语句写一起,在两个语句后面都要加上延迟时间,最后在这几句之间循环就可以了
710
林挺
文章数:1
年度积分:50
历史总积分:710
注册时间:2011/2/14
发站内信
发表于:2011/2/14 10:51:56
#6楼
试试这个程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
    JB  P0.0,$ ;按下按键
    JNB  P0.0,$  ;松开按键
    CPL P1.0
    SJMP MAIN
    END

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006