作者gnayiew (阿宅)
看板ASM
标题[问题] 有关8051和电脑之间传输的问题
时间Mon Apr 6 22:15:56 2009
把程式做省略
其中 SET_BPS 是RS232的设定
另外 CLOSE
STRONG
MEAD
LIGHT
都是子程式 (无关我的问题所以没PO出来)
此程式设计构想是
当我电脑输入8051是0时 跑CLOSE子程式 (沟通的程式用LABVIEW)
当我电脑输入8051是1时 跑STRONG子程式
当我电脑输入8051是2时 跑MEAD子程式
当我电脑输入8051是3时 跑LIGHT子程式
如果没有符合以上条件 程式跑完回到START1继续等待输入
但是实际情况是
我输入2 12 22 是跑LIGHT
我输入6 16 26 是跑MEAD
其他数字都是等待继续输入
怀疑是START1出错
可是找不出原因
不知道是否有其他人有类似经验可以分享问题
补充一下 我的四个子程式结束会回到START1开头
------------------------以下是程式码 有省略过了
SIG REG P1.0 ;
ORG 0000H ;
START: MOV R0,#FFH ;
$1: DJNZ R0,$1 ;
MOV SP,#1AH ;
CALL SET_BPS
CLR RI
LR TI
START1: CLR P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR SIG
JNB RI,START1 ;等待资料输入
CLR RI
MOV A,SBUF
SUBB A,#0030H
JZ CLOSE
SUBB A,#0001H
JZ STRONG
SUBB A,#0001H
JZ MEAD
SUBB A,#0001H
JZ LIGHT
LJMP START1
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.57.22
※ 编辑: gnayiew 来自: 140.114.57.22 (04/06 22:23)
1F:推 stool100:怀疑是鲍率有错 建议用双向通讯确认 04/07 13:20
2F:→ gnayiew:抱歉找到问题了 MAX232和RS232的脚位差错 04/07 14:52