作者q1a2z3978 (欸等下)
看板ASM
标题[问题] 8051没有动作
时间Thu Jul 6 22:56:21 2017
我用的晶片是AT89S52,用Keil uVision5写的。
我想用组语写个LED亮暗的程式,但是一直没有动作(LED灯在插上电的瞬间会闪一下就没了)
诡异的是我若用C写,就能正常运作。因此能排除掉电路接错、硬体故障等问题。但是组合语言程式有模拟过了,程式应该也没有问题。
我在想会不会是我建立档案的时候副档名打.asm,请问这样会造成错误吗(因为当初学校用的是AT89C51,副档名打.a51,不晓得在AT89S52要变成什麽)
又或者是其他问题?希望有大大能提出建议,谢谢
------------------------------------------------------------------------------
以下是我的程式码:(程式新手请多包涵)
ORG 0H
SETB P3.7
HERE: ACALL DELAY
CPL P3.7
SJMP HERE
DELAY: MOV R0, #0FFH
AGAIN3: MOV R1, #0FFH
AGAIN2: MOV R2, #0FFH
AGAIN1: DJNZ R2, AGAIN1
DJNZ R1, AGAIN2
DJNZ R0, AGAIN3
RET
END
------------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.155.220.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1499352983.A.A7E.html
1F:→ dsplab: CPL 指令仅限 A 暂存器 07/06 23:31
2F:→ dsplab: 改为 XRL P3,#80H 07/06 23:33
3F:→ dsplab: 抱歉,CPL P3.7并没有错,请确认硬体是否正确 07/06 23:37
4F:→ a22326284: 一步步验证阿 先确定 5V RST XTAL是否有正确连接 07/07 00:57
5F:→ a22326284: 在先用简单的程式 例如只SETB P3.7 确认程式是否动作 07/07 00:58
6F:→ a22326284: 使用KEIL 建立的Project是否正确 等等之类的 07/07 01:00
7F:→ a22326284: 就我记得 是可以使用.asm当副档名的 07/07 01:00
8F:→ a22326284: 话说 您知道Delay的时间多长吗 感觉颇长的耶... 07/07 01:02
9F:→ a22326284: 还有您LED接的方式也提供一下会更好确认问题 07/07 01:03
真的是DELAY太长...,一开始不晓得写几层回圈比较刚好,於是写了三层,刚刚耐心等候才发现一个亮暗周期要一分多钟,改成两个回圈後就正常了。非常感谢a大跟d大的热心相助。
※ 编辑: q1a2z3978 (182.155.220.74), 07/07/2017 01:55:09