单片机按键扫描编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四单片机按键扫描编程
一、实验目的
1、掌握单片机按键扫描的工作方式;
2、掌握单片机按键扫描的编程方法。
二、实验内容
1、学习单片机按键扫描的工作方式;
2、扫描按键,控制LED灯实现闪烁和停止闪烁两种状态的切换。
基本要求:
用按键Key1控制,按一下Key1,控制LED灯闪烁和停止闪烁的切换。
三、实验设备
1、STC单片机开发板;
2、PC机以及串口线。
四、实验分析及关键代码
#include
#include
#define uchar unsigned char
uchar counter=0;
sbit KEY1=P2^6; //按下,值为0
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;
TL0=(65536-50000)%256; //重置初值
counter++;
if(counter==10)
{
LEDG=!LEDG; //LEDG取反改变灯的状态
counter=0;
}
}
void main()
{
TMOD=0X21;
EA=1;
ET0=1;
TR0=1; //启动T/C0开始定时
while(1)
{
if(!KEY1)
{ delay_10ms();
if(!KEY1)
{
while(!KEY1);
delay_10ms();
TR0=!TR0; //执行按键任务}
}
}
五、实验总结