微机原理键盘控制与显示实验报告Word格式文档下载.docx

上传人:b****6 文档编号:20911083 上传时间:2023-01-26 格式:DOCX 页数:5 大小:17.86KB
下载 相关 举报
微机原理键盘控制与显示实验报告Word格式文档下载.docx_第1页
第1页 / 共5页
微机原理键盘控制与显示实验报告Word格式文档下载.docx_第2页
第2页 / 共5页
微机原理键盘控制与显示实验报告Word格式文档下载.docx_第3页
第3页 / 共5页
微机原理键盘控制与显示实验报告Word格式文档下载.docx_第4页
第4页 / 共5页
微机原理键盘控制与显示实验报告Word格式文档下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理键盘控制与显示实验报告Word格式文档下载.docx

《微机原理键盘控制与显示实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理键盘控制与显示实验报告Word格式文档下载.docx(5页珍藏版)》请在冰豆网上搜索。

微机原理键盘控制与显示实验报告Word格式文档下载.docx

____徐习东_______成绩:

__________________

实验名称:

______键盘控制与显示_______实验类型:

_____软件实验______同组学生姓名:

__________

一、实验目的和要求(必填)二、实验内容和原理(必填)

三、主要仪器设备(必填)四、操作方法和实验步骤

五、实验数据记录和处理六、实验结果与分析(必填)

七、讨论、心得

【实验目的】

1.通过实验掌握TMS320F2812通用输入/输出管脚直接控制外围设备的方法

2.了解发光二极管的控制编程方法。

3.了解SPI的使用。

4.了解如何使用GpioA口进行数据的锁存

5.通过实验掌握TMS320F2812的扩展端口接收外围设备信息的方法

6.了解键盘的使用原理及编程方法

【实验内容】

1.按键显示程序,对按键记录次数,以二进制显示在16个LED上。

2.定时器编程,并用按键控制各位时分秒,使其能完成加减操作

【实验仪器】

TMS320F2812数字信号处理器与学生用集成板。

【实验步骤】

1.撰写代码

2.调试代码

3.实现功能

【实验代码】

一、定时器

①宏定义和全局变量定义

分析:

这段代码是初始宏定义,用于定义按键对应的编码与地址,然后同时定义了全局变量,包括时、分、

秒,按键编码,LED编码和控制位。

②共阳字形码

由于这次实验要用到数码管,所以我们要定义一个数码管共阳端字形码,使每一个代码对应一种显

示状态。

③SPI初始化子程序

这一段是本次实验的重点,就是SPI初始化。

1)SPICCR:

用于控制SPI的状态,上下降沿发送,还有几位的数据。

其中第7位,即SPICCR.6是控制

SPI在上下沿发送,1代表下降沿,2代表上升沿;

第8位,即SPICCR.7是控制复位的,0代表为复位状

态;

低4位控制数据长度,长度等于n+1。

2)SPICTL:

SPICTL.3用来设定时钟是否延迟半个周期,此程序中此位为0,即不延迟半个周期,其中

SPICTL.2是控制主从模式的,然后1为主设备,0为从设备,SPICTL.1是设置Talk功能,1为使能。

3)SPIBRR:

配置波特率,即控制串行外设发送和接受的速度。

然后,将GPIO的F口低四位设置为专门外设引脚,即为SPI引脚。

设置MUX控制是否为专门外设。

④GPIO初始化

此部分为为GPIO初始化,即设置GPIO的功能,此部分里A11设置为通用I/O,在实际电路中是

为了连接锁存口。

另外GPIOE与B的设置见注释,分别作为片选和红灯的控制。

⑤键扫描程序

键扫描程序为int类型,所以必须返回整形数据,此程序中返回1或者0表示是否检测到键被按下。

首先通过E口控制选通的是低8位还是高8为。

然后后面的If和for语句为延时消抖,这是检测程序中

的关键,就是检测B口是否有低电平出现,如果有说明有键被按下,但是我们无法判断,这个键是否被误

按下,所以要进行一个空循环,如果再检测到,说明这个键按下不是因为按键自身的抖动。

另外,这段代

码里还有一个细节,就是D口的出现,这句话只是为了进行一个空操作,进行检测按键是否松开。

⑥控制调时子程序

KEYFUNCTION程序是为了做一个控制时钟的功能,按下一个键对应一个功能选项。

由于选择项

比较多,所以用switch比较好。

然后CTRL代表选定的位,是时,还是分,还是秒。

然后通过三位的数

值到LEDCODE中查表获得数码管显示的值。

其中上调或者下降哪一位要根据CTRL的值判断。

LIGHT代

表数码管的代号。

⑦显示模块

显示程序中就要用到SPI的串行功能了,需要先对数据进行锁存,然后是上升沿有效,即上升沿时

将数据送到数码管的引脚上。

如何发送数据即通过SPI,先将数据写入SPITXBUF,即发送缓存器中,然

后发送缓存器会将数据传送过去。

SPISTS.bit.INT_FLAG代表中断标志位,如果数据从SPIDAT移出后,

这个中断标志位会置1。

此时while语句的功能就是说如果数据没有被发送出去,则一直会进行空操作,

直到数据被发送出去为止。

⑧中断

此时的中断是进行定时器的自增过程,即实现时钟功能。

二、键盘显示

①定义编码

此向量表与第一个程序相同,即作为索引用,编入数码管可显示内容的编码。

②main函数

首先初始化程序,然后就不断得执行一个while循环,就是检测有没有按键被按下,如果被按下就

继续执行显示程序。

然后LEDOUT函数与前几次程序一样,作为点灯模块,作为计数的显示。

三、总结编程要点

①可删语句

1)SpiaRegs.SPIRXBUF=SpiaRegs.SPIRXBUF;

2)if((GpioDataRegs.GPBDAT.all|0x00FF)!

=0xFFFF)

{for(i=0;

i<

3000;

i++);

}//依据你需要防抖延时的时间根据,此语句的多少。

②A,E,F,B对应端口

1)A11的通用接口用于连接锁存器

2)E口的低三位为74LVC138的控制信号,进行片选

3)F的第四位专用外设对应于SPI

4)B口的通用IO输出对应于红灯

③SPI的使用

1)初始化SPI,确定SPI的上升/下降沿,是否延迟半个周期,主从控制器,是否处于复位状态,数据

的位数等等。

2)将GPIOF的第四位设为1,即专用外设引脚。

3)写入数据发送,用SPITXBUF,读用SPIRXBUF,判断是否已经发送可以检测中断使能标记

④防抖延时

防抖延时的作用就是在检测到低电平时加一个空循环进行排除。

很多时候,一个动作,不论是人为

还是程序内部,处理都需要时间,所以空循环的应用十分重要。

【问题的提出与解决】

①为什么每次按下键盘,输出有延迟一次?

因为一句语句SPITXBUF=SPITXBUF。

由于这句话代表SPITXBUF中又被写入相同的内容,所以又被

传输了一次,又因为有锁存,所以输出呈现延迟一次的情况。

②为什么要用GpioA口?

用GpioA口是因为其11位对应于锁存器,要用到锁存信号,所以要用GpioA口。

③为什么要用GpioDataRegs.GPDDAT.bit.GPIOD1=!

GpioDataRegs.GPDDAT.bit.GPIOD1?

进行一个空循环,本身没有什么意义。

【实验心得】

本次实验微机原理实验,我们组准备比较充分,因此也比较早的完成。

然而我们在结束后对每句代

码进行注释和解读。

这个过程让我们收获很多,不仅要学会模仿程序,我们更应该要学会读懂程序,然后

自己去运动和撰写程序。

而且在注释的过程中,我们发现了自己的问题,也对DSP的运行有了很深的了

解,对其机理有了自己的看法和认识。

因此,这次实验,我们掌握了更多,也收获了更多。

内容详见我上

文的总结和思考。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1