资料简介
课程设计-STM32数码管倒计时显示,实验报告共12页,2262字,附c程序,实物图
实验内容:
在学过的实验内容基础上完成一个完整的实验工程,除系统时钟和GPIO以及中断必须使用外,可以选加RTC、I2C、DMA和看门狗中的至少1种,要求用到键盘和数码管
实验设计:
通过键盘输入数字,用LED灯将其四位二进制形式表示出来。LED灯点亮的时间(用秒来衡量)与数字的大小相等。在点亮时间结束后,LED灯熄灭。KEY键用于结束正在进行的实验,按下KEY键,LED灯立即全部熄灭
试验原理:
1、中断设置
本程序中共有3个中断,分为两组优先级。连接KEY键的Line9的优先级设置为(0,0),其优先级最高。因为在实验过程中我们摁下KEY键时,LED灯全部熄灭,实 验结束。按键中断优先级为(1,0),RTC秒中断优先级最高,因为当我们按下KEY键时,如果KEY键键值不为0,我们就要立刻开启RTC秒中断进行计时,此时需要打断按键中断,因此,需要RTC秒中断的优先级高于数字键盘的优先级。中断优先级的设置在NVIC_Configuration完成。
2、数码管显示时间倒计时
通过按键所得到的键值用变量key将其保存。通过前面的实验,我们发现数码管上显示0~9的码制分别是0xFC,0x0C,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xE6,即it.c文件中数组RBuffer1中的内容,而I2C接收到的按键值为(从0到9)0,1,2,3,9,10,11,17,18,19,因此在写入数码管时需要作出相应的判断。将键值写入到数码管中是由函数 I2C_shuma_ByteWrite实现的,这个函数在i2c_ee.c文件中给出。在将键值写入数码管后,此时判断键值如果不为0,触发RTC秒中断,每发生一次秒中断,数码管的数字减一,直至为0,然后熄灭所有LED灯。
3、LED灯表示数字二进制
在 获得键值时,我们在相应的中断处理程序中加入switch语句,根据键值选择相应要点亮的LED灯,通过GPIO_ResetBits与GPIO_SetBits即可完成,这一部分比较简单。
注意事项
下载FAQ:
Q: 为什么我下载的文件打不开?
A: 本站所有资源如无特殊说明,解压密码都是
www.xuehai.net,如果无法解压,请下载最新的
WinRAR软件。
Q: 我的学海币不多了,如何获取学海币?
A: 上传优质资源可以获取学海币,详细见
学海币规则。
Q: 为什么我下载不了,但学海币却被扣了?
A: 由于下载人数众多,下载服务器做了并发的限制。请稍后再试,48小时内多次下载不会重复扣学海币。
下载本文件意味着您已经同意遵守以下协议
1. 文件的所有权益归上传用户所有。
2. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
3. 学海网仅提供交流平台,并不能对任何下载内容负责。
4. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
5. 本站不保证提供的下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。