栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

一、说明

利用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-物联网应用系统设计项目开发

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号