Proteus单片机:多路开关状态指示
时间:04-13 09:30 阅读:1065次
*温馨提示:点击图片可以放大观看高清大图
简介:本文简单介绍一个单片机的小应用,希望大家可以举一反三,多多学习。
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;
}
}
这个是一个比较简单的实验,我们可以通过多种方式来实现,不同的思路,决定不同的编程程序,也会有不同的效率。