请问 有关用C语言描述单片机引脚高低电平语句,除了如P1_0表示p1.0口外,还有其他比较方便的表示方法吗

如题所述

用P1_0表示p1.0是要声明 sbit P1_0 = p1.0是吧?
这样多一步变量的声明而已,用起来其实很方便呀。

要是想用另外个方法的话,那就直接对p1整体赋值吧,
但是这里有一点就是,对p1整体赋值但是又只想改变p1.0的值就要用与和或运算了
具体做法是:
p1 = p1 | 0X80; 设置1
p1 = p1 & 0X7F; 设置0
这样看起来,还没定义变量的方便追问

不用先申明的 应该是默认的 我这试过 还有我想解决的是比如在P0口内的8个引脚循环显示外接的LED,但是在C语言描述中,老是要反复写明引脚的当前状态,所以想寻求个能不能像++.--移位之类的语句代替呢

追答

八个引脚循环显示外接LED,就是做个流水灯是吧?
应该可以给P1口循环赋值来定,
你试试看这个怎么样
P1=0X01;
while(1)
{
if(P1==0X80)
P1=0X01; //要是灯是P1.0口的话,下一个设置为P1.7口
else
P1=P1<<1; //P1.7....P1.6.......P1.5......
//这里加个延迟函数
}
我寝室电脑没有编译环境,只有按想象着写了,你先试试看行不行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-19
你是想做跑马灯之类的东西吧?#include<intrins.h>然后试试这个语句:P0=_CROL_(P0,a);
意思是把P0口的数据左移a位,同理_CROR_右移。