• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#10
初級會員
初級會員


查看用戶資訊
Hello Mark, 版主,

十分感謝你們抽空回文章.

Mark 我會在研讀你的RX範例的, 謝謝你.

版主謝謝你的建議,我會看一下C18 C compiler 這個部分的範例. 謝謝你



十分感激你們的指導跟建議.



菜鳥

發表於: 2008/7/23 13:40
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#9
版主
版主


查看用戶資訊
其實有關用 C 來寫 UART 的函數,再Microchip所提供的 Libraries 原始程式裡就有。你可以參考看看人家是怎樣寫的,讀會後功力晉升好幾層。有興趣的話可以在這裡找到。
C:\MCC18\src\pmc_common\USART

發表於: 2008/7/22 8:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#8
高級會員
高級會員


查看用戶資訊
是的!!
只需將我程式裡的byte0~byte15改成對應的ASCII code即可!!!
例如:30=1,31=1,41=A,42=B...

至於接收如下:
這是一次接收8bytes...
要一次接收16bytes在往下增加即可...

USART_RX:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX
MOVF RCREG,W
MOVWF RXDATA
CLRF RCREG
USART_RX_0:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_0
MOVF RCREG,W
MOVWF RXDATA0
CLRF RCREG
USART_RX_1:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_1
MOVF RCREG,W
MOVWF RXDATA1
CLRF RCREG
USART_RX_2:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_2
MOVF RCREG,W
MOVWF RXDATA2
CLRF RCREG
USART_RX_3:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_3
MOVF RCREG,W
MOVWF RXDATA3
CLRF RCREG
USART_RX_4:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_4
MOVF RCREG,W
MOVWF RXDATA4
CLRF RCREG
USART_RX_5:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_5
MOVF RCREG,W
MOVWF RXDATA5
CLRF RCREG
USART_RX_6:
BTFSS PIR1,RCIF ;判斷RECEIVE BUFFER是否滿了
GOTO USART_RX_6
MOVF RCREG,W
MOVWF RXDATA6
CLRF RCREG
USART_RX_EXIT:
RETURN

發表於: 2008/7/21 17:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#7
初級會員
初級會員


查看用戶資訊
參照:

MARKWANG 寫道:
我能幫忙就只有組合語言的部份!
至於C就請別人幫忙了!
;;;;;;自動一直傳送16BYTE
USART_TX0:
     
MOVLW     #H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_0
:
     
BTFSS     PIR1,TXIF
     
GOTO      USART_TX0_0
     CLRF      TXREG
     MOVLW     
#H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_1
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_1
     CLRF      TXREG
     MOVF      BYTE0
,W               
     MOVWF     TXREG
USART_TX0_2
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_2
     CLRF      TXREG
     MOVF      BYTE1
,W               
     MOVWF     TXREG
USART_TX0_3
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_3
     CLRF      TXREG
     MOVF      BYTE2
,W                    
     MOVWF     TXREG
USART_TX0_4
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_4
     CLRF      TXREG
     MOVF      BYTE3
,W              
     MOVWF     TXREG
USART_TX0_5
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_5
     CLRF      TXREG
     MOVF      BYTE4
,W               
     MOVWF     TXREG
USART_TX0_6
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_6
     CLRF      TXREG
     MOVF      BYTE5
,W               
     MOVWF     TXREG
USART_TX0_7
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_7
     CLRF      TXREG
     MOVF      BYTE6
,W                    
     MOVWF     TXREG
USART_TX0_8
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_8
     CLRF      TXREG
     MOVF      BYTE7
,W              
     MOVWF     TXREG
USART_TX0_9
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_9
     CLRF      TXREG
     MOVF      BYTE8
,W               
     MOVWF     TXREG
USART_TX0_10
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_10
     CLRF      TXREG
     MOVF      BYTE9
,W               
     MOVWF     TXREG
USART_TX0_11
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_11
     CLRF      TXREG
     MOVF      BYTE10
,W                    
     MOVWF     TXREG
USART_TX0_12
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_12
     CLRF      TXREG
     MOVF      BYTE11
,W              
     MOVWF     TXREG
USART_TX0_13
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_13
     CLRF      TXREG
     MOVF      BYTE12
,W               
     MOVWF     TXREG
USART_TX0_14
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_14
     CLRF      TXREG
     MOVF      BYTE13
,W               
     MOVWF     TXREG
USART_TX0_15
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_15
     CLRF      TXREG
     MOVF      BYTE14
,W                    
     MOVWF     TXREG
USART_TX0_16
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_16
     CLRF      TXREG
     MOVF      BYTE15
,W              
     MOVWF     TXREG
USART_TX0_17
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_17
     CLRF      TXREG     
USART_TX0_EXIT
:
     RETURN



Hello Mark,

謝謝你上次的回覆,我已經看了你的程式. 因為對程式語言也是高起步在學,所以想請教原作者Mark 或版主及板上的高手幾個問題.

上面的程式裡面,有BYTE1~BYTE15,這幾各部分是該填些什麼呢? 我的意思是說,如果我要傳輸一個字串像是"Hello Word, I am coming" 那這幾個Byte就是填這幾各十六位元碼嗎? 我知道如果我想要傳輸一個字母"U"我該像下面這麼寫.

MOVLW 0x55
MOVWF TXREG

那我要傳輸一個字串,是不是也是將那些字串的每個字都改成十六進位碼放進去所謂的Byte1~Byte15呢? 那我要是想要傳輸一些數字像是 123 那我也是一樣的道理是嗎? 那接收的部分呢? 接收的部分我該怎麼做呢? 程序顛倒還是有特別的做法?

在此先謝謝各位抽空看文章,也謝謝大家不吝嗇的指點.
在此先謝謝大家了.



菜鳥

發表於: 2008/7/21 14:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#6
初級會員
初級會員


查看用戶資訊
參照:

master 寫道:
http://www.yeswedo.com.tw/product/pro ... escription.asp?rowid=4645

若水堂好像搜尋不到這本。不過我是在若水堂買的。
你可以用出版社和書名請他們幫你訂書或是查一下有沒有現貨在其他門市。



Hello Master,

我去問過好多家書局了, 包括若水堂,問津堂,秋水堂. 她們都沒有,不知道Master知不知道有沒有PDF檔可以抓或是哪裡可以買到二手書.看了一下目錄,我可以了解位什麼Master說這個可以學到很多東西.所以很想買到.有特別建議的嗎?



在這裡先謝謝master了



菜鳥

發表於: 2008/7/21 14:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#5
資深會員
資深會員


查看用戶資訊
http://www.yeswedo.com.tw/product/pro ... escription.asp?rowid=4645

若水堂好像搜尋不到這本。不過我是在若水堂買的。
你可以用出版社和書名請他們幫你訂書或是查一下有沒有現貨在其他門市。

發表於: 2008/7/15 0:36
不要問我哪裡來,我只是個流浪天涯的工程師
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#4
初級會員
初級會員


查看用戶資訊
Hello Mark and master,

真的十分感激你們的回覆.真的非常由衷的謝謝你們.

Mark我會好好看你提醒的組合語言的部分, 真的十分感激,我相信一定會很有幫助我學習跟了解的. 十分感激你,真的.

還有,Master 你文章所提到的那本書是下面我連結的這一本嗎?
因為我把若水堂,網路上看的到的書我一本本的把大義內容看一了一下. 不知道是不是你提的那本

http://www.waterlike.com.tw/bookdata.asp?NO=TP3C076015

如果不是,那請問你知道那本書的書名嗎? 在此先謝謝你了.

再次謝謝你們,抽空回文章.



菜鳥

發表於: 2008/7/15 0:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#3
高級會員
高級會員


查看用戶資訊
我能幫忙就只有組合語言的部份!
至於C就請別人幫忙了!
;;;;;;自動一直傳送16BYTE
USART_TX0:
     
MOVLW     #H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_0
:
     
BTFSS     PIR1,TXIF
     
GOTO      USART_TX0_0
     CLRF      TXREG
     MOVLW     
#H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_1
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_1
     CLRF      TXREG
     MOVF      BYTE0
,W               
     MOVWF     TXREG
USART_TX0_2
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_2
     CLRF      TXREG
     MOVF      BYTE1
,W               
     MOVWF     TXREG
USART_TX0_3
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_3
     CLRF      TXREG
     MOVF      BYTE2
,W                    
     MOVWF     TXREG
USART_TX0_4
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_4
     CLRF      TXREG
     MOVF      BYTE3
,W              
     MOVWF     TXREG
USART_TX0_5
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_5
     CLRF      TXREG
     MOVF      BYTE4
,W               
     MOVWF     TXREG
USART_TX0_6
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_6
     CLRF      TXREG
     MOVF      BYTE5
,W               
     MOVWF     TXREG
USART_TX0_7
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_7
     CLRF      TXREG
     MOVF      BYTE6
,W                    
     MOVWF     TXREG
USART_TX0_8
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_8
     CLRF      TXREG
     MOVF      BYTE7
,W              
     MOVWF     TXREG
USART_TX0_9
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_9
     CLRF      TXREG
     MOVF      BYTE8
,W               
     MOVWF     TXREG
USART_TX0_10
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_10
     CLRF      TXREG
     MOVF      BYTE9
,W               
     MOVWF     TXREG
USART_TX0_11
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_11
     CLRF      TXREG
     MOVF      BYTE10
,W                    
     MOVWF     TXREG
USART_TX0_12
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_12
     CLRF      TXREG
     MOVF      BYTE11
,W              
     MOVWF     TXREG
USART_TX0_13
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_13
     CLRF      TXREG
     MOVF      BYTE12
,W               
     MOVWF     TXREG
USART_TX0_14
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_14
     CLRF      TXREG
     MOVF      BYTE13
,W               
     MOVWF     TXREG
USART_TX0_15
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_15
     CLRF      TXREG
     MOVF      BYTE14
,W                    
     MOVWF     TXREG
USART_TX0_16
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_16
     CLRF      TXREG
     MOVF      BYTE15
,W              
     MOVWF     TXREG
USART_TX0_17
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_17
     CLRF      TXREG     
USART_TX0_EXIT
:
     RETURN

發表於: 2008/7/14 8:32

Edited by Ryang on 2008年07月14日 10:36:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#2
資深會員
資深會員


查看用戶資訊
你用的C編譯器應該是CCS吧!?
他的目錄下有範例講UART的部分,另外簡體書有一本可以到若水堂找找。您的問題雖然滿基本的,但是其實很多東西需要您自己去看去念。尤其是相關暫存器設定的問題,雖然CCS在UART設定上一行就結束,輸出靠個printf,或scanf就可以做完,但是那些叫做範例,到一定規模的架構時就「無三小路用」

發表於: 2008/7/13 19:47
不要問我哪裡來,我只是個流浪天涯的工程師
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


我想請教一下版主或是各位高手關於C語言和組合語言問題
#1
初級會員
初級會員


查看用戶資訊
版主,各位高手日安,

小弟目前才剛剛開始學PIC16f877也念了一些市面上相關書籍,但是有幾個問題不太了解.因為剛學所以問題可能有點簡單,但是我還是不懂所以想請教版主跟高手.

我想請教一下二個程式語言的問題,一個是C語言,一個是組合語言.

首先, 我想請教的是,如過我想要傳送一個字串給TX(PIN_C6), 其實這個字串是一個另外一個硬體的指令. 我想透過USART的 TX ( PIN_C6 ), 去控制那個硬體,不知道可麻煩指點一下該怎麼作或是有什麼建議? 同樣的要是我想要接受一個訊息經由 RX (PIN_C7) 是該怎麼去寫這樣一個指令呢? 之前有人說 我要做這兩件事情可能都需要用stream去做. 說坦白的, 我大概知道stream是什麼意思, 可是不知道該怎麼實際去使用它或是設定它. 還有當我要寫指令的話,我該用puts() 還是 gets 還是有其他的呢?我該寫什麼特別指出把這個指令送到PIN_C6嗎?還是它會自己送到那邊去? 基本上概念是不想都透過鍵盤 key in 然後經由rs232去傳輸這個指令,我想要把程式燒進去PIC裡面後,然後再Hyper terminal裡面,只要輸入 g! 他就可以做我之前的燒的程式. 可以麻煩知道的人指點一下嗎?? 我想請教的該怎麼寫一個字串傳送到TX?

第二問題,其實是跟第一個問題是一樣的,如果我改用PIC16F877組合語言時,我該怎麼作呢??? 我目前僅會透過USART的TX去傳送一個簡單的一個數字或是一個英文字母給電腦去,但是我不知道該怎麼傳送一個字串 (string). 所以麻煩懂的人指引一下.

對了,順便一提我用的是MPLAB v8.10.


我大概是這二個問題, 麻煩版主或是高手教導一下,或是看哪邊有什麼書籍可以參考,因為我翻了一些書,好像都沒講到這些.

十分感激任何的解惑與幫助

在這裡先謝謝各位了.



菜鳥

發表於: 2008/7/13 6:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------