利用单片机P1口接8个发光二极管,P0口接8个开关,编程实现,当开关动作时,对应发光二极管的亮或灭 #includ

2024-12-04 22:38:59
推荐回答(4个)
回答1:

i=P0;//是检测P0端口的值1或0;以便将检测完的数据赋值给P1,从而实现P1口对应的二极管点亮;
P1=i;//是将检测到的值用发光二极管点亮显示出来。

死循环是一直执行上面两条操作,因为程序一直在检测按键操作,
我只要将开关按下,则对应的P0端口变成0,
同时(P1=i)P1对应的二极管点亮。

你追问的这个这个是用的定时器中断,计数器是在不断的计数的当满值后就产生中断,进入中断重新赋值TL和TH寄存器,再次进行计数,记满后再次中断,如此循环不息。还有就是计数器是一直在不停的计数的,不会因为while(1);而停止!

回答2:

一般不这样接,应该是led正极接vcc,然后负极接到单片机引脚上。像你那种接法也是可以的。

回答3:

可以不用变量,直接P1=P0;
死循环,这个是必须的。因为要不停的用P0来指示P1。
P1=P0 这句执行一次,只是把此时的P0值赋值给P1。而P0的值是可能会变化的。所以要不停的循环赋值。

单片机程序都会是一个死循环程序,因为不死循环,程序终究会执行完,此时程序并不会停止不动,还是要继续执行,此时就会乱跑,所以用个死循环,让程序永远不会执行完。

回答4:

越问越乱 多看点书吧