欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3280|回復: 7
收起左側

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

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

最佳答案

回復

使用道具 舉報

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

使用道具 舉報

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

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

ID:213173 發表于 2023-3-10 21:34 | 顯示全部樓層
單片機只認識2進制,16進制是2進制的簡短表達式,給人看的。定義一個變量unsigned char num。
num=P1;
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表