利用单片机P1口接8个发光二极管,P0口接8个开关,编程实现,当开关动作时,对应发光二极管的亮或灭
#include<reg51.h>
void main(void)
{
unsigned char i;
p0=0xff;
for(;;) {i=p0;p1=i;}
}
我的疑问是: 为什么程序中要引进一个变量i,而不是直接把P0赋值给P1.
为什么要有一个for的死循环。
这个程序的意思是P1.1口产生500ms的电平后有产生一个500ms的低电平如此反复的构成一个周期为1S的方波。我的疑问是在每个500ms为什么不用对P1.1口进行死循环保证P1.1口电平的稳定
追答前面一个例子,死循环不是用来保证稳定的,而是要把真实的状态时时反映出来。前面的例子中,P0何时变化未知,也很随机,所以要时时去读它的状态。
后面这个例子,输出状态很明确,500ms变化一次,那只需要过500ms改变一次就好了。在这500ms内,P1口的状态不用变化,就不需要去给它赋值,它会一直保持这个状态的。