




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、宁德师范学院计算机系实验报告(20142015学年 第 2学期)课程名称 单片机原理 实验名称 独立按键识别 专 业 计算机科学与技术(软工)年 级 2012级 学号 B2012103145 姓名 冯武 指导教师 杨烈君 实验日期 2015.5.27 实验目的与要求:目的:1. 掌握查询式按键的原理和编程方法2. 理解按键防抖技术要求:1. 在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路2. 在电路中增加按键、Led灯、八位7段数码管(共阳/共阴自选),将P2口作数据输出口与7段数码管数据引脚相连 ,P3引脚输出位选控制信号。3. 实现单按键控制Led灯闪烁 4. 实
2、现单按键多功能识别控制4路Led灯闪烁 5. 实现0-99的计数器效果,按一下数值加一6. 实现0-99码表 ( 按一次开始计时,第二次停止,第三次清零 )7. 扩展要求: 通过3个按键实现时钟的调整 ( KEY1 模式 , KEY2 + ,KEY3 - )实验设备(环境):1 计算机2 Proteus ISIS 7 Professional应用程序3 Keil应用程序实验内容: 按键识别 要求实现: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应用程序:新建一个工程项目文件;为工程选择目标器件(AT89C52
4、);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。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=0) led=led; wh
5、ile(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 : led=led;delay(100);
6、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;i+) DispBuf7-i=
7、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 unsigned charsbit led1=P
8、20;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;delay(100);led1=0;break; c
9、ase 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;uchar DispBuf8;uint hou
10、r=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;i+)P1=1=0) sec+;n=0;if(sec
11、=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( );play( );break; default:break; (6)通过3
12、个按键实现时钟的调整 ( 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=sec%10; dispbuff6=sec/10; dispbuff5=d
13、isnull; 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=0; if(hour=24) hour=0; 3 实验总结(包括过程总结、心得体会及实验改进意见等):过程总结: 通过本次实验对单片机的知识进一步了解,通过单片机可以实现很多电子功能的实现,比如时钟的实现。掌握查询式按键的原理和编程方法,理解按键防抖技术。本次实验大多数是为了熟悉按键设计,对按键设计进行更加的了解与熟练。心得体会:本次实验过程之中,有很多难度,比以前的数码管多了一个按键,这个按键就是本次实验的关键,经过不停的修改和同学的讨论,做了出来,虽然不怎么样,但是还是做出来了。以后的遇到相同的按键操作就不会这样什么都不懂了。指导教师评语:1、完成所有规定的实验内容,实验步骤正确,结果正确;2、完成绝大部分规定的实验内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临时周转编制管理办法
- 人员聚集如何管理办法
- 为啥推行网格管理办法
- 企业外逃人员管理办法
- 基于晶态框架材料新型荧光探针的合成及其传感性能研究
- 2025年泰安货运从业资格考试题目含答案
- 健康档案管理试题库及答案
- 2025年基金从业基金法律法规考试真题回顾与预测卷含答案
- 共价键教学课件
- 电子产品综合设计与制作 课件 项目3任务 (1)电子元器件查找与数据提取
- 设计院培训管理制度
- 2025年甘肃省武威市民勤县西渠镇人民政府选聘专业化管理村文书笔试参考题库及1套完整答案详解
- JG/T 446-2014建筑用蓄光型发光涂料
- 博弈论在社会生活中的实际应用与案例分析
- 儿童陪伴师傅合同协议书
- 工地意外死亡赔偿协议书6篇
- 自体动静脉内瘘围手术期管理专家共识2023版解读课件
- 《大脑解剖及神经网络》课件
- 医药企业的数字化转型与营销创新策略研究报告
- 浙江省公路工程监理用表-监理旁站记录2025
- 星三角降压启动控制线路主要内容
评论
0/150
提交评论