找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 2816|回復(fù): 7
收起左側(cè)

單片機(jī)C語(yǔ)言如何讀取外部7個(gè)端口形成16進(jìn)制數(shù)組?

[復(fù)制鏈接]
ID:198189 發(fā)表于 2023-3-9 17:05 | 顯示全部樓層 |閱讀模式
50黑幣
比如單片機(jī)P1測(cè)外部Q1~Q7的高低數(shù)據(jù)1011 1001,如何判斷并存為16進(jìn)制數(shù)組?C語(yǔ)言是不是這樣?定義,num,a~G  ,if Q1==1, a=1,Q2==0, b=0,……num=a&&b&&c……

最佳答案

回復(fù)

使用道具 舉報(bào)

ID:1012735 發(fā)表于 2023-3-9 17:05 | 顯示全部樓層
num = Q1<<7 + Q2<<6 +...+Q6<<1+Q7
回復(fù)

使用道具 舉報(bào)

ID:537570 發(fā)表于 2023-3-9 22:59 | 顯示全部樓層
#define VAL 0x9d

//判斷函數(shù)
/*
函數(shù)說明 當(dāng)P1口的值為0x9d ,將值通過Jude()函數(shù)返回,否則返回0
*/
int Jude()
{
        unsigned char temp;
       
        temp = P1;         //獲取P1端口的值
        if(temp==VAL)       
        {
                return temp;       
        }else
        {
                return 0;       
        }
       
}

void main()
{
        unsigned char res;       
        res = Jude();
}
回復(fù)

使用道具 舉報(bào)

ID:73992 發(fā)表于 2023-3-10 08:23 來自觸屏版 | 顯示全部樓層
你問題描述不準(zhǔn)確,是p1
回復(fù)

使用道具 舉報(bào)

ID:198189 發(fā)表于 2023-3-10 09:32 | 顯示全部樓層
謝謝樓上各位的回復(fù),都回答得很好,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:73992 發(fā)表于 2023-3-10 11:46 來自觸屏版 | 顯示全部樓層
你問題描述不準(zhǔn)確,是p1口整體作為一個(gè)字節(jié)接收數(shù)據(jù),還是p1每一位作為獨(dú)立的數(shù)據(jù)端口接收數(shù)據(jù)。如果是作為一個(gè)字節(jié)接收,就判斷p1的值。是需要的值就存入內(nèi)存。如果是獨(dú)立接收數(shù)據(jù),就判斷p1口的值,然后邏輯運(yùn)算取需要的位值,通過移位取得一個(gè)字節(jié)數(shù)據(jù), 存入內(nèi)存。值本來就是十六進(jìn)制的。如果值的意義是數(shù)量,那么不用移位,用加
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2023-3-10 21:34 | 顯示全部樓層
單片機(jī)只認(rèn)識(shí)2進(jìn)制,16進(jìn)制是2進(jìn)制的簡(jiǎn)短表達(dá)式,給人看的。定義一個(gè)變量unsigned char num。
num=P1;
回復(fù)

使用道具 舉報(bào)

ID:206581 發(fā)表于 2023-3-11 11:13 | 顯示全部樓層
那要看你是存內(nèi)存的高8位還是低8位
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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