Re: w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
版主
|
ASCII Code 顯示碼轉換:
0 --> 30 1 --> 31 : : 8 --> 38 9 --> 39 (3A~40 為特殊顯示字元,所以跳過七個) 所以<=9就加30; 大於9就必須加37以作調整。 A --> 41 B --> 42 : F --> 47
發表於: 2006/5/29 14:13
|
|||
|
Re: w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
初級會員
|
1. Conver A/D <b:3b0> to ASCII and send to USART
那為什麼不用swapf 小弟初學一直煩你 不好意思 我真的有看data sheet 還打算去上他們的課 謝謝
發表於: 2006/5/28 20:07
|
|||
|
Re: w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
高級會員
|
swapf ADRESL,W ; Conver A/D <b7:b4> to ASCII and send to USART
andlw h'0F' call Hex_ASCII call Tx_a_Byte 說明這麼清楚你還是不懂? 他要B7-B4的值來轉換 SWAP讓B7-B4變成B3-B0 然後AND 0F 只取後4位 剩下的就是原本B7-B4的值 再來才去做轉換 要看程式先把指令搞清楚
發表於: 2006/5/28 16:34
|
|||
|
Re: w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
初級會員
|
還是不明白..
為什麼要用swaps....
發表於: 2006/5/28 15:39
|
|||
|
Re: w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
高級會員
|
要顯示AD的值。首先要將他從HEX轉為BCD
AD.9.....AD.0 放在ADRESH,ADRESL裡面的位置 你要看一下前面的設定。是幾BIT等等的設定,然後去對照DATASHEET 這樣你就知道他為何要移位 ANDLW B'00000011'不是乘,他是取後2位,將前面MASK為0
發表於: 2006/5/28 9:16
|
|||
|
w400...ex4..的疑問(有關rs-232)
|
||||
---|---|---|---|---|
初級會員
|
1.ADRESH一開始的值是什麼呢....為什麼乘 (b'00000011')然後call Hex_ASCII 去乘 h'0F'
2.Conver A/D <b7:b4>為什麼要用 swapf...有特別意思嗎 3. > 9 addlw h'37' < = 9 addlw h'30'.....? 不會換算... 請各位先進指導一下.....小弟感激不盡..... movf ADRESH,W andlw b'00000011' call Hex_ASCII call Tx_a_Byte ; swapf ADRESL,W ; Conver A/D <b7:b4> to ASCII and send to USART andlw h'0F' call Hex_ASCII call Tx_a_Byte ; movf ADRESL,W ; Conver A/D <b3:b0> to ASCII and send to USART andlw h'0F' call Hex_ASCII call Tx_a_Byte Hex_ASCII: andlw h'0F' ; Make sure high nibble are "0000" movwf Hex_Temp movlw h'9' ; Compare with 9 cpfsgt Hex_Temp bra Less_9 movf Hex_Temp,W ; > 9, the number plus 0x37 addlw h'37' return Less_9 movf Hex_Temp,W ; < = 9, the number plus 0x30 addlw h'30' return
發表於: 2006/5/27 11:23
|
|||
|