當前位置:首頁 » 編程軟體 » 均查表編程

均查表編程

發布時間: 2022-10-24 21:11:53

⑴ 查表指令編程

是匯編語言還是c語言?什麼程序啊?
匯編語言的查表很簡單
MOV DPTR,#TAB ;數據表格首地址TAB賦值給數據指針作為基址
MOV A,R0 ;把表格索引值R0(R0=0,1,2,3,4,5,6,7,表示表格里第幾個數據)送A作為變址
MOVC A,@A+DPTR ;查表格中基址DPTR(即表格首地址)加上變址A(表格里第幾個地址)里的和地址里的內容送到A
MOV P1,A ;將A裡面查表所得結果送到P1口輸出
……
TAB:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,……

3F是表格里第0個數據,06是表格里第1個數據,5B是表格里第2個數據
例如:R0=2,那我們要查的是表格里第2個數據5B,DPTR中的基址是表格中第0個數據3F所在的地址,這個地址+2就是表格中第2個地址查得數據就是5B

⑵ 單片機 查表程序設計

LTB2:
;-------------------下面是R2R3乘以2
MOV A, R3
CLR C
RLC A
MOV R3, A
XCH A, R2
RLC A
XCH R2, A
;------------------下面是表首地址加上R2R3
MOV DPTR, #TAB2
ADD A, DPL ;(R2R3)+(DPTR)→(DPTR)
MOV DPL, A
MOV A, DPH
ADDC A, R2
MOV DPH, A
;------------------下面是查表,查出兩個位元組
CLR A
MOVC A, @A + DPTR
MOV R2,A
CLR A
INC DPTR
MOVC A, @A + DPTR
MOV R3,A
RET
----
這個程序,是根據兩個位元組的數據來查表,查出的,也是兩個位元組。

如果先弄懂了一個位元組的查表程序,看這個程序,也就沒有什麼難的了。

⑶ 單片機查表程序

A+DPTR=4000H+5H=4005H
A+PC=5H+50H=55H
MOV A,@A+DPTR 意思是把4005單元存儲的數放到A中,下同。

這條指令是匯編語言專用的查表指令,要查的表是一個順序表,它以DPTR為表中數據的首地址,A中事先存儲數據相對於表首地址的地址偏移量,最大不能超過255,通過調整A值可以查詢表中指定位置的數據。這條指令執行完畢後,A中存儲的是查詢到的數據。簡單的說:給DPTR賦表的首地址值,給A數據的偏移量,得到的查詢結果放在A中,下同

⑷ 匯編語言編寫一簡單查表程序

0-9循環顯示,經驗證完全無誤。。謝謝採納。

ORG 0000H
MOV DPTR,#TAB ;DPTR此時指向0C0H,以後由於A值的不停加1會不停的往後指,在循環
MAIN:MOV R5,#0 ;給初值
MOV A,R5;A=0

LP: MOVC A,@A+DPTR ;查表
MOV P1,A; 顯示
MOV A,R5
INC A ;加1
MOV R5,A
LCALL DELAY ;延時
CJNE A,#10,LP ;是否 到9.
SJMP MAIN
DELAY:MOV R3,#255
DEL1: MOV R4,#255
DEL2: NOP
DJNZ R4,DEL2
DJNZ R3,DEL1
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共陽字元。0-9。
END 如有疑問,可以HI我。。

⑸ C語言查表

#include<stdio.h>
struct data
{int t;
float m;
};
struct data a[]={{0,29.4},{10,33.3},{20,37.2},{30,41.4},{40,45.8},{50,50.4},{60,55.2},{70,60.2},{80,65.6}};
void main()
{
int n,i;
scanf("%d",&n);
for(i=0;i<9;i++)
if(a[i].t==n)
{printf("%3.1f\n",a[i].m);
break;
}
}
這個簡單~
希望對你能有所幫助。

⑹ 【跪求】單片機編程:利用查表發求1~9的平方值

假設數據在R2中,求出平方後,仍然放在R2。
程序如下:

MOV A, R2
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV R2, A
RET
TAB: DB 0,1,4,9,16,25,36,49,61,81

END

⑺ c語言編寫查表的程序

用數組來解決最簡單方便,自己參考一下吧
#include <stdio.h>
int main()
{
char ch;
int i,j,BQ;
char * k1[3][4]={
{"0","0.1","0.2-0.3" ,"0.4-0.6"} ,
{"0.1" ,"0.2-0.3","0.4-0.6","0.7-0.9"} ,
{"0.2","0.4-0.6","0.7-0.9","1.0"} ,
};

printf("地下水狀態說明:\n");
printf("0-潮濕或點滴狀出水\n" );
printf("1-淋雨狀或涌流狀出水,水壓<=0.1MPa或單位出水量<=10L/min\n");
printf("2-淋雨狀或涌流狀出水,水壓>0.1MPa或單位出水量>10L/min\n");
printf("請選擇地下水狀態[0-2]:");
do {
scanf("%c",&ch );getchar();
} while ( ch > '2' || ch< '0' );
i=ch-'0' ;
printf("請輸入BQ值:");
scanf("%d" , &BQ );
if ( BQ > 450 ) j=0 ; //題目中寫的有問題,應該是>450,不是451
else if ( BQ > 350 ) j=1 ;
else if ( BQ > 250 ) j=2 ;
else j=3 ;

printf("K1=%s\n" , k1[i][j] );
system("pause");
return 0;
}

⑻ newton 插值計算均差表 matlab程序,怎樣能把均查表輸出來啊,看看這個matlab程序能不能改改

%保存文件名為New_Int.m
%Newton基本插值公式
%x為向量,全部的插值節點
%y為向量,差值節點處的函數值
%xi為標量,是自變數
%yi為xi出的函數估計值
function yi=New_Int(x,y,xi)
n=length(x);
m=length(y);
if n~=m
error('The lengths of X ang Y must be equal!');
%return;
end
%計算均差表Y
Y=zeros(n);
Y(:,1)=y';
for k=1:n-1
for i=1:n-k
if abs(x(i+k)-x(i))<eps
error('the DATA is error!');
%return;
end
Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));
end
end
%計算牛頓插值公式
yi=0;
for i=1:n
z=1;
for k=1:i-1
z=z.*(xi-x(k));
end
yi=yi+Y(1,i).*z;
end
Y
%{
實驗用語句
x=1:.25:5;
y=x.^2+3*rand(size(x));
xi=0:0.1:5;
yi=New_Int(x,y,xi);
plot(x,y,xi,yi)
legend('原函數','插值後函數')
%}

按上面語句試試

sql開發多表查詢時的編程方法

視圖和直接執行sql語句效率基本相同,當然是指在查詢條件不變的情況下。我的理解,查詢結果可以理解為一張表,如果經常調用這些表,還嫌每次寫語句麻煩,視圖就是將有一些編輯好的查詢語句固化。想要提高查詢效率,還應該在sql語句(包括視圖)優化上下功夫

熱點內容
輕客有哪些安全配置 發布:2025-07-18 14:09:22 瀏覽:409
sql按月份分組 發布:2025-07-18 13:44:01 瀏覽:598
電腦怎麼配置sva 發布:2025-07-18 13:32:06 瀏覽:148
如何找出隱藏的文件夾 發布:2025-07-18 13:19:15 瀏覽:829
釘釘直播腳本 發布:2025-07-18 13:12:10 瀏覽:192
AIX編譯動態庫 發布:2025-07-18 13:00:46 瀏覽:344
安卓系統下載鈴聲在哪個文件夾 發布:2025-07-18 12:52:11 瀏覽:273
qt程序一樣但是無法編譯 發布:2025-07-18 12:32:45 瀏覽:37
伺服器搭建主機配置 發布:2025-07-18 12:12:43 瀏覽:127
ftp命令批量下載文件 發布:2025-07-18 11:58:45 瀏覽:744