计算机识别按键的过程,独立按键识别-单片机原理-实验报告.doc

宁德师范学院计算机系

实验报告

课程名称 单片机原理

实验名称 独立按键识别

专 业 计算机科学与技术(软工)

年 级

指导教师

实验日期

实验目的与要求:

目的:

1. 掌握查询式按键的原理和编程方法

2. 理解按键防抖技术

要求:

1. 在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路

2. 在电路中增加7段数码管(共阳/共阴自选)将P口作数据输出口与7段数码管数据引脚相连 ,P引脚输出选控制信号

3. 实现单按键控制Led灯闪烁

4. 实现单按键多功能识别——控制4路Led灯闪烁

5. 实现0-99的计数器效果,按一下数值加一

6. 实现0-99码表 ( 按一次开始计时,第二次停止,第三次清零 )

7. 扩展要求: 通过3个按键实现时钟的调整 ( KEY1 模式 , KEY2 + ,KEY3 - )

实验设备(环境):

计算机

Proteus ISIS 7 Professional应用程序

Keil应用程序

实验内容:

按键识别 要求实现:

实现单按键控制Led灯闪烁

2. 实现单按键多功能识别——控制4路Led灯闪烁

3. 实现0-99的计数器效果,按一下数值加一

4. 实现0-99码表 ( 按一次开始计时,第二次停止,第三次清零 )

扩展要求: 通过3个按键实现时钟的调整 ( KEY1 模式 , KEY2 + ,KEY3 - )

参考原理图

实验步骤、实验结果及分析:

1 实验步骤:

1、使用Proteus ISIS 7 Professional应用程序,建立一个.DSN文件

2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。

3、构建仿真电路

4、创建一个Keil应用程序:新建一个工程项目文件;为工程选择目标器件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。

5、把用户程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径)

2 实验程序

(1)按键识别 ( 按下LED灯亮,再按灭)

#include

#define uint unsigned int

#define uchar unsigned char

sbit led=P2^6;

sbit key=P2^7;

void delay(uint x)

{

while(x--);

}

void main()

{

while (1)

{

if(key==0)

{

delay(1000);

if(key==0)

{

led=~led;

while(key==0);

}

}

}

}

(2)按键识别 ( 按下灭,再按闪)

#include

#define uint unsigned int

#define uchar unsigned char

sbit led=P2^6;

sbit key=P2^7;

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);break;

default:break;

}

}

}

(3)按键识别 ( 按下数码管数值加1)

#include

#define uint unsigned int

#define uchar unsigned char

uchar code LedCode[]={

0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00};

uchar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值