找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4232|回復(fù): 9
收起左側(cè)

求助一個C語言編程的問題

[復(fù)制鏈接]
ID:194752 發(fā)表于 2017-5-28 17:59 | 顯示全部樓層 |閱讀模式
我用我的理解大概的表達(dá)一下,因為現(xiàn)在學(xué)的實在是太皮毛,很多概念都還不是很清楚,忘個位高手海涵。
我想咨詢的問題就是:
如何來定義一個地址組。不知道這樣描述是不是正確。
我用
unsigned char code table[]={1,2,3,4,5,6,7,8,9,0};
這個語句來打個比方。
如果我有一個unsigned char變量a,和一個unsigned char變量c那我可以讓a=table[c],
現(xiàn)在我想讓table里面的數(shù)組改成地址。就是P1.0,P1.1,P1.2,P1.3.............P1.7,我分別用a,b,c,d,e,f,g,h來定義P1各引腳。
然后我想讓table[1]=1;這樣,就是讓P1.1輸出高電平。。。
這樣的語句要怎么寫???望高手指點一下。。。
可能我描述的比較含糊。。不知道有沒有高手看懂。。。?

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2017-5-29 15:54 | 顯示全部樓層
unsigned char變量 是8個bit為一個單元,
P1.0 是一個bit

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共陰極0~f數(shù)碼管段碼 編碼       
P1.0,P1.1,P1.2,P1.3.............P1.7,可以分別用a,b,c,d,e,f,g,h來定義P1各引腳。

8段共陰極led數(shù)碼管顯示“0”,對應(yīng)字形碼為0x3f  

table[0]=0x3f;
P1 = table[0];

8位二進(jìn)制數(shù)為 0011、1111;轉(zhuǎn)換為16進(jìn)制就是3FH。

這樣,就是讓P1.0輸出高電平,P1.1輸出高電平,P1.2輸出高電平,P1.3輸出高電平,P1.4輸出高電平,P1.5輸出高電平,P1.6輸出低電平,P1.7輸出低電平。

樓主明白了嗎?

回復(fù)

使用道具 舉報

ID:194752 發(fā)表于 2017-5-29 22:09 來自觸屏版 | 顯示全部樓層
angmall 發(fā)表于 2017-5-29 15:54
unsigned char變量 是8個bit為一個單元,
P1.0 是一個bit


恩,謝謝,這個我明白,但是我想要實現(xiàn)的不是這樣的。我想讓P0,P1,P2共24個io口,能夠被一個變量來控制。比方說變量a=0,P0^0口輸出低電平。變量a=9,P1^0輸出低電平,變量a=24,P2^7輸出低電平。就類似unsigned char table[]={}所能實現(xiàn)的功能一樣。
回復(fù)

使用道具 舉報

ID:47933 發(fā)表于 2017-5-30 11:17 | 顯示全部樓層
elise 發(fā)表于 2017-5-29 22:09
恩,謝謝,這個我明白,但是我想要實現(xiàn)的不是這樣的。我想讓P0,P1,P2共24個io口,能夠被一個變量來控制。 ...

一樓已經(jīng)說得很明白了,說白了就是端口控制一個數(shù)組怎么寫也只能控制一個端口8個位。24個IO口即3個端口,不可能跨端口控制,你的思路是把簡單問題復(fù)雜化,三個數(shù)組表達(dá)3個端口24個IO口難道不夠簡單么?
回復(fù)

使用道具 舉報

ID:206038 發(fā)表于 2017-5-30 12:27 | 顯示全部樓層
讓p0=1,變量不變
回復(fù)

使用道具 舉報

ID:205288 發(fā)表于 2017-5-30 19:21 來自觸屏版 | 顯示全部樓層
不太懂你在說啥,等號是賦值用的,table[i]=1并不能表示讓某個電平變高,只是給table賦值
回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2017-5-30 22:13 | 顯示全部樓層
KEIL環(huán)境下就不能在sbit使用數(shù)組或指針進(jìn)行“位”操作。
回復(fù)

使用道具 舉報

ID:194752 發(fā)表于 2017-5-30 23:46 來自觸屏版 | 顯示全部樓層
可能是我沒表達(dá)對,我把我需要達(dá)到的目的描述一下吧!如果P0,P1,P2共計2
回復(fù)

使用道具 舉報

ID:206304 發(fā)表于 2017-5-31 11:35 | 顯示全部樓層
table[0]=0x3f;
P1 = table[0];
回復(fù)

使用道具 舉報

ID:194752 發(fā)表于 2017-6-1 09:18 來自觸屏版 | 顯示全部樓層
angmall 發(fā)表于 2017-5-30 22:13
KEIL環(huán)境下就不能在sbit使用數(shù)組或指針進(jìn)行“位”操作。

恩,我要的就是這樣的回答,如你所說,那我想要實現(xiàn)的語句是寫不出來了,看來只能別找辦法了。。。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表