




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业:电气工程及其自动化姓名:_学号:_日期:_ _地点:_ _实验报告课程名称:_微机原理(实验)_指导老师:_徐习东_成绩:_实验名称:_键盘控制与显示_实验类型:_软件实验_同组学生姓名:_一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得【实验目的】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;i3000;i+); /依据你需要防抖延时的时间根据,此语句的多少。a,e,f,b对应端口1) a11的通用接口用于连接锁存器2) e口的低三位为74lvc138的控制信号,进行片选3) f的第四位专用外设对应于spi4) 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?进行一个空循环,本身没有什么意义。【实验心得】本次实验微机原理实验,我们组准备比较充分,因此也比较早的完成。然而我们在结束后对每句代码进行注释和解读。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新蔡环氧地坪施工方案
- 《肉及肉制品介绍》课件
- 2025沿海货物运输合同
- 2025至2030年中国铁线花瓶数据监测研究报告
- 2025混凝土工劳务分包施工合同
- 2025至2030年中国立毛刮油带数据监测研究报告
- 中宁塑胶跑道施工方案
- 东莞电梯井施工方案
- 租房走廊利用方案范本
- 记忆技巧护士资格证考试的试题及答案
- DB21-T 2808-2017郁金香种球扩繁技术规程
- 全国肉牛产业链分析报告
- 售后工程师的快速响应和问题解决能力
- 路边小吃摊食品安全问题探究课件
- 河北省建筑施工安全技术资料管理标准表格
- 自动打标机机械原理课程设计
- 社区零星维修工程投标方案(技术标)
- 动物免疫学疫苗与免疫预防
- 人文关怀护理课件胃镜室
- 永椿化工新材料有限公司 年产 800 吨邻三氟甲基苯甲酰氯系列产品、1500 吨 2,6- 二氟苯甲酰胺系列产品、500 吨叔丁基二甲基氯硅烷、500 吨 3-氨基-2-溴-5-氟苯甲酸甲酯等产品项目环境影响报告书
- GB/T 21837-2023铁磁性钢丝绳电磁检测方法
评论
0/150
提交评论