实验键盘实验

发布 2023-04-19 09:41:28 阅读 4569

【实验目的】

1、 学习lpc系列处理器gpio口的使用方法;

2、 学习用keil软件开发arm程序方法和步骤。

3、 学习用反转扫描法实现键盘的输入。

4、 学习74hc595驱动数码管的编程方法。

实验要求】1、 了解lpc系列处理器gpio口的功能原理;

2、 在keil中设计arm程序,实现74hc595对数码管驱动的驱动程序的编写,及反转扫描法实现键盘的输入;

3、 请提前了解反转扫描的原理。

4、 附加要求:请改正按键的值,使其显示正确的键值。

实验原理】1、lpc系列处理器gpio口的原理。

pinsel(x) 管脚功能选择寄存器。

iopin(x)gpio引脚值寄存器。

ioset(x)gpio输出置位寄存器。

iodir(x)gpio方向控制寄存器

ioclr(x)gpio输出清零寄存器。

2、实验电路原理图。

实验电路的连接如下图,p2.00到p2.07控制key0——key7,通过对p2.00到p2.07的控制实现对键盘的输入。并且将结果显示在数码管上。

简述扫描键盘的方法:首先让按键的行(或者列)输出高电平,然后变为输入,再让列(或者行)输出低电平,这样如果有键按下,就会通过按键的通路改变之前行(或列)的管脚状态,读取状态后就可以知道是哪一列(或者行)有键按下,最后反转行和列的输入输出状态,从而确定按键。请结合程序理解。

3、 程序**。

#include<>

#define not_key 89

#define sdi_seg 1<<27

#define sclk_seg 1<<28

#define load_seg 1<<29

typedef unsigned int uint ;

typedef unsigned char uint8 ;

typedef unsigned char uchar;

typedef unsigned long uint32;

uint8 tab[18]=

return value; /返回键值。

void show_seg_char(uchar data) /显示一位数字。

uchar i;

ioclr0=load_seg锁存数据//可从寄存器通过。

delay_100us();

ioclr0=sclk_seg;//上升沿采样。

for(i=0;i<8;i++)

ioset0=load_seg数据进入寄存器。

int main()

uchar key_value;

init_seg();

while(1)

key_value=read_keyvalue();

if(key_value!=not_key)

show_seg_char(tab[key_value]);

电学实验实验

实验四 测电源的电动势和内阻练习。1 如图所示是测量干电池电动势和内电阻的实验电路,为了减少系统误差,电压表的内阻应 变阻器的全电阻应接通电键时滑动变阻器的滑片c应在。2 用伏安法测电源电动势和内电阻的实验电路如图2所示,现备有以下器材 a 干电池一个b 滑动变阻器 阻值范围0 50 c 滑动变阻器...

实验目的 实验内容 实验报告

实验一。一 实验目的。1 熟悉 4.0 开发运行环境及配置。2 掌握创建 发布 复制 的过程。3 掌握 设置和虚拟目录设置的过程。二 实验内容及步骤。三 实验总结。实验二。一 实验目的。1 掌握c 基础语法 值类型 引用类型 装箱和拆箱 2 流程控制 case while for foreach 3...

计量实验作业实验

2.1 1 首先分析人均寿命与人均gdp的数量关系,用eviews分析 2 关于人均寿命与人均gdp模型,由上可知,可决系数为0.526082,说明所建模型整体上对样本数据拟合较好。对于回归系数的t检验 t 1 4.711834 t0.025 20 2.086,对斜率系数的显著性检验表明,人均gdp...