- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机独立按键识别实验报告
桂林电子科技大学
实验报告
2016-2017 学年第一学期
开 课 单 位 海洋信息工程学院
适用年级、专业 14级机械
课 程 序 号 BS1615000_03
课 程 代 码 BS1615000
实 验 名 称 《独立按键识别》
独立按键识别实验报告
一、实验目的
1、了解单片机顺序执行的工作特点。
2、掌握单片机并行控制I/O口的基本方法。
3、掌握C语言的编写,及对I/O口的基本操作方法。
二、实验内容
实验设备:计算机一台、单片机实验箱一台、Proteus软件、Keil软件。
硬件原理图:
电路采用无源蜂鸣器,从P1.5口形成脉冲来驱动
因为单片机开机初始化瞬间,其I/O口为高电平,会有误响动作。
单片机的独立键盘使用的是P1口。
当有键按下时,P1口相应位为低电平。
1、查找资料说明按键抖动的原因。
2、延时程序是怎么实现延时的?
3、打开Keil新建工程:学号-2.uv2。
4、参考实验程序,编写程序:任意Key按下后让蜂鸣器响一声。生成:学号-2.hex文件。
5、打开下载软件,把学号-2.hex文件烧写到单片机,观察蜂鸣器现象。
6、修改程序将按键绑定在P1.1上,并每按一次按键让蜂鸣器响三声。 三、实验结果分析
1、程序流程图:
#include reg51.h
sbit Beep = P1^5 ;//定义蜂鸣器的连接端口
//--定义要使用的IO口--//
sbit K1 = P1^0; //对应按钮K1
//--定义全局函数--//
void delay(unsigned int i) ; //延时函数
void beepnoise(unsigned int t); //蜂鸣器发声
unsigned char Key_Scan(); //键盘扫描
void main()
{
unsigned char keyNum;
while (1)
{
keyNum = Key_Scan(); //扫描键盘
if (keyNum == 1) //如果键值返回1,即1号独立按键被按下
{
beepnoise(1);
}
}
}
void delay(unsigned int i)
{
char j;
for(i; i 0; i--)
for(j = 200; j 0; j--);
}
void beepnoise(unsigned int t)
{ t=t*30;
while(t0)
{
Beep= 1;
delay(500);
Beep= 0;
delay(500);
t--;
}
}
unsigned char Key_Scan()
{
unsigned char keyValue = 0 , i; //保存键值
//--检测按键1--//
if (K1==0) //检测按键K1是否按下
{
delay(1000); //消除抖动
if (K1==0) //再次检测按键是否按下
{
keyValue = 1;
i = 0;
while ((i50) (K1==0)) //检测按键是否松开
{
delay(1000);
i++;
}
}
}
return keyValue; //将读取到键值的值返回
}
以上程序用开发板来进行实验,程序可以实现要求。
对于在进行实验的设计时,可能存在的错误,主要是C语言的一些使用规则的错误和对中断控制等代码的错误。等发生错误时,就应从代码的开始部分进行检查和分析,对于错误的地方进行修改,直到程序无错误为止。对于验证其功能时,应确认开发板没有损坏,正确连接电路等。 四、与讨论
2、按键防抖动技术。
答:软件防抖方法:软件的方法进行防抖。当第一次检测到有建按下时,先用软件延时(10~20ms),而后再确认键电平是否依旧维持闭合状态的电平。若保持闭合状态电平,则确认此间已按下,从而消除抖动影响。
3、延时程序的使用方法。
答:在C51中通过预处理指令#pragma asm和#pragma endasm可以嵌套汇编语言语句。用户编写的汇编语言紧跟在#pragma asm之后,在#pragma endasm之前结束。
如:#pragma asm
…
汇编语言程序段
…
#pr
文档评论(0)