Ⅰ 單片機查表
題目已經說了,每個最大允許值,都是雙位元組的。所以以位元組為單位計算偏移量時應當乘以2,
Ⅱ 單片機 查表法
0100H、0200H表示的都是51單片機程序存貯器裡面的地址,51單片機可定址最大64k程序存貯器、最大64k內存。程序存貯器和內存不是統一編址。
PC時程序計數器,主要是記錄單片機在ROM的執行位置,一般單片機可以訪問64K的地址,也就是需要16位的字寬
單片機編址是16進制,看看編程器里怎樣表示的。
ORG 0100H 表示程序從這里開始執行
DPTR是一個16位的寄存器,對這個數據寄存器賦值時,對於寄存器定址方式,我們是把它拆分為高八位,低八位來訪問的
由於它是16位,所以我們可以用它來訪問64K的ROM空間,也可以訪問64K的外表RAM空間
ORG 0200H 表示存放數據的地址從這里開始,這個地址是程序存貯器地址,不可以在運行中改變。
SQU是查表子程序的編號,主程序調用這段查表程序需 LCALL SQU,這時候單片機的pc指向0101h,單片機從0101h開始執行指令 。
Ⅲ 51單片機的查表法的原理是什麼
查表法,就是將你的一些固定的數據存儲到程序存儲器中,當你的程序中需要這些數據時,movc指令讀取這些數據。舉例假設你的系統要用數碼管顯示0-9這10個數字,而假設這10個數字各自的斷碼(點亮時io口相應的電平)分別為
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
你有兩種方法存儲這時個數據,一種是在數據區用十個位元組存儲這些數據(數據常量),但這會佔用你的數據存儲器空間。另外一種方法就是把這些不變的數放到程序空間中,到需要的時候到程序空間中讀取,這便是查表。也就是在程序空間中建立一個表,假設你需要就9這個數值的斷碼,就去表中查看一下9對應的數據。
Ⅳ 單片機查表指令movc什麼意思
MOVC指令意思是表示程序存儲器里的內容和別的存儲單元進行傳送的,主要是用在累加器A和程序存儲器的數據傳送。
單片機的操作語言使用的是匯編語言,是一種用於電子計算機、微處理器、微控制器或其它可編程器件的低級語言。
包括通用數據傳送指令MOV、條件傳送指令CMOVcc、堆棧操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交換指令XCHG/XLAT/BSWAP、地址或段描述符選擇子傳送指令LEA/LDS/LES/LFS/LGS/LSS等。
(4)單片機取表擴展閱讀
測試指令BT、位測試並置位指令BTS、位測試並復位指令BTR、位測試並取反指令BTC、位向前掃描指令BSF、位向後掃描指令BSR等。
加法指令ADD/ADC、減法指令SUB/SBB、加一指令INC、減一指令DEC、比較操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符號擴展指令CBW/CWDE/CDQE、十進制調整指令DAA/DAS/AAA/AAS、邏輯運算指令NOT/AND/OR/XOR/TEST等。
無條件轉移指令JMP、條件轉移指令Jcc/JCXZ、循環指令LOOP/LOOPE/LOOPNE、過程調用指令CALL、子過程返回指令RET、中斷指令INTn、INT3、INTO、IRET等。
Ⅳ 51單片機的查表法 的 原理是 什麼 透徹點給解釋下吧!
原理,很簡單。
就是你開飯店,事先,你得准備好多種菜品的材料,放在冷庫。
顧客上門,點什麼,你馬上就能做什麼。不要現出去買。
Ⅵ pic16f73單片機查表方式(匯編的)
跟51的完全不一樣,PIC單片機沒有專用的查表指令。一般都是用RETLW指令來做查表,思路是利用子程序帶值返回的這一方式來實現。具體是在主程序中先取出表數據地址放入W,接著調用子程序,子程序的第一條指令將W置入PC,則程序跳到數據地址的地方,再由「RETLW」指令將數據返回到主程序。
ORG 0100H
BIAO: ADDWF PCL,F
RETLW 數據1
RETLW 數據2
RETLW 數據3
……
RETLW 數據n
Ⅶ 51單片機怎樣讀取DW表格里的16位數
查表指令,功能很強。
看到16×16點陣的LED顯示屏了吧?每個漢字都是用DW(或DB)存放的32位元組表格數據;
都是用MOVC A,@A+DPTR指令,8位、8位的從ROM中取出,再放在8位的RAM單元裡面。
你再查查這方面的資料。
-------------------------
修改如下:
MOV R2, #0 ;先設定數據指針.
MOV A, R2 ;由R2指定表中數據.
ADD A, R2 ;乘以2,因為每個數據是2位元組.
MOV DPTR, #TABLE ;指向表格.
MOVC A, @A+DPTR ;讀取一位元組.
MOV 30H, A ;將高8位裝入30H
MOV A, R2 ;重新取來數值指針.
ADD A, R2 ;乘以2,因為每個數據是2位元組.
INC A ;地址加1
MOVC A, @A+DPTR ;再讀第低8位.
MOV 31H, A ;將低8位裝入31H
SJMP $
TABLE: DW 1234H, 5678H
程序的結果:
當R2=0,就把1234H送到30H和31H;
當R2=1,就把5678H送到30H和31H。
Ⅷ 用單片機匯編語言製作廣告燈。利用取表的方法。
ORG0000H
MOVDPTR,#TAB
LP1:
MOVR2,#4
LP:MOVA,R2
MOVCA,@A+DPTR
MOVP0,A
DJNZR7,$
DJNZR6,$-2
DJNZR2,LP
SJMPLP1
TAB:
DB0,18H,24H,42H,81H
END
Ⅸ PIC 的單片機如何實現查表功能
PIC系列單片機的查表程序可以利用子程序帶值返回的特點來實現。
具體是在主程序中先取出表數據地址放入W,接著調用子程序,子程序的第一條指令將W置入PC,則程序跳到數據地址的地方,再由「RETLW」指令將數據返回到主程序。