作者LLight (世上皆虚情假意..)
看板ASM
标题Re: 电脑(VB)经由MAX-232与8051沟通上问题
时间Wed Mar 14 13:29:57 2007
※ 引述《king53719 (伟仔)》之铭言:
: HI, 我有一个8051跟rs232沟通上的问题,想麻烦请教各位!
: 我是利用vb经由rs232在经由MAX-232转换位准传送到8051。
: 我主要是在CASE "A"中出现问题,其余动作正常,当我从VB中传出ASCII码1
: ,也就是要执行 CASE "A"中让P0.2的LED导通(亮),但是没辨法亮,
: 其余经由VB传出的ASCII码执行的动作正常,麻烦您帮我一下..谢谢!
你的状况应该跟LED有关... 共阴或共阳...
因为8051的P0,是开集极... 而P1~P3不是开集极...
若P0之LED共接脚为地... 则应该要接个提升电阻... LED才会亮...
(P1~P3都有内建提升电阻,这就是为什麽你的P1~P3之LED都能显示正常的原故。)
没猜错的话... 希望有解决到... (没看程式...)
: 以下是我8051的程式!
: MOV R5,#25
: CALL DELAYms
: CPL P0.0
: ;-------------------------------;
: WAIT: JNB RI,WAIT
: CPL P0.1
: CLR RI
: MOV A,SBUF
: ;-------------------------------;
: ;--SELECT CASE------------------;
: ;--CASE "A"---------------------;
: MA:
: CJNE A,#1,MB
: CPL P0.2
: JMP MEND
: ;--CASE "B"---------------------;
: MB:
: CJNE A,#2,MC
: MOV R1,#10
: MBLOOP:
: CPL P0.3
: MOV R5,#25
: CALL DELAYms
: CPL P0.3
: MOV R5,#25
: CALL DELAYms
: DJNZ R1,HBLOOP
: JMP HEND
: ;--CASE "C"----------------------;
: MC:
: CJNE A,#3,MEND
: MOV R1,#10
: MCLOOP:
: CPL P0.4
: MOV R5,#50
: CALL DELAYms
: CPL P0.4
: MOV R5,#50
: CALL DELAYms
: DJNZ R1,MCLOOP
: JMP MEND
: ;--CASE "D"----------------------;
: ;--CASE "E"----------------------;
: ;--CASE ELSE---------------------;
: MEND:
: CPL PO.2
: MOV R5,#50
: CALL DELAYms
: CPL PO.1
: JMP WAIT
: ;--CASE END-----------------------;
: ;---------以下为副程式------------;
: ;---------------------------------;
: INIT_RS232:
: MOV TMOD,#20H
: MOV TH1,#0E8H
: SETB TR1
: MOV SCON,#01010000B
: RET
: ;----------------------------------;
: DELAYms:
: MOV R6,#100
: DELAYm : MOV R7,#100
: DJNZ R7,$
: DJNZ R6,DELAYm
: DJNZ R5,DELAYms
: RET
: ;----------------------------------;
: END
: ;----------------------------------;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.72.21.157
1F:推 loveflames:有内建提升电阻就不是不是开集极? 03/16 22:36
2F:推 loveflames:P1~P3应该是open drain,毕竟还是有用到提升电阻 03/16 22:39
3F:推 LLight:基本上只是想要好说明.. 实际上应该是电晶体电路... 03/16 23:40
4F:→ LLight:应该是图腾柱... 没查... 03/16 23:40