搜档网
当前位置:搜档网 › 5数码管显示4×4键盘矩阵按键实验

5数码管显示4×4键盘矩阵按键实验

5数码管显示4×4键盘矩阵按键实验
5数码管显示4×4键盘矩阵按键实验

数码管显示4X4键盘矩阵按键实验

一、实验目的、原理及方法

键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。该实验的目的在于了解键盘的工作原理,键盘按键的识别过程及识别方法,键盘与单片机的接口技术和编程。

键盘实质上是一组按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。

键的闭合与否,反映在行线输出电压上就是呈高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,反之也可。通过对行线电平高低状态的检测,便可确认按键按下与否。

为了确保CPU对一次按键动作只确认一次按键有效,还必须消除抖动。

当按键较多时会占用更多的控制器端口,为减少对端口的占用,可以使用行列式键盘接口,本实验中采用的 4 X4键盘矩阵可以大大减少对单片机的端口占用,但识别按键的代码比独立按键的代码要复杂一些。在识别按键时使用了不同的扫描程序代码,程序运行时数码管会显示相应按键的键值0~F。本实验中P1端口低4位连接是列线,高4位连接的是行线。

二、实验步聚及注意事项

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

2、在库”下拉菜单中,选中拾取元件”(快捷键P),分别选择以下元件:

AT

89C51、RX

8、7SEG-COM-ANGR、NBUTTON。

3、构建仿真电路

4、创建一个Keil 应用程序:

新建一个工程项目文件;为工程选择目标器件( AT89C51 ;为工程项目创

建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。

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

三、实验仪器电脑一台,并装载软件:

Proteus IS 7 Professio na 应用程序

Keil 应用程序

四、数据记录及处理

#include

51.h>

#define uint unsigned int

#define uchar unsigned char

Uchar code dsy_code[]={0xC0,0xF9,0xA4, 0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xFF};

uchar Pre_keyno=16,keyno=16;

void delayMS(char x){uchar i;

while(x--)

for(i=0;i<120;i++) ;}void keys_scan(){uchar tmp;

P1=0x0f;

delayMS

(1);

tmp=P1A0x0f;

switch(tmp){case 1:keyno=0;break;

case 2:keyno=1;break;

case 4:keyno=2;break;

case 8:keyno=3;break;

default:

keyno=16;}P1=0xf0;

delayMS

(1);

tmp=P1>>4A0x0f;

switch(tmp){case 1:keyno+=0;break;

case 2:keyno+=4;break;

case 4:keyno+=8;break;

case 8:keyno+=12;break;}}

main(){P0=0xff;

while

(1){P1=0xf0;

if(P1!=0xf0)keys_scan();

if(Pre_keyno!=keyno){P0=dsy_code[keyno]; Pre_keyno=keyno;}delayMS

(50);}}

五、结果分析

(自行填写,如:

功能是否实现;整个过程中存在哪些问题;如何解决的…)

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

矩阵键盘设计实验报告

南京林业大学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课程机电一体化设计基础 院系机械电子工程学院 班级 学号 姓名

指导老师杨雨图 2013年9月26日

一、实验目的 1、掌握键盘接口的基本特点,了解独立键盘和矩 阵键盘的应用方法。 2、掌握键盘接口的硬件设计方法,软件程序设计 和贴士排错能力。 3、掌握利用Keil51软件对程序进行编译。 4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。 5、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 二、实验要求 通过实训,学生应达到以下几方面的要求: 素质要求 1.以积极认真的态度对待本次实训,遵章守纪、团结协作。 2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立 工作能力。 能力要求 1.模拟电路的理论知识 2.脉冲与数字电路的理念知识 3.通过模拟、数字电路实验有一定的动手能力 4.能熟练的编写8951单片机汇编程序 5.能够熟练的运用仿真软件进行仿真 三、实验工具 1、软件:Proteus软件、keil51。 2、硬件:PC机,串口线,并口线,单片机开发板 四、实验内容

1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格 元器件的作用。 2、用keil51测试软件编写AT89C51单片机汇编程序 3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。 4、运用仿真软件对电路进行仿真。 五.实验基本步骤 1、用Proteus绘制“矩阵键盘扫描”电路原理图。 2、编写程序使数码管显示当前闭合按键的键值。 3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状 态和按键开关的对应关系。 4、用keil51软件编写程序,并生成HEX文件。 5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。 6、用通用编程器或ISP下载HEX程序到MCU。 7、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

数据结构实验五矩阵的压缩存储与运算学习资料

数据结构实验五矩阵的压缩存储与运算

第五章矩阵的压缩存储与运算 【实验目的】 1. 熟练掌握稀疏矩阵的两种存储结构(三元组表和十字链表)的实现; 2. 掌握稀疏矩阵的加法、转置、乘法等基本运算; 3. 加深对线性表的顺序存储和链式结构的理解。 第一节知识准备 矩阵是由两个关系(行关系和列关系)组成的二维数组,因此对每一个关系上都可以用线性表进行处理;考虑到两个关系的先后,在存储上就有按行优先和按列优先两种存储方式,所谓按行优先,是指将矩阵的每一行看成一个元素进行存储;所谓按列优先,是指将矩阵的每一列看成一个元素进行存储;这是矩阵在计算机中用一个连续存储区域存放的一般情形,对特殊矩阵还有特殊的存储方式。 一、特殊矩阵的压缩存储 1. 对称矩阵和上、下三角阵 若n阶矩阵A中的元素满足= (0≤i,j≤n-1 )则称为n阶对称矩阵。对n阶对称矩阵,我们只需要存储下三角元素就可以了。事实上对上三角矩阵(下三角部分为零)和下三角矩阵(上三角部分为零),都可以用一维数组ma[0.. ]来存储A的下三角元素(对上三角矩阵做转置存储),称ma为矩阵A的压缩存储结构,现在我们来分析以下,A和ma之间的元素对应放置关系。 问题已经转化为:已知二维矩阵A[i,j],如图5-1, 我们将A用一个一维数组ma[k]来存储,它们之间存在着如图5-2所示的一一对应关系。 任意一组下标(i,j)都可在ma中的位置k中找到元素m[k]= ;这里: k=i(i+1)/2+j (i≥j) 图5-1 下三角矩阵 a00 a10 a11 a20 … an-1,0 … an-1,n-1

k= 0 1 2 3 …n(n- 1)/2 …n(n+1)/2-1 图5-2下三角矩阵的压缩存储 反之,对所有的k=0,1,2,…,n(n+1)/2-1,都能确定ma[k]中的元素在矩阵A中的位置(i,j)。这里,i=d-1,(d是使sum= > k的最小整数),j= 。 2. 三对角矩阵 在三对角矩阵中,所有的非零元素集中在以主对角线为中心的带内状区域中,除了主对角线上和直接在对角线上、下方对角线上的元素之外,所有其它的元素皆为零,见图5-3。 图5-3 三对角矩阵A 与下三角矩阵的存储一样,我们也可以用一个一维数组ma[0..3n-2]来存放三对角矩阵A,其对应关系见图5-4。 a00 a01 a10 a11 a12 … an-1,n-2 an-1,n-1 k= 0 1 2 3 4 … 3n-3 3n-2 图5-4下三角矩阵的压缩存储 A中的一对下标(i,j)与ma中的下标k之间有如下的关系: 公式中采用了C语言的符号,int()表示取整,‘%’表示求余。

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

数学实验5矩阵运算和解线性方程组

实验5 矩阵运算和解线性方程组一、实验题目 用Mathematica软件进行矩阵运算和解线性方程组。 二、预期目标 利用Mathematica进行: 1. 矩阵运算. 2. 矩阵的行列式与逆. 3. 矩阵的秩. 4. 线性方程组求解. 三、常用命令 方阵A的行列式: 给出方阵A的逆矩阵: 矩阵A的转置矩阵: 用初等行变换将矩阵A化成的行最简阶梯形矩阵: 将矩阵A在工作区中以矩阵格式输出: 求矩阵方程XA B,AX B ==的解: 求线性方程组b AX=的解: 求代数方程的解: 四、练习内容 1.计算: (1) 1 2 3 4 2 1 4 10 1 0 2 1 10 1 2 0 2 1 1 2 50 2 3 2???? ? ?-+- ? ? ? ?--???? 命令:

结果: (2) 1 0 5 1 0 3 1 2 10 2 0 1 5 0 3 1 0 1 0 1 0 2 0 3 0 ?? - ?? ? - ?? ? ? ? ? ? ?? ? ??? ?? 命令: 结果: 2.求矩阵 1 2 0 0 1 1 1 2 3 ?? ? ? ? - ?? 的秩。 命令: 结果: 3.判断下列矩阵是否可逆,如可逆,求其逆矩阵。 (1) 2 2 1 1 2 4 5 8 2 -?? ? - ? ??? 命令: 结果: (2) 1 2 3 4 2 3 1 2 1 1 1 1 1 0 2 6?? ? ? ? - ? --??命令: 结果:

(3) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1?? ? -- ? ?-- ?-- ??命令: 结果: 4.设 1 1 1 1 1 3 2 1 0 4 3 2 1 1 1 1 2 5 X - ???? ? ? = ? ? ? ? ???? ,求X。 命令: 结果: 5.设 1 0 21 0 1 31 1 1 11 X ???? ? ? -= ? ? ? ? ???? ,求X。命令: 结果: 6.解线性方程组 1234 1234 1234 1234 224 4326 833412 33226 x x x x x x x x x x x x x x x x +-+= ? ?+-+= ? ? +-+= ? ?+--= ? 。 命令:结果:

STM32_4x4矩阵键盘

/*--------------------------------------------------------------------------------------* 矩阵键盘驱动 * 文件: keyboard.c * 编写人:LiuHui * 描述:扫描4x4 矩阵键盘输入,并返回键值 * 适用范围:驱动采用ST3.5 库编写,适用于STM32F10x 系列单片机 * 所用引脚:PA0-PA7 * 编写时间:2013 年11 月22 日 * 版本:1.0 --------------------------------------------------------------------------------------*/ #include "stm32f10x.h" #include "keyboard.h" #include "dealy.h" /*--------------------------------矩阵键盘初始化----------------------------------------* 功能:初始化stm32 单片机GPIO //PA0-PA7 * 参数传递: * 输入:无 * 返回值:无 --------------------------------------------------------------------------------------*/ void KeyBoard_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3); GPIO_ResetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7); } /*------------------------------矩阵键盘扫描--------------------------------------------* 功能:扫描矩阵键盘,并返回键值 * 参数: * 输入:无 * 返回:有键按下返回该键值 * 无键按下时则返回0 --------------------------------------------------------------------------------------*/ u8 Read_KeyV alue(void) { u8 KeyV alue=0; if((GPIO_ReadInputData(GPIOA)&0xff)!=0x0f) {

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

课程设计-制作单片机的4X4矩阵键盘

课程设计-制作单片机的4X4矩阵键盘

目录 摘要.............................................. 错误!未定义书签。第一章硬件部分 (5) 第一节AT89C51 (5) 第二节4*4矩阵式键盘 (8) 第三节LED数码管 (11) 第四节硬件电路连接 (13) 第二章软件部分 (15) 第一节所用软件简介 (15) 第二节程序流程图 (18) 第三节程序 (20) 第三章仿真结果 (23) 心得体会 (26) 参考文献 (27)

第一章硬件部分 第一节AT89C51 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚如图所示 AT89C5 图1 AT89C51管脚 图 AT89C51其具有以下特性: 与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年

全静态工作:0Hz-24MHz 三级程序存储器锁定 128×8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 特性概述: AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

微机原理课题设计实验报告材料之矩阵式键盘数字密码锁

微机系统与应用课程设计报告 班级: 学号: 姓名: 实验地点:E楼Ⅱ区311 实验时间:2013.3.4-3.9

矩阵式键盘数字密码锁设计 一 . 实验目的 1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连 接能力。 2.初步掌握键盘扫描,密码修改和计时报警程序的编写方法。 3.掌握通过矩阵式键盘扫描实现密码锁功能的设计思路和实现方法。二.实验内容 矩阵式键盘数字密码锁设计,根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。 数字密码锁操作键盘参考上面设定,也可以自行设计键盘。用户初始密码为“123456”,系统加电运行后,密码锁初始状态为常闭(红灯亮),用户可以选择开锁或修改密码: 如果选择开锁就按“Open”键,系统提示输入密码,输入用户密码+“#”键后,如果密码正确,就打开锁(绿灯亮),系统等待10秒,然后重新关闭密码锁,若密码错,提示重新输入,连续三次错误,提示警告词同时报警(黄灯闪),锁定键盘5秒,然后重新进入初始状态; 如果选择修改密码就按”Modify Secret”键,系统提示输入旧密码,输入旧密码+“#”键后,如果正确,系统提示输入新密码,输入新密码+“#”后,新密码起效,重新进入初始状态;如果旧密码错,不能修改密码,密码锁直接进入初始状态。 三.实验基本任务 1)具有开锁、修改用户密码等基本的密码锁功能。 2)对于超过3次密码密码错误,锁定键盘5秒,系统报警。5秒后解除锁定。 4)通过LCD字符液晶和LED指示灯(红,绿,黄)实时显示相关信息。 5)用户密码为6位数字,显示采用“*”号表示。 6)码锁键盘设计合理,功能完善,方便用户使用。 本次实验还做了附加的任务

单片机课程设计4X4矩阵键盘显示要点

长沙学院 《单片机原理及应用》 课程设计说明书 题目液晶显示4*4矩阵键盘按键号 程序设计 系(部) 电子与通信工程系 专业(班级) 电气1班 姓名龙程 学号2011024109 指导教师刘辉、谢明华、王新辉、马凌 云 起止日期2014.5.19—2014.5.30

长沙学院课程设计鉴定表

《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉

目录 前言 (5) 一、课程设计目的 (6) 二、设计内容及原理 (6) 2.1 单片机控制系统原理 (6) 2.2阵键盘识别显示系统概述 (6) 2.3键盘电路 (7) 2.4 12864显示器 (8) 2.5整体电路图 (9) 2.6仿真结果 (9) 三、实验心得与体会 (10) 四、实验程序 (10) 参考文献 (18)

前言 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器 应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。 是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗低,因此倍受工程师青睐,适用于使用电池的电子设备。英国科学家在上世纪制造了第一块液晶显示器即LCD。而第一台可操作的LCD基于动态散射模式(Dynamic Scattering Mode,DSM),是RCA公司乔治·海尔曼带领的小组开发的。 LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键, 键盘是合理的。

八段数码管显示实验

八段数码管显示实验报告 一.设计目的 1.掌握数码管动态显示的原理; 2.学会用总线方式控制数码管显示; 3.熟悉利用单片机驱动数码管的电路及编程原理。 二.设计内容 利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。 三.实验原理 1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。 本实验仪提供了6 位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。 七段数码管的字型代码表如下表:

2. 3.程序 OUTBIT equ 08002h ; 位控制口

OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a

实验2 矩阵及其运算

实验二 矩阵及其运算 一、实验目的 掌握基本的矩阵运算及常用的函数 二、实验内容 1. 变量、数组、向量等对象的生成方法; 2. 矩阵的创建方法; 3. 矩阵运算规则; 4. 特殊矩阵的创建与运算处理。 5. 常用函数的使用 三、实验步骤 1.已知m1=????? ???????11514412679810115133216 执行以下命令m1( 2 , 3 ),m1( 11 ),m1( : , 3 ),m1( 2 : 3 , 1 : 3 ), m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) 2. 已知: ??????????-=76538773443412A ???? ??????--=731203321B 求下列表达式的值: (1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵) (2) B A K *21=和B A K *.22= (3) 331^A K =和3.32^A K = (4) B A K /41=和A B K \42= (5) ],[51B A K =和]2:);],3,1([[52^B A K =

3. 已知????? ???????----=1323151122231592127A (1)求矩阵A 的秩 (2)求矩阵A 的行列式 (3)求矩阵A 的逆 (4)求矩阵A 的特征值及特征向量 4. 求六阶单位矩阵的秩 5. 建立一个4*4的魔方矩阵,然后删除该矩阵的第二行; 6. 建立一个5*5的均匀分布的随机矩阵,取出矩阵的前3行构成矩阵B ,前两列构成矩阵C ,右下角43?子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。 7. 利用diag 等函数产生下列矩阵。 20 4a 05 0708????=?????? 008b 075230????=-?????? 8. 将第3题中矩阵A 对角线的元素加30 9. 利用randn 函数产生均值为0,方差为1的6×8正态分布随机矩阵C ,然后统计C 中大于-0.3,小于0.3的元素个数t 。 10. 将第3题中A 矩阵的所有大于2的元素全部改为0,并显示修改后的矩阵 四、思考题 1. 以下变量名是否合法?为什么? (1)x2 (2)3col (3)_row (4)for 2. 当A=[34, NaN, Inf, -Inf, -pi, eps, 0]时,分析下列函数的执行结果:all(A),any(A),isnan(A),isinf(A),isfinite(A)。

4X4矩阵键盘

题目名称:4×4矩阵式键盘 队员:伍星刘晓峰陈仁凤 摘要: 本系统采用AT89S52为控制核心。采用4X4键盘,通过8位数码管显示动态扫描0—F 16个数字。 关键词: AT89S52键盘数码管显示 Abstract: This system USES AT89S52 devices as control https://www.sodocs.net/doc/de7375954.html,ing 4X4 keyboard, through eight digital tube display dynamic scan 0-16 F. Keyword: AT89S52 Keyboard LED Display

目录 1 方案论证与比较 (3) 1.1采样方法方案论证 (3) 1.2处理器的选择方案论证................................................. 错误!未定义书签。 1.3周期性判别与测量方法方案论证................................. 错误!未定义书签。 2 系统设计 (3) 2.1总体设计 (3) 2.2单元电路设计 (5) 2.2.1 前级阻抗匹配和放大电路设计 (5) 2.2.2 AD转换及控制模块电路设计 (6) 2.2.3 功率谱测量单元电路设计 (6) 3 软件设计 (7) 4系统测试 (8) 5 结论 (9) 参考文献: (9) 附录: (9) 附1:元器件明细表: (9) 附2:仪器设备清单 (9) 附3:电路图图纸 (10) 附4:程序清单 (11)

1.方案论证与比较 1.1采样方法比较与选择 方案一:采用FPGA作为系统主控器。FPGA可实现各种复杂逻辑功能,规模大,集成度高,体积小,稳定性好,IO资源丰富、易于进行功能扩展,处理速度快,但适用于大规模实时性要求较高的系统,价格高,编程实现难度大。用液晶显示器进行键盘扫描,价格偏高,程序复杂,故不选择此方案 方案二: 采用Atmel公司的AT89S52单片机作为主控制器。AT89S52是一个低功耗、高性能8位单片机,片内含8 KB Flash片内程序存储器,256 Bytes RAM,32个外部双向输入/输出(I/O)口,5个中断优先级,2层中断嵌套中断等。价格便宜,使用方便,编程实现难度低,适合用来实现本系统的控制功能。 P0.0-P0.7端口作为数码管段选,P2.0-P2.7端口作为数码管位选,P3.0-P3.7作为键盘输入端口。8位LED数码管进行动态显示。 综上分析,本设计选择方案二。 2 系统设计 2.1 总体设计 16个键盘通过AT89S52进行动态扫描,在8位数码管可以动态显示0-F 16个数字。手动复位键可以达到清零的效果。

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验 一、实验内容 1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。按其它键退出。 2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。可定义“A”键为“+”键,“B”键为“=”键。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 三、实验说明 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 四、接线方法 键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

数据结构实验五矩阵的压缩存储与运算

第五章矩阵的压缩存储与运算 【实验目的】 1. 熟练掌握稀疏矩阵的两种存储结构(三元组表和十字链表)的实现; 2. 掌握稀疏矩阵的加法、转置、乘法等基本运算; 3. 加深对线性表的顺序存储和链式结构的理解。 第一节知识准备 矩阵是由两个关系(行关系和列关系)组成的二维数组,因此对每一个关系上都可以用线性表进行处理;考虑到两个关系的先后,在存储上就有按行优先和按列优先两种存储方式,所谓按行优先,是指将矩阵的每一行看成一个元素进行存储;所谓按列优先,是指将矩阵的每一列看成一个元素进行存储;这是矩阵在计算机中用一个连续存储区域存放的一般情形,对特殊矩阵还有特殊的存储方式。 一、特殊矩阵的压缩存储 1. 对称矩阵和上、下三角阵 若n阶矩阵A中的元素满足 = (0≤i,j≤n-1 )则称为n阶对称矩阵。对n阶对称矩阵,我们只需要存储下三角元素就可以了。事实上对上三角矩阵(下三角部分为零)和下三角矩阵(上三角部分为零),都可以用一维数组ma[0.. ]来存储A的下三角元素(对上三角矩阵做转置存储),称ma为矩阵A的压缩存储结构,现在我们来分析以下,A和ma之间的元素对应放置关系。 问题已经转化为:已知二维矩阵A[i,j],如图5-1, 我们将A用一个一维数组ma[k]来存储,它们之间存在着如图5-2所示的一一对应关系。 任意一组下标(i,j)都可在ma中的位置k中找到元素m[k]= ;这里: k=i(i+1)/2+j (i≥j) 图5-1 下三角矩阵 a00 a10 a11 a20 … an-1,0 … an-1,n-1 k= 0 1 2 3 … n(n-1)/2 … n(n+1)/2-1 图5-2下三角矩阵的压缩存储 反之,对所有的k=0,1,2,…,n(n+1)/2-1,都能确定ma[k]中的元素在矩阵A中的位置(i,j)。这里,i=d-1,(d是使sum= > k的最小整数),j= 。 2. 三对角矩阵

4乘4矩阵键盘总结

9

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 // | // | // P X.0 ----------|------|-----|-----| // //************************************************************ // 扫描方法二: 06.8.15 添加 4X4矩阵键盘线翻转识别法函数 // 硬件连接 : // | | | | // / | / | / | / | // P X.7 -------/--|---/--|--/--|--/--| 每个按键对应的识别码是:0x77,0x7b,0x7d,0x7e // | | | | // / | / | / | / | // P X.6 -------/--|---/--|--/--|--/--| 0xb7,0xbb,0xbd,0xbe // | | | | // / | / | / | / | // P X.5 -------/--|---/--|--/--|--/--| 0xd7,0xdb,0xdd,0xde // | | | | // / | / | / | / | // P X.4 -------/--|---/--|--/--|--/--| 0xe7,0xeb,0xed,0xee // | | | | // | | | | // P X.3 ----------| | | | // | | | // | | | // P X.2 ----------|------| | | // | | // | | // P X.1 ----------|------|-----| | // | // | // P X.0 ----------|------|-----|-----| // //***************************************************************** // 扫描方法三: 06.8.16 添加 4X4矩阵键盘行扫描识别法函数(只返回4个识别码) // 硬件连接 : // | | | |

相关主题