新闻  |   论坛  |   博客  |   在线研讨会
Proteus单片机:多路开关状态指示
A670521546 | 2011-11-03 16:57:56    阅读:9132   发布文章

AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)



程序设计

最直接的方式:
#include<reg51.h>
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
sbit K1=P1^4;
sbit K2=P1^5;
sbit K3=P1^6;
sbit K4=P1^7; 

void main(void)
{
while(1){
    if(K1==0)
       L1=0;
 else
       L1=1;
  
 if(K2==0)
    L2=0;
 else
 L2=1;

 if(K3==0)
    L3=0;
   else
 L3=1;

 if(K4==0)
    L4=0;
    else
 L4=1; 
}
}


这个还有其他的形式可以实现,比如P14端口赋值后右移4次,然后与0xf0相或;
#include<reg51.h>
unsigned char temp;

void main()
{
 while(1){
  temp=P1>>4;
  temp=temp | 0xf0;
     P1=temp;
 }
}


这个是一个比较简单的实验,我们可以通过多种方式来实现,不同的思路,决定不同的编程程序,也会有不同的效率。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客