独立按键识别-单片机原理-实验报告.doc

独立按键识别-单片机原理-实验报告.doc

ID:56204308

大小:564.00 KB

页数:8页

时间:2020-03-20

独立按键识别-单片机原理-实验报告.doc_第1页
独立按键识别-单片机原理-实验报告.doc_第2页
独立按键识别-单片机原理-实验报告.doc_第3页
独立按键识别-单片机原理-实验报告.doc_第4页
独立按键识别-单片机原理-实验报告.doc_第5页
资源描述:

《独立按键识别-单片机原理-实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、宁德师范学院计算机系实验报告(2014—2015学年第2学期)课程名称单片机原理实验名称独立按键识别专业计算机科学与技术(软工)年级2012级学号B2012103145姓名冯武指导教师杨烈君实验日期2015.5.27实验目的与要求:目的:1.掌握查询式按键的原理和编程方法2.理解按键防抖技术要求:1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路2.在电路中增加按键、Led灯、八位7段数码管(共阳/共阴自选),将P2口作数据输出口与7段数码管数据引脚相连,P3引脚输出位选控制信号。3.实现单按键控制Led灯

2、闪烁4.实现单按键多功能识别——控制4路Led灯闪烁5.实现0-99的计数器效果,按一下数值加一6.实现0-99码表(按一次开始计时,第二次停止,第三次清零)7.扩展要求:通过3个按键实现时钟的调整(KEY1模式,KEY2+,KEY3-)实验设备(环境):1.计算机2.ProteusISIS7Professional应用程序3.Keil应用程序实验内容:按键识别要求实现:1.实现单按键控制Led灯闪烁2.实现单按键多功能识别——控制4路Led灯闪烁3.实现0-99的计数器效果,按一下数值加一4.实现0-99码表(按一次开始计时,第二

3、次停止,第三次清零)5.扩展要求:通过3个按键实现时钟的调整(KEY1模式,KEY2+,KEY3-)参考原理图实验步骤、实验结果及分析:1实验步骤:1、使用ProteusISIS7Professional应用程序,建立一个.DSN文件2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。3、构建仿真电路图1按键识别1、2图2按键识别3图3按键识别4图3按一下暂停图4归零图5时钟调整电路图4、创建一个Keil应用程序:新建一个工程项目文件;

4、为工程选择目标器件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。5、把用户程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径)2实验程序<流程图>(1)按键识别(按下LED灯亮,再按灭)#include#defineuintunsignedint#defineucharunsignedcharsbitled=P2^6;sbitkey=P2^7;voiddelay(uintx){while(x--);}voidmain(){w

5、hile(1){if(key==0){delay(1000);if(key==0){led=~led;while(key==0);}}}}(2)按键识别(按下灭,再按闪)#include#defineuintunsignedint#defineucharunsignedcharsbitled=P2^6;sbitkey=P2^7;voiddelay(uintx){while(x--);}voidmain(){uinti,j;while(1){led=1;if(key==0){delay(1000);if(key==0

6、){i++;j=i%2;while(key==0);}}switch(j){case0:led=0;break;case1:led=~led;delay(100);break;default:break;}}}(3)按键识别(按下数码管数值加1)#include#defineuintunsignedint#defineucharunsignedcharucharcodeLedCode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};ucharDi

7、spBuf[8];sbitled=P2^6;sbitkey=P2^7;voiddelay(uintx){while(x--);}voiddisnum(uintn){uinti;for(i=0;i<=7;i++){DispBuf[7-i]=n%10;if(n==0&&i)DispBuf[7-i]=10;n=n/10;}}voidmain(){uinti,j;while(1){led=1;if(key==0){delay(1000);if(key==0){i++;while(key==0);}}disnum(i);for(j=0;j<8

8、;j++){P1=1<#defineuintunsi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。