单片机按键扫描编程

实验四  单片机按键扫描编程

一、实验目的

1、掌握单片机按键扫描的工作方式;

2、掌握单片机按键扫描的编程方法。

二、实验内容

1、学习单片机按键扫描的工作方式;

2、扫描按键,控制LED灯实现闪烁和停止闪烁两种状态的切换。

基本要求:

用按键Key1控制,按一下Key1,控制LED灯闪烁和停止闪烁的切换。

三、实验设备

1、STC单片机开发板;

2、PC机以及串口线。

四、实验分析及关键代码

1、实验分析

首先要确定按键Key1所对应的接口,对按键进行编程后从而控制灯的亮灭。定时计数器置1时开始工作,定时100ms,计算得初值为65536-50000。

2、关键代码

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char

uchar counter=0;
sbit KEY1=P2^6;
sbit LEDG=P2^5;

void delay_10ms(void)     //10ms
{
    unsigned char i,j;
	for(j=0;j<10;j++)
	{
	    for(i=0;i<250;i++)
		    _nop_();
	}
}

void timer()interrupt 1 using 1  //定时器1方式1,采用中断方式
{
    TH0=(65536-50000)/256;	 //定时100ms
	TL0=(65536-50000)%256;
	counter++;
	if(counter==10)
	{
	    LEDG=!LEDG;	  //输出取反
		counter=0;
	}
}

void main()
{
    TMOD=0x21;
	EA=1;
	ET0=1;
	TR0=1;
	while(1)
	{
	    if(!KEY1)
		{
		    delay_10ms();
			if(!KEY1)
			{
			    while(!KEY1);
				  delay_10ms();
				TR0=!TR0;
			}
		}
	}
}		   

版权声明:本文为CSDN博主「YacFighting」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YacFighting/article/details/121629527

生成海报
点赞 0

YacFighting

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

51单片机c语言开发工具keil安装

单片机分好几种,常见的51单片机开发需要安装keil对应c51版本,不能安装成了mdk版本。这个需要注意。目前,比较好的工具,windows下自然是keil了。但是它是收费的&#xff0c

【51单片机】数码管的静态显示

数码管的静态显示 锁存引脚高电平表示直通状态,为低电平表示锁存状态段锁存定位显示数字,位锁存定位用哪段数码管12M的晶振接两个30pf的电容,6M的晶振接20pf的电容三态:高电平,低电