導航:首頁 > 操作系統 > 51單片機數組個數

51單片機數組個數

發布時間:2022-07-22 02:47:56

Ⅰ 在stc51單片機中用數組的問題

我隨便寫了一點,你看看
void
main()
{
int
unm;
int
a[10]={0,1,2,3,4,5,6,,7,8,9};
sbit
key=P1^0;
if(key==0)
{
delayms(10);
//去抖動
if(key==0)
num++;
if(num==10)
num=0;
}
SBUF=a[num];
//將數傳到串口
}

Ⅱ 51單片機定義數組

不確定你如何用數線呢?51單片機不支持動態數組,本身只有那麼一點兒內存,你必須先明確需要多大數組。
一個辦法是聲明足夠用的數組,比如text[16],並在程序中判斷不要超出數組范圍。

Ⅲ 51單片機 數組

你給的信息太有限, 我需要知道你的單片機的具體型號,還有你創建工程的屬性。
我先猜一下:
你用的是STC增強型52單片機,除了自帶的256位元組內存還有256位元組的擴展內存,並且你在工程屬性裡面選擇的是大內存模式(Large: variables in xdata )這樣在你定義內存的時候如果不加data,idata,pdata關鍵字的話,默認就是xdata。這用的是外部RAM,是通過P0和P2口用匯流排模式擴展晶元得到的,可訪問64K的內存空間。但是STC增強型52內置了256位元組(某些版本會更大,我猜你用的是256的),默認訪問方式一樣,但是被STC集成到了片內。你定義了一個a[160]一個b[160],加起來遠遠超過256.按你的說法,有用的是160+48(這里你又有一個表達錯誤,a[0]~a[47]應該是48個。)=208個,算上你其他地方定義的變數,應該滿256個,那麼a[48]~a[159]是怎麼出現的呢,理論上是從P0口讀回來的。但是這里你還有一個不嚴謹的地方,不知道你有沒有證明到底是a[48]~a[159]全部成為了0xFF還是b[48]~b[159]早早的就成為了0xFF。
處理辦法一:內存模式先改成small:variables in data . 這時你應該都無法通過編譯
然後改變這句話:void 2(char a[160]) 變成 void 2(char pdata a[160])
方法二:直接改 char b[160]= 變成 char code b[160]=

試試看。
如果猜錯了,請別笑話我。

Ⅳ 51單片機關於數組處理的問題

unsigned char code ASII_DATA[14][7]={//這個是舉例的14x7的二維素組,你想用就把14改成100,7改成6就行啦!
//-
{0X1F,0X1F,0X1F,0X11,0X1F,0X1F,0X1F},

//,
{0X00,0X00,0X00,0X00,0X00,0X00,0X00},
///
{0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F},
//0
{0X11,0X0E,0X0C,0X0A,0X06,0X0E,0X11},
//1
{0X1B,0X13,0X1B,0X1B,0X1B,0X1B,0X11},
//2
{0X11,0X0E,0X1E,0X1D,0X1B,0X17,0X00},
//3
{0X11,0X0E,0X1E,0X11,0X1E,0X0E,0X11},
//4
{0X19,0X15,0X0D,0X0D,0X00,0X1D,0X1D},
//5
{0X00,0X0F,0X0F,0X01,0X1E,0X1E,0X01},
//6
{0X11,0X0E,0X0F,0X01,0X0E,0X0E,0X11},
//7
{0X00,0X1E,0X1E,0X1D,0X1B,0X17,0X17},
//8
{0X11,0X0E,0X0E,0X11,0X0E,0X0E,0X11},
//9
{0X11,0X0E,0X0E,0X10,0X1E,0X0E,0X11},
//:
{0X1F,0X1B,0X1B,0X1F,0X1B,0X1B,0X1F}};
//讀法
for(i=0;i<100;i++)
{
for(j=0;j<6;j++)

A= ASII_DATA[i][j];
}

Ⅳ 一個單片機能放下多少個數組

= =看你什麼單片機,裡面RAM ROM大小

Ⅵ 在C51單片機中兩個數組有什麼區別。

很可惜,c51並不支持位數組。
你先說明你這么定義的目的,然後才能有相應的解決方案。

Ⅶ 單片機C語言數組最多能定義多少個元素

  1. 原則上,C語言中數組所包含的元素個數理論上多少都行,如果要開一個很大的數組,比如int arrayint[10000][10000];在main()中聲明該數組就會使應用程序退出,但是如果你把該數組的聲明放在所有函數體之外,讓它變成一個全局變數,就沒有任何限制了,你想開多大的數組都可以。

  2. 但在單片機c語言程序中,實際上還是有限制的,原因在於單片機的存儲空間是有限的,數組最多能有幾個元素取決於單片機型號。

  3. 你定義了一個全局的數組,unsigned char型的數組,最多隻能有93個元素,說明你還有其他變數佔用存儲空間。如果需要一個512個元素的數組,用的單片機是stc15f2k60s2,可在定義數組時進行XDATA聲明,將數組存儲於外部RAM當中。

Ⅷ 51單片機C語言數組問題

值是不確定的,不同的編譯器會用不同的值填充未知的內存區域,而且你確實不必在意到底的是什麼值,畢竟數組越界本身就不該發生

Ⅸ 51單片機 匯編 數組

用偽指令DB來定義
比如我想定義一個數碼管0~9的斷碼可以這樣定義
MOV DPTR,#TAB
MOVC A,@A+DPTR

TAB: DB 06H,5BH,4FH,73H,66H,6DH
DB 7DH,3FH,07H,7FH,6FH,40H
想顯示什麼數時只要把數放到A裡面就可以了

閱讀全文

與51單片機數組個數相關的資料

熱點內容
android自定義日期選擇器 瀏覽:656
租伺服器要看什麼 瀏覽:162
Lightroom文件夾移動以後 瀏覽:964
web前端pdf 瀏覽:896
程序員養雞創業 瀏覽:501
山西有什麼app 瀏覽:408
app怎麼樣購買內存 瀏覽:32
如何注冊sqlserver伺服器 瀏覽:78
上士命令 瀏覽:490
股市中帶星號的app是什麼 瀏覽:711
什麼路由可以刷機做列印機伺服器 瀏覽:9
電腦怎麼找到雲伺服器 瀏覽:873
微信怎麼發應用app 瀏覽:776
花生殼dns伺服器地址 瀏覽:650
squad伺服器一般什麼時候人多 瀏覽:481
程序員戰門課 瀏覽:476
config保存伺服器地址 瀏覽:319
預訂網吧座位的app叫什麼 瀏覽:418
香港伺服器主機地址 瀏覽:642
網店美工pdf 瀏覽:449