单片机按键扫描编程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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; //执行按键任务}

}

}

五、实验总结

相关文档
最新文档