• 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: PIC16F887查表方式
#10
新會員
新會員


查看用戶資訊
收到~

發表於: 2009/12/15 19:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#9
版主
版主


查看用戶資訊
在MPASM 中有些指令是用來建立ROM表格的,像: DA, DATA, DE, DT, DW, DB ...等,有些是專用於PIC16Fxxx 的指令 (DA, DT) 有些又只建議適用於PIC18F 的元件中。
該如何使用可以參考一下MPASM 的教育訓練教材。
http://www.microchip.com.tw/modules/w ... nglefile.php?cid=4&lid=32

發表於: 2009/12/9 11:19
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#8
新會員
新會員


查看用戶資訊
感謝各位的指導,解開我長久以來的疑問。

發表於: 2009/12/8 17:07
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#7
資深會員
資深會員


查看用戶資訊
參照:

Norton 寫道:
感謝各位的回覆,我還有一點疑問要請問,若我是用「DB」的方式存表格資料,是不是每筆資料只存入在每個WORD的 LS byte?
若我要存14bit資料要用什麼方式建表?是「DW」嗎?


Constant AAA = 0x1234
Constant A = 0x12
Constant B = 0x23

DW AAA
DW AA<<8 |BB
DW 0x1234

http://ww1.microchip.com/downloads/en/DeviceDoc/33014J.pdf
78頁

讀取用 讀ROM的方法

發表於: 2009/12/8 7:18
少年不知愁滋味,老來方知路難行。
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#6
資深會員
資深會員


查看用戶資訊
不方便講太多 , 因為自己也未曾深入探討過 , 我也不貪心 夠用 方便寫就好
假如像 tonys 大所講的狀況 , 高低 byte 都要用到 , 那大概是 mcu 已被撐到極限 , 不得不用的最後手段
最後的選項已不太多,( dt , db , dw ) 我想你也可自行查資料 或寫程式驗證 , 究竟這最後是你的私人財產 , 不是嗎 ?

發表於: 2009/12/8 3:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#5
新會員
新會員


查看用戶資訊
感謝各位的回覆,我還有一點疑問要請問,若我是用「DB」的方式存表格資料,是不是每筆資料只存入在每個WORD的 LS byte?
若我要存14bit資料要用什麼方式建表?是「DW」嗎?

發表於: 2009/12/7 23:27
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#4
資深會員
資深會員


查看用戶資訊
心得:

以前用 retlw nn , 每個 word (14 bit) 只能放 1 byte data, 也要費心處理 page

現在 887 的新方法除了更方便之外,可以充分利用 14 bit , 都可以是 data!

發表於: 2009/12/4 22:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#3
版主
版主


查看用戶資訊
參考一下 PIC16F887 Data Sheet 裡的 10.1.4 READING THE FLASH PROGRAM MEMORY 章節裡的說明,透過 EEADRH : EEADR 兩個指位器可以看到 16-bit 的 Address,所以就可輕鬆讀取 Flash Memory 的任何位址的資料。
BANKSEL     EEADR             ;
    
MOVLW         high MS_PROG_EE_ADDR     ;
    
MOVWF         EEADRH             ;MS Byte of Program Address to read
    MOVLW         low  LS_PROG_EE_ADDR     
;
    
MOVWF         EEADR             ;LS Byte of Program Address to read
    BANKSEL     EECON1             
;
    
BSF         EECON1EEPGD         ;Point to PROGRAM memory
    BSF         EECON1
RD         ;EE Read
                        
;
                        ;
First instruction after BSF EECON1,RD executes normally
    NOP
    NOP                     
;Any instructions here are ignored as program
                        
;memory is read in second cycle after BSF EECON1,RD
;
    
BANKSEL     EEDAT             ;
    
MOVF         EEDATW         ;LS Byte of Program Memory
    MOVWF         LOWPMBYTE         
;
    
MOVF         EEDATHW         ;MS Byte of Program EEDAT
    MOVWF         HIGHPMBYTE         
;
    
BCF S        TATUSRP1         ;Bank 0

發表於: 2009/12/4 14:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F887查表方式
#2
資深會員
資深會員


查看用戶資訊

發表於: 2009/12/2 18:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


PIC16F887查表方式
#1
新會員
新會員


查看用戶資訊
大家好,
想請教PIC16F887比較方便的查表方法,目前小弟的查表方式是用.....
movlw HIGH KEY0
movwf PCLATH
KEY0:
movf BUF3,W
addwf PCL,F
RETLW "1"
RETLW "5"
RETLW "A"
可是此種方式在大量圖形資料時就很不方便,可能會有上千行的「RETLW 0x??」!


而我在PIC18F系列是可用查表指令配合「DB」在存資料,如下.....
MOVLW UPPER(LOGO1)
MOVWF TBLPTRU
MOVLW HIGH(LOGO1)
MOVWF TBLPTRH
MOVLW LOW(LOGO1)
MOVWF TBLPTRL

TBLRD*+
MOVFF TABLAT,LCM_DATA
;......................................................................
LOGO1:
DB 00H,00H,07FH,0F8H,00H,00H,00H,00H;
DB 0FFH,0FFH,0FEH,00H,00H,00H,00H,00H;
DB 00H,00H,00H,03H,0FFH,080H,00H,00H;
DB 00H,01H,0FFH,0FEH,00H,00H,00H,00H;
DB 0FFH,0FFH,0FFH,0C0H,00H,00H,00H,00H;
DB 00H,00H,00H,03H,0FFH,080H,00H,00H;

此兩種方式的便利性就差很多,所以想請問在PIC16F887有沒有其他比較便利的方式查表?(類似PIC18F系列)

發表於: 2009/12/2 12:12
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... ]

教育訓練中心

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