ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:410.49KB ,
资源ID:4771605      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4771605.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(独立按键识别 单片机原理 实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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

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

3、时,第二次停止,第三次清零 )5. 扩展要求: 通过3个按键实现时钟的调整 ( KEY1 模式 , KEY2 + ,KEY3 - ) 参考原理图 实验步骤、实验结果及分析:1 实验步骤:1、使用Proteus ISIS 7 Professional应用程序,建立一个.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#define uint unsigned int#define uchar unsigned charsbit led=P26;sbit key=P27;void delay(uint x) while(x-);void main() while (1) if(key=0) delay(1000); if(key

5、=0) led=led; while(key=0); (2)按键识别 ( 按下灭,再按闪)#include#define uint unsigned int#define uchar unsigned charsbit led=P26;sbit key=P27;void delay(uint x) while(x-);void main() uint i,j; while (1) led=1; if(key=0) delay(1000); if(key=0) i+; j=i%2; while(key=0); switch(j) case 0 : led=0;break; case 1 : le

6、d=led;delay(100);break; default:break; (3)按键识别 ( 按下数码管数值加1)#include#define uint unsigned int#define uchar unsigned charuchar code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar DispBuf8;sbit led=P26;sbit key=P27;void delay(uint x) while(x-);void disnum(uint n) uint i; for(i=0;i

7、=7;i+) DispBuf7-i=n%10; if(n=0&i) DispBuf7-i =10; n=n/10; void main() uint i,j; while (1) led=1; if(key=0) delay(1000); if(key=0) i+; while(key=0); disnum(i) ; for(j=0;j8;j+) P1=1j; P3= LedCodeDispBufj; delay(100) ; (4)一键多功能识别 (按下L1闪,再按L2闪,L3,L4依次闪烁)#include#define uint unsigned int#define uchar uns

8、igned charsbit led1=P20;sbit led2=P21;sbit led3=P22;sbit led4=P23;sbit key=P27;void delay(uint x) while(x-);void main() uint i; led1=0; led2=0; led3=0; led4=0; while (1) if(key=0) delay(1000); if(key=0) i+; while(key=0); i=i%4; switch(i) case 0 :led1=led1;delay(100);led4=0;break; case 1 :led2=led2;d

9、elay(100);led1=0;break; case 2 :led3=led3;delay(100);led2=0;break; case 3 :led4=led4;delay(100);led3=0;break; default:break; (5)一键多功能识别 (秒表,按第1下开始,按第2下停,按第3下清零)#includereg51.h#define uint unsigned int#define uchar unsigned charuchar code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40

10、;uchar DispBuf8;uint hour=0,min=0,sec=0;sbit key=P27;void delay(uint x) /延迟函数 while(x-);void PntNum(void) /时间的拆分 DispBuf7=sec%10; / 获取秒钟的个位数 DispBuf6=sec/10; / 获取秒钟的十位数 DispBuf5=10; DispBuf4=min%10; DispBuf3=min/10; DispBuf2=10; DispBuf1=hour%10; DispBuf0=hour/10;void play(void) uchar i; for(i=0;i8;

11、i+) P1=1=0) sec+;n=0; if(sec=60) min+;sec=0; if(min=60) hour+;min=0; if(hour=24) hour=0; void main() uint i=2; while (1) if(key=0) delay(1000); if(key=0) i+; while(key=0); i=i%3; switch(i) case 0 :PntNum( );play( );time();break; case 1 :PntNum( );play( );break; case 2 :hour=0,min=0,sec=0;PntNum( );p

12、lay( );break; default:break; (6)通过3个按键实现时钟的调整 ( KEY1 模式 , KEY2 + ,KEY3 - )#include #define uint unsigned int#define uchar unsigned char#define disnull 10uchar hour=15,min=24,sec=20;uchar code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;uchar dispbuff 8;void pnttime( ) dispbuff7=se

13、c%10; dispbuff6=sec/10; dispbuff5=disnull; dispbuff4=min%10; dispbuff3=min/10; dispbuff2=disnull; dispbuff1=hour%10; dispbuff0=hour/10;void delay ( uint x) while(x-);void main () uchar i,ms; while(1) pnttime(); for(i=0;i8;i+) P3=0; P3=1 =10) sec+; ms =0; if(sec=60) min+; sec=0; if(min=60) hour+; min

14、=0; if(hour=24) hour=0; 3 实验总结(包括过程总结、心得体会及实验改进意见等):过程总结: 通过本次实验对单片机的知识进一步了解,通过单片机可以实现很多电子功能的实现,比如时钟的实现。掌握查询式按键的原理和编程方法,理解按键防抖技术。本次实验大多数是为了熟悉按键设计,对按键设计进行更加的了解与熟练。心得体会:本次实验过程之中,有很多难度,比以前的数码管多了一个按键,这个按键就是本次实验的关键,经过不停的修改和同学的讨论,做了出来,虽然不怎么样,但是还是做出来了。以后的遇到相同的按键操作就不会这样什么都不懂了。指导教师评语:1、完成所有规定的实验内容,实验步骤正确,结果正确;2、完成绝大部分规定的实验内容,实验步骤正确,结果正确;3、完成大部分规定的实验内容,实验步骤正确,结果正确;4、基本完成规定的实验内容,实验步骤基本正确,所完成的结果基本正确;5、未能很好地完成规定的实验内容或实验步骤不正确或结果不正确。6、其它: 评定等级:A(优秀) B(良好) C(中等) D(及格) E(不及格)成绩评定 教师签字 年 月 日备注:注:1、报告内的项目或设置,可根据实际情况加以补充和调整 2、教师批改学生实验报告应在学生提交实验报告10日内

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1