最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

中穎4位單片機查表方法及注意事項

作者:warm_ice 欄目:MCU技術(shù)
中穎4位單片機查表方法及注意事項
    中穎4位單片機有2種查表方法:普通查表(TJMP)方法和RDT(ROM DATA TABLE)查表方法。    

一.普通查表方法(TJMP)
在中穎4位單片機中都可采用此方法來進行查表。

1.普通查表原理
查表時,執(zhí)行CALL指令后,下一條指令的地址被自動壓入堆棧中,然后跳轉(zhuǎn)到數(shù)據(jù)表處,執(zhí)行TJMP指令,PC指針跳轉(zhuǎn)到PC11~PC8,TBR(TABLE BRANCH REGISTER),AC(累加器)所指向的地址,該地址的數(shù)據(jù)通過RTNW指令返回,其中,高4位數(shù)據(jù)保存到TBR寄存器中,低4位數(shù)據(jù)保存到累加器AC中。返回時PC指針會自動被堆棧中保存的PC數(shù)據(jù)覆蓋。

2.實例
;*******************************
;            調(diào)用部分
;*******************************
LDI        TBR,00H                 ;設(shè)置TBR的值為0
LDI        TEMP,02H              ;設(shè)置累加器AC的值為2
CALL     DATA_TABLE       ;查數(shù)據(jù)表
STA        TEMP1,00H           ;把低4位數(shù)據(jù)(1101B)保存到臨時寄存器中
LDA        TBR,00H                ;讀入高4位數(shù)據(jù)
STA        TEMP2,00H           ;把高4位數(shù)據(jù)(0010B)保存到臨時寄存器中

;*******************************
;          數(shù)據(jù)表部分
;*******************************
        ORG    300H                    ;設(shè)置PC地址
DATA_TABLE:                
        TJMP    ;跳轉(zhuǎn)到由PC11~PC8,TBR,AC所指向的12位PC地址,此處為跳轉(zhuǎn)到302H
        RTNW    0001B,1000B    ;301H
        RTNW    0010B,1101B    ;302H
        RTNW    0011B,1100B    ;303H
    說明:TEMP,TEMP1,TEMP2為自定義的臨時寄存器

3.注意事項
通過觀察可以發(fā)現(xiàn),在查表時,TJMP指令跳轉(zhuǎn)地址的最高4位是讀取表格所在位置的PC指針的高4位,而用戶在程序中只需要賦值低8位,這樣,當數(shù)據(jù)表較大時(如大于等于256行)時,需要對TJMP指令跳轉(zhuǎn)地址的高4位進行進位時,因程序中無法直接對PC值進行賦值,就會出現(xiàn)錯誤。所以在數(shù)據(jù)表較大時,如大于等于256行,應該把此表格分為幾個小的表格,防止在查表時出現(xiàn)以上所說的錯誤。

二.RDT查表
為了提高對ROM空間的利用效率,在中穎一些新近推出的4位單片機中,推出了一種叫做RDT的查表方式,可以利用16位的ROM空間。

1.RDT查表原理
在具有RDT查表方式功能的單片機中,會有4個系統(tǒng)寄存器,共16位(RDT.15~RDT.0),在查表時,把表格數(shù)據(jù)所在的地址賦值給這4個系統(tǒng)寄存器,然后延時一條指令的時間,相應位置中的數(shù)據(jù)就被自動放到RDT的這4個系統(tǒng)寄存器中,讀取這4個系統(tǒng)寄存器就可以得到相應位置上的數(shù)據(jù)了。

2.實例
;*******************************
;            調(diào)用部分
;*******************************
LDI    TEMP,00H    ;
STA    RDT_H        ;賦值RDT最高4位數(shù)據(jù)
LDI    TEMP,03H    ;
STA    RDT_MH     ;賦值RDT中高4位數(shù)據(jù)
LDI    TEMP,00H    ;
STA    RDT_ML      ;賦值RDT中低4位數(shù)據(jù)
LDI    TEMP,01H    ;
STA    RDT_L         ;賦值RDT低4位數(shù)據(jù)
NOP                        ;延時一條指令的時間
LDA    RDT_L        ;讀入低4位數(shù)據(jù)
STA    TEMP1,00H             ;把低4位數(shù)據(jù)(00H)保存到臨時寄存器中
LDA    RDT_ML                  ;讀入中低4位數(shù)據(jù)
STA    TEMP2,00H             ;把中低4位數(shù)據(jù)(03H)保存到臨時寄存器中
LDA    RDT_MH                ;讀入中高4位數(shù)據(jù)
STA    TEMP3,00H             ;把中高4位數(shù)據(jù)(02H)保存到臨時寄存器中
LDA    RDT_H                    ;讀入高4位數(shù)據(jù)
STA    TEMP4,00H             ;把高4位數(shù)據(jù)(01H)保存到臨時寄存器中
;*******************************
;          數(shù)據(jù)表部分
;*******************************
        ORG    300H        ;設(shè)置PC地址
DATA_TABLE:                    
        DW    0123H        ;300H
        DW    1230H        ;301H
        DW    2301H        ;302H

說明:RDT_H,RDT_MH,RDT_ML,RDT_L為RDT的四個系統(tǒng)寄存器,TEMP,TEMP1~TEMP4為自定義的臨時寄存器。
3.注意事項
    在RDT查表時,IC內(nèi)部要進行一些復雜的操作,所以不要進行單步訪真,以免造成錯誤。
    在對RDT的4個系統(tǒng)寄存器賦值時要注意賦值的順序。


* - 本貼最后修改時間:2006-10-9 9:30:44 修改者:warm_ice

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
中穎MCU,怎么連個自我介紹都沒有呀
什么時候多了這個“隱形”的版面?版面列表里怎么沒看到?
求1S延時間的子程序
我的眼花了嗎?
哈哈,中穎也要21CN開欄了。
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號