实验四 单片机按键扫描编程
一、实验目的
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
暂无评论