看板 ASM 關於我們 聯絡資訊
※ 引述《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
loveflames:有內建提升電阻就不是不是開集極? 03/16 22:36
loveflames:P1~P3應該是open drain,畢竟還是有用到提升電阻 03/16 22:39
LLight:基本上只是想要好說明.. 實際上應該是電晶體電路... 03/16 23:40
LLight:應該是圖騰柱... 沒查... 03/16 23:40