關於PC傳輸資料至8051顯示於LCD程式問題 |
缺席
|
phico-smt
一般會員 發表:2 回覆:1 積分:0 註冊:2005-03-30 發送簡訊給我 |
我使用超級終端機輸入資料給8051但卻無法顯示於LCD上,以下是8051的程式部份,煩請各位高手幫忙看看是否程式有問題??
ORG 0000H MOV TMOD,#00100000B MOV TH1,#230 MOV TL1,#230 SETB TR1 ACALL INIT ; MOV SCON,#01110000B LOOP: CLR RI WAIT: JNB RI,WAIT ; MOV A,SBUF MOV R1,A CJNE A,#date,address CJNE B,#date,address CJNE C,#date,address CJNE D,#date,address CJNE E,#date,address ACALL LINE1 MOV DPTR,#R1 ACALL DISPLAY ACALL LINE2 MOV DPTR,#R1 ACALL DISPLAY OK: AJMP OK ; INIT: ACALL DELAY MOV A,#38H ACALL WRINS MOV A,#38H ACALL WRINS MOV A,#38H ACALL WRINS MOV A,#38H ACALL WRINS MOV A,#08H ACALL WRINS MOV A,#01H ACALL WRINS MOV A,#06H ACALL WRINS MOV A,#0CH ACALL WRINS RET ; DISPLAY:MOV R7,#00H NEXT: MOV A,R7 MOVC A,@A DPTR CJNE A,#10H,DSP RET DSP: ACALL WRDATA INC R7 AJMP NEXT LINE1: MOV A,#10000000B ACALL WRINS RET LINE2: MOV A,#11000000B ACALL WRINS RET WRINS: MOV P3,#00011111B ;RS=0,R/W=0,E=0 NOP SETB P3.5 ;E=1 MOV P1,A NOP CLR P3.5 ;E=0 ACALL DLY1 RET WRDATA: MOV P3,#10011111B ;RS=1,R/W=0,E=0 NOP SETB P3.5 ;E=1 MOV P1,A NOP CLR P3.5 ;E=0 ACALL DLY2 RET ; DELAY: MOV R6,#100 DL: MOV R7,#200 DJNZ R7,$ DJNZ R6,DL RET ; DLY1: MOV R6,#20 DL1: MOV R7,#200 DJNZ R7,$ DJNZ R6,DL1 RET ; DLY2: MOV R6,#80 DJNZ R6,$ RET ; END發表人 - phico-smt 於 2005/05/12 15:34:32 |
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
phico-smt您好: 您是本站的新手 有幾點跟您提醒一下^^ 1.網頁上方有網站/新手必看(本站使用規定說明) 建議您先去看一下
或是連到這裡[url="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19264"]新手須知[/url] 2.另一個[url="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48259"]關於程式碼的縮排[/url] 3.請試著把8051的操作環境、指令功能跟程式碼搞懂 4.您的問題範圍過大 故障排除要把一個大問題拆開成數段
檢查每段的工作是否如預期完成 逐漸縮小範圍
如這個問題
拆成
(1)8051是否收到資料
(2)資料轉換/處理是否正確
(3)資料能否顯示在LCD上 5.謝謝您的合作 -------------------
美好的事物 稍縱即逝
|
foreman
高階會員 發表:3 回覆:124 積分:190 註冊:2004-09-10 發送簡訊給我 |
大大:
這程式能組譯OK嗎? ;??語法好相不對
MOV A,SBUF MOV R1,A CJNE A,#date,address ;?? CJNE B,#date,address ;?? CJNE C,#date,address ;?? CJNE D,#date,address ;?? CJNE E,#date,address ;?? ACALL LINE1 MOV DPTR,#R1 ;?? ACALL DISPLAY ACALL LINE2 MOV DPTR,#R1 ;?? ACALL DISPLAY |
phico-smt
一般會員 發表:2 回覆:1 積分:0 註冊:2005-03-30 發送簡訊給我 |
|
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
問題1:
OK: AJMP OK這是死迴圈 你的程式也沒啟動中斷 所以到這裡程式已經不再做任何事了 問題2: foreman大大說的 CJNE A,#date,address這不是個可編譯通過的指令 指令的意思是 當A不等於#data時就跳到address的位址 CJNE只有A 沒有B,C,D,E 問題3: SCON要在啟動前先設 MOV SCON,#01110000B MOV TMOD,#00100000B MOV TH1,#230 MOV TL1,#230 SETB TR1 ACALL INIT問題4: 程式改成下面這樣 ORG 0000H JMP START ORG 30H ;-------------------------------- START: MOV SCON,#01110000B ;<1 MOV TMOD,#00100000B MOV TH1,#230 MOV TL1,#230 SETB TR1 ACALL INIT ACALL LINE1 CLR RI MOV R1,#16 ;-------------------------------- LOOP: JNB RI,WAIT CLR RI MOV A,SBUF CALL WRDATA DJNZ R1,LOOP MOV R1,#16 CALL LINE1 JMP LOOP INIT: ACALL DELAY MOV A,#38H ACALL WRINS . . .問題5: LCD下指令前要檢查Busy旗標 ------------------- 美好的事物 稍縱即逝 發表人 - 阿信 於 2005/05/12 19:22:59 |
mymj
版主 發表:132 回覆:486 積分:608 註冊:2002-10-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |