单片机不同IO口划分为一组再去赋值操作的方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机不同IO口划分为一组再去赋值操作的方法
sbit A1 = P1^0;
sbit B1 = P1^1;
sbit C1 = P1^2;
sbit D1 = P1^3;
...
sbit A2 = P1^4;
sbit B2 = P1^5;
sbit C2 = P1^6;
sbit D2 = P1^7;
...
void SET_PA(ucharval)
{
A1 = val& 1;
B1 = val>> 1 & 1;
C1 = val>> 2 & 1;
D1 = val>> 3 & 1;
}
void SET_PB(ucharval)
{
A2 = val>> 4 & 1;
B2 = val>> 5 & 1;
C2 = val>> 6 & 1;
D2 = val>> 7 & 1;
}
...
原理:
把A1 B1 C1 D1放入val的低四位,A2 B2 C2 D2放入val的高四位。后面独立给SET_PA,SET_PB赋值,val中的低四位和高四位互不影响。但是需要注意:0x01赋给SET_PA可以写成SET_PA(0x01);给SET_PB赋值0x01要写成SET_PB(0x10);如
果定义两个函数val_1和val_2,暂时没有尝试需不需要这样改变。