找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2321|回复: 1
收起左侧

8051单片机p1口控制八个led灯大家帮忙看一下那里有问题,问题描述看内容

[复制链接]
ID:835068 发表于 2020-10-27 10:44 | 显示全部楼层 |阅读模式
程序功能:8051单片机p1口控制八个led灯,要求八个灯加一移位点亮,当中断来时,灯全灭后全亮,中断返回后灯继续加一移位点亮
问题:程序运行起来总是会先8个led先亮一次,然后正常运行,可是我并没有这样编程,单步执行程序也是正常运转,但一全速运行就会先全亮然后正常运行,如果把中断去掉也会正常运转,请问这是什么问题?更新问题:在protues上仿真出现上述问题,但下载到单片机上没问题,这咋回事啊。。。。
程序:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXT0
MAIN:MOV TMOD,#10H
MOV A,#0FFH  ;把A置1
MOV SP,#60H        ;调整堆栈深度

SETB EX0           ;开中断
SETB IE0           ;外部中断INT0以下降沿触发
LOOP: MOV P1,A
CLR EA
LCALL DELAY
SETB EA
DEC A
SJMP LOOP

DELAY:MOV R7,#0AH        ;循环10次
DELAY1: MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
LOOP1: JBC TF1,CIR
SJMP LOOP1
CIR: CLR TR1
DJNZ R7,DELAY1
RET

EXT0:PUSH ACC
MOV A,#0FFH
MOV P1,A
LCALL DELAY
CPL A
MOV P1,A
LCALL DELAY
POP ACC
RETI

END



回复

使用道具 举报

ID:451718 发表于 2020-10-27 19:56 | 显示全部楼层
骑着单车上高速,你是来看风景的还是来赶路的?
一般单片机上电的时候,所有端口如果没有赋值,一般都是默认高电平的。 除非你做了下拉电阻,并且不是推挽输出。  MOV过来PUSH过去的,现在已经看不懂了,估计你下载到单片机上,第一次上电的时候,也会全部亮一次吧。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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