使用8951、AD590、LCD製作感溫顯示 相關疑問 |
缺席
|
謎樣
一般會員 發表:3 回覆:3 積分:0 註冊:2007-03-24 發送簡訊給我 |
之前原本想使用DS1820來製作
後來發現沒想像中簡單 所以就改使用AD590 也是因為其資料比較多 現在有一些疑問想請各位高手回答 1.我假如要顯示於LCD上面,是否要判斷完A裡面的數值,再以字串顯示? 2.可以把A裡面的數值經過運算成為10進位ASCII然後輸出於LCD嗎? 3.LCD要顯示A裡面的值請問該怎麼寫? 因為之前小弟是用SUBB、JZ這些指令 去判斷完了以後再跳去顯示溫度(字串) 可是這樣程式會變的很龐大 以下為LCD驅動 請教一下修改哪邊可以顯示A裡面的數值 謝謝! ;===LCD主程式=== ORG 0000H ACALL INIT ACALL LINE1 MOV DPTR,#TAB1 ACALL DISPLAY ACALL LINE2 MOV DPTR,#TAB2 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,#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 NOP SETB P3.5 MOV P1,A NOP CLR P3.5 ACALL DLY1 RET WRDATA: MOV P3,#10011111B NOP SETB P3.5 MOV P1,A NOP CLR P3.5 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 ;===顯示字元=== TAB1: DB 'HELL' DB 'O !' DB 10H TAB2: DB 'I am' DB ' a ' DB 'LCD.' DB 10H END |
極光空
一般會員 發表:4 回覆:15 積分:3 註冊:2006-07-16 發送簡訊給我 |
你的問題因該是不知道如何將數字轉換成字串形式吧
這很簡單阿! 1)將數字除以100→獲得百位數的值→將數值 30H就可獲得相對應的ASCII碼 2)將(1)的餘數/10→獲得十位數的值→將數值 30H就可獲得相對應的ASCII碼 3)將餘數 30H就可獲得相對應的ASCII碼 4)再將上述的ASCII碼放置到你要放的位置 ===================引 用 文 章=================== 之前原本想使用DS1820來製作 後來發現沒想像中簡單 所以就改使用AD590 也是因為其資料比較多 現在有一些疑問想請各位高手回答 1.我假如要顯示於LCD上面,是否要判斷完A裡面的數值,再以字串顯示? 2.可以把A裡面的數值經過運算成為10進位ASCII然後輸出於LCD嗎? 3.LCD要顯示A裡面的值請問該怎麼寫? 因為之前小弟是用SUBB、JZ這些指令 去判斷完了以後再跳去顯示溫度(字串) 可是這樣程式會變的很龐大 以下為LCD驅動 請教一下修改哪邊可以顯示A裡面的數值 謝謝! ;===LCD主程式=== ??????? ORG 0000H ??????? ACALL?INIT ??????? ACALL?LINE1 ??????? MOV?DPTR,#TAB1 ??????? ACALL?DISPLAY ??????? ACALL?LINE2 ??????? MOV?DPTR,#TAB2 ??????? 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,#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 ?????????????? NOP ????????????? ?SETB?P3.5 ?????????????? MOV?P1,A ?????????????? NOP ????????????? CLR?P3.5 ??????????????ACALL?DLY1 ????????????? RET WRDATA:?MOV?P3,#10011111B ???????????????? ?NOP ????????????????? SETB?P3.5 ????????????????? MOV?P1,A ????????????????? NOP ????????????????? CLR?P3.5 ??????????????????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 ;===顯示字元=== TAB1:?DB?'HELL' ?DB?'O !' ?DB?10H TAB2:?DB?'I am' ?DB?' a ' ?DB?'LCD.' ?DB?10H ?END |
謎樣
一般會員 發表:3 回覆:3 積分:0 註冊:2007-03-24 發送簡訊給我 |
|
castor631
一般會員 發表:0 回覆:1 積分:0 註冊:2007-11-25 發送簡訊給我 |
|
penguin5
資深會員 發表:116 回覆:317 積分:431 註冊:2004-05-09 發送簡訊給我 |
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |