【实验目的】
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...