标题:
单片机C语言如何读取外部7个端口形成16进制数组?
[打印本页]
作者:
xia20
时间:
2023-3-9 17:05
标题:
单片机C语言如何读取外部7个端口形成16进制数组?
比如单片机P1测外部Q1~Q7的高低数据1011 1001,如何判断并存为16进制数组?C语言是不是这样?定义,num,a~G ,if Q1==1, a=1,Q2==0, b=0,……num=a&&b&&c……
作者:
hy47566398
时间:
2023-3-9 17:05
num = Q1<<7 + Q2<<6 +...+Q6<<1+Q7
作者:
wzg_90
时间:
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();
}
作者:
lyonkon
时间:
2023-3-10 08:23
你问题描述不准确,是p1
作者:
xia20
时间:
2023-3-10 09:32
谢谢楼上各位的回复,都回答得很好,谢谢!
作者:
lyonkon
时间:
2023-3-10 11:46
你问题描述不准确,是p1口整体作为一个字节接收数据,还是p1每一位作为独立的数据端口接收数据。如果是作为一个字节接收,就判断p1的值。是需要的值就存入内存。如果是独立接收数据,就判断p1口的值,然后逻辑运算取需要的位值,通过移位取得一个字节数据, 存入内存。值本来就是十六进制的。如果值的意义是数量,那么不用移位,用加
作者:
wulin
时间:
2023-3-10 21:34
单片机只认识2进制,16进制是2进制的简短表达式,给人看的。定义一个变量unsigned char num。
num=P1;
作者:
hzsweet
时间:
2023-3-11 11:13
那要看你是存内存的高8位还是低8位
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1