51单片机之通过按键点灯程序

    xiaoxiao2023-10-17  156

    单片机芯片采用ATmel公司89c52芯片。

    1.流水灯电路图

    2.四位按键

    3.C语言代码(简单的按键控制灯的明暗)

    #include <reg52.h> sbit led1=P1^0; sbit led2=P1^1; sbit led3=P1^2; sbit led4=P1^3; sbit led5=P1^4; sbit led6=P1^5; sbit led7=P1^6; sbit led8=P1^7; sbit k1=P3^4; sbit k2=P3^5; sbit k3=P3^6; sbit k4=P3^7; void main() { P1=0xff; while(1) { led1=k1; led2=k1; /* if(k1==0) { led1=0; led2=0; } else { led1=1; le12=1; }*/ led3=k2; led4=k2; led5=k3; led6=k3; led7=k4; led8=k4; } }

    只有当按键按住超过一定时间,才亮灯,并且每次按键都反转指示灯的状态 

    #include <reg52.h> sbit led1=P1^0; sbit led2=P1^1; sbit led3=P1^2; sbit led4=P1^3; sbit led5=P1^4; sbit led6=P1^5; sbit led7=P1^6; sbit led8=P1^7; sbit k1=P3^4; sbit k2=P3^5; sbit k3=P3^6; sbit k4=P3^7; void delay(unsigned int xms) { unsigned int i,j; for(i=xms;i>0;i--) for(j=112;j>0;j--); } void main() { P1=0xff; while(1) { if(k1==0) delay(5000); //只有当按键按住时间到达5s,才点亮指示灯 if(k1==0) { while(k1==0); led1=~led1; } } }

     

     简单的单片机程序,首先要了解电路的各个引脚的输出,其次对应库函数编写C语言代码。

     

    最新回复(0)