单片机设计八个彩灯控制电路,遇到了一点问题,请高手指出错误之处

程序和PROTEUS图已经做出来了(如下),preteus图可以运行简单的彩灯程序,但是运行这个程序时灯只是全亮不动,程序和proteus图都找不出问题,希望高手指点一二... 程序和PROTEUS图已经做出来了(如下),preteus图可以运行简单的彩灯程序,但是运行这个程序时灯只是全亮不动,程序和proteus图都找不出问题,希望高手指点一二。
要求:
1 从左到右排列,编号为1~8号。系统启动后,灯管 点亮的顺序依次为:1号→2号→3号→...→7号→8 号,时间间隔为1S。8根彩灯全亮后,持续10S。然 后按照8号→7号→6号→...→2号→1号的顺序依次 熄灭,时间间隔为1S。灯管全部熄灭后,等待2S, 再从8号灯管开始,按照8号→7号→6号→...→2号 →1号的顺序依次点亮,时间间隔为1S。全部点亮后 持续20S,再按照1号→2号→3号→...→7号→8号的 顺序熄灭,时间间隔仍为1S。灯管全部熄灭后,等 待2S,再重新开始上述过程的循环。
下面是已经做出来的程序:
ORG 0000H
LJMP START
ORG 0030H
START: MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H ;定时器1工作于模式1,时间为50ms
MOV P1,#0FFH ;低电平有效,灯熄灭
MOV R7,#00H
LOOP1: INC R7
MOV A,R7
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY1
CJNE R7,#8,LOOP1;8次没显示完则继续循环
LCALL DELAY2;过程1
MOV R7,#8
LOOP2: DEC R7
MOV A,R7
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY1
CJNE R7,#0,LOOP2;8次没完则继续循环
LCALL DELAY1
MOV R7,#0H
LOOP3:INC R7
MOV DPTR,#TAB2
MOV A,R7
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY1
CJNE R7,#8,LOOP3;8次未完继续循环
LCALL DELAY3
MOV R7,#8H
LOOP4:DEC R7
MOV A,R7
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY1
CJNE R7,#0,LOOP4;8次未完继续循环
LCALL DELAY1
LJMP START ;开始下一个循环
DELAY1:MOV R0,#20
LOOP5:
SETB TR1
JNB TF1,$
DJNZ R0,LOOP5
CLR TR1
RET ;一秒延时
DELAY2:MOV R0,#9
LOOP6:LCALL DELAY1
DJNZ R0,LOOP6
RET ;9秒延时
DELAY3:MOV R0,#19
LOOP7:LCALL DELAY1
DJNZ R0,LOOP7
RET ;19秒延时
TAB1:DB 0FFH,7FH,3FH,1FH,0FH
DB 07H,03H,01H,00H
TAB2:DB 0FFH,0FEH,0FCH,0F8H,0F0H
DB 0E0H,0C0H,080H,00H
END
这是proteus图
展开
 我来答
SAMPANDO
2011-06-22 · TA获得超过164个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:144万
展开全部
从"灯只是全亮不动"看,程序没有正常运行.
从程序看,没有定时中断程序.DELAY字程序放在定时中断里就可了,设置位1S,2S,10S取反一次.再检测此位的电平.
从电路看,芯片片选脚可能没有接对.
这样的顺序程序,不用TAB的定义,直接置数,延时,再循环就可了,
你是初学者,建议你先写简单的方法使"1号→2号→3号→...→7号→8 号,时间间隔为1S。"运行,确认电路正常,
再写复杂的方法,
宿兴电子
2024-11-28 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡... 点击进入详情页
本回答由宿兴电子提供
wgq930
2011-06-22 · TA获得超过2262个赞
知道大有可为答主
回答量:4926
采纳率:51%
帮助的人:1929万
展开全部
少了最主要的中断部分的程序
ORG 001BH
SJMP ZD
...
ZD: MOV

还有: RL A ;也没有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzkcyy
2011-06-22 · TA获得超过670个赞
知道小有建树答主
回答量:780
采纳率:0%
帮助的人:464万
展开全部
电路没有问题。
只能看懂C语言的,汇编语言的我看不懂,但可以提供思路:
如果点亮的时间间隔为1S,则某端口输出低电平时(低电平有效)灯点亮,低电平要延时500ms;然后再反转为高电平(灯熄灭),高电平再延时500ms。完成一次动作。
你的问题可能出在没有进行电平翻转并延时,所以灯一直亮着。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wujust
2011-06-22 · TA获得超过135个赞
知道答主
回答量:158
采纳率:50%
帮助的人:44.9万
展开全部
循环语句的问题
个人感觉循环的有点乱了,电路没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦幻乐园2011
2011-06-23
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
图片不清晰 希追加大图!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式