通过按键控制IO口操作
下面把今天学的一个简单的通过按键控制IO口LED灯工作的程序写一下,呵呵,可以加深我对按键操作(ELSE语句)的理解。
#include
#define uint unsigned int
#define uchar unsigned char
sbit DIPswitch1=P3^0;
sbit DIPswitch2=P3^1;
sbit redLED1=P1^0;
sbit blueLED1=P1^1;
sbit greenLED1=P1^2;
sbit yellowLED1=P1^3;
sbit redLED2=P1^4;
sbit blueLED2=P1^5;
sbit greenLED2=P1^6;
sbit yellowLED2=P1^7;
void delay(void)
{uint i;
for(i=0;i<35530;i++);
}
void main(void)
{
P1=0XFF;
P3=0XFF;//置位
while(1)
{
if(DIPswitch1==0)
{
redLED1=~redLED1;
yellowLED2=~yellowLED2;//判断按钮1是否为低电平,如果是的话,实现P0口的1脚和7脚按位取反
delay();}//延时操作
else if(DIPswitch2==0)
{
P1=~P1;//按键2取低时,P0口所有位按位取反闪烁
}
else
{
P1=0X00;//如果按键1VS2都为高,则所有灯亮
}
}
}
工作原理是当按键1为低adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=90ec16ab04311395&k=%B5%E7%C6%BD&k0=%B5%E7%C6%BD&kdi0=0&luki=5&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=95133104ab16ec90&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F1994%2Ehtml&urlid=0" id="3_nwl" mpid="3" target="_blank">电平时,P1口的1脚和7脚按位取反,实现LED灯的闪烁。当按键2为低电平的时候,P1口所有的灯实现按位取反功能,所有灯闪烁。当按键1和2都为高电平时,P1口为低电平,所有灯亮。
这个硬件电路是P3^0和P3^1控制按键1和2;P1口控制八个LED灯。
呵呵,数码管的动态和静态还在学习当中,现在基本的静态控制应该是会了,动态的争取这两天把它学完。加油。
由于时间关系,在这就不写上单片机的工作系统了。
有了这个程序和原理图,我们也可以根据需要适当得改写程序,达到我们想要的目的。
按键控制IO口操 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)