STC51单片机-中断控制LED-物联网应用系统设计项目开发

STC51单片机-中断控制LED-物联网应用系统设计项目开发,第1张

目录
  • 一、说明
  • 二、重点
  • 三、实现
  • 四、下载

一、说明

利用C51设计2个基本的I/O控制程序,编程实现以下功能:

  • 对外部按键的状态读取
  • 对多个按键的判断处理
  • 根据按键进行不同的输出控制LED显示
  • 8个LED的4-6种“花样”显示控制
二、重点
  • 51系列单片机的基本结构特点、引脚功能及其使用的基本方法
  • 掌握keil c51的程序设计特点及方法
三、实现

#include 
sbit INT_0 = P3^2;
sbit P26 = P2^6; 
unsigned  int i=0,count=0;
unsigned char kc1=0x01,kc2=0x0f,kc3=0x03,kc4=0;		//不同中断次数下LED显示的初值
void delay10ms(void)  				//约10ms延时子程序(12MHZ),用于防键抖动
   {	unsigned char  i,j,k;    
for(i=5;i>0;i--)   
for(j=4;j>0;j--)  
for(k=248;k>0;k--);  
}
void delay500ms(void)   			//约500ms延时子程序(12MHZ),用于显示变化的间隔
   {  unsigned char  i,j,k;   
      for(i=10;i>0;i--)  
for(j=132;j>0;j--)  
for(k=150;k>0;k--); 
}
void main() 
{	EA=1; EX0=1; IT0=1;		//允许/INT0中断,IT0=1为边沿触发
	while(1)
	{ 	
		switch (count) 
		  { case 0:P0=kc1; P26=1;P26=0; kc1<<=1;delay500ms();if (kc1==0) kc1=0x01;break; //0次
		    case 1: P0=kc2; P26=1;P26=0;kc2=~kc2;delay500ms(); break; 					 //1次
		    case 2: P0=kc3;P26=1;P26=0;kc3<<=1; kc3<<=1;delay500ms();				 	 //2次
                  if (kc3==0x00) kc3=0x03; break;
		    case 3: P0=kc4; P26=1;P26=0; delay500ms();kc4++; break; 					 //3次
		  }
	}
}
void int0(void) interrupt 0			///INT0中断服务函数
{
	delay10ms();					//防按钮抖动,可根据实际情况调整
	if (INT_0==0)
	 { count++;
	    if (count==4) count=0;
	 }
}	
四、下载

详见:STC51单片机-中断控制LED-物联网应用系统设计项目开发

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1499155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存