找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2756|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

單片機C語言如何讀取外部7個端口形成16進制數(shù)組?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:198189 發(fā)表于 2023-3-9 17:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
50黑幣
比如單片機P1測外部Q1~Q7的高低數(shù)據(jù)1011 1001,如何判斷并存為16進制數(shù)組?C語言是不是這樣?定義,num,a~G  ,if Q1==1, a=1,Q2==0, b=0,……num=a&&b&&c……

最佳答案

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1012735 發(fā)表于 2023-3-9 17:05 | 只看該作者
num = Q1<<7 + Q2<<6 +...+Q6<<1+Q7
回復(fù)

使用道具 舉報

板凳
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ù)

使用道具 舉報

地板
ID:73992 發(fā)表于 2023-3-10 08:23 來自手機 | 只看該作者
你問題描述不準(zhǔn)確,是p1
回復(fù)

使用道具 舉報

5#
ID:198189 發(fā)表于 2023-3-10 09:32 | 只看該作者
謝謝樓上各位的回復(fù),都回答得很好,謝謝!
回復(fù)

使用道具 舉報

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

使用道具 舉報

7#
ID:213173 發(fā)表于 2023-3-10 21:34 | 只看該作者
單片機只認(rèn)識2進制,16進制是2進制的簡短表達(dá)式,給人看的。定義一個變量unsigned char num。
num=P1;
回復(fù)

使用道具 舉報

8#
ID:206581 發(fā)表于 2023-3-11 11:13 | 只看該作者
那要看你是存內(nèi)存的高8位還是低8位
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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