| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 学校蓝桥杯单片机组习题练习(1)模拟时钟 -> 正文阅读 |
|
[嵌入式]学校蓝桥杯单片机组习题练习(1)模拟时钟 |
题目: 1、开机后,数码管上显示“11-59-50”,按照“秒”的时间间隔进行计数,即第一秒显示“11-59-50”,第二秒显示“11-59-51”,当最后两位计满59,下1秒显示为“12-00-00”。 1.头文件以及定义变量 ????????tab[]数组定义了数码管显示的0-9的十六进制数字,具体可以看原理图。
2.函数原型
3.各种函数的解释 (1)数码管显示数字 ????????例如Display12表示使第一第二个数码管显示数字,以此类推。
(2)延时函数 普通延时函数,传入的ms为延迟的毫秒数
(3)带数码管显示的延时函数 ????????这个函数可以让延时时保证数码管处于显示状态,因为Display函数自带2ms的延时,所以这里的实际延时时间为ms的值乘以8,例如,传入的ms值为100,则实际延时为800ms。 ????????Time_adjust()函数将在下文解释
(4)独立按键扫描函数(下方的相当于一个模板) ????????下方展示的函数中if(P30 == 0)之后延时5ms后再次判断,因为这涉及到单片机自身的结构问题,我也解释不清,总而言之就是防止CPU的误判(比如你按了S4按钮,然后它没检测到等等的问题) ????????P30对应S4,往下依次对应S5,S6,S7。 ????????“输入一些内容”里面可以写入按下按钮会执行的代码,当手指按下按钮后会执行这里的内容。 ????????“输入一些内容2”里面可以选择性输入,手指没松开按钮的时候会停留在while(P30 == 0)这一代码块,如果想让按下按钮时液晶管不会停止显示,则可以在这里放Display()函数,让它一直显示。
(5)本题中修改过的独立按键扫描函数 ? ? ? ? 这里需要解释的一点是,比如这里最后的秒数原本为55,通过加10秒,变成了65,这样该如何处理呢,这里我们可以在每次通过独立按键更改完秒数后,通过一个Time_adjust()函数调整时间,原理将在下文给出。 ? ? ? ? 手指按下按钮后若不松开,则会停留在while(P30 == 0)这个代码块这里,手指松开时,P30的值变为1,跳出循环,但是在此期间,液晶管并不会显示数字。 ? ? ? ?Ps:?液晶管能显示数字其实是基于CPU不断给液晶管传递信号,使其不断刷新,而我们人眼能观察到这种现象基于“视觉暂留”可以观察到液晶屏的数字。 ? ? ? ? 所以在此期间,我们需要用Display()函数持续刷新数码管让我们能看到数码管显示的数字。 ? ? ? ? flag = !flag,执行这句语句时,若flag为1,则将flag值改为0,反之亦然。需要解释的是,这里的flag变量控制计时是否开始,控制计时的代码放在main函数中。
(6)全部初始化程序
(7)全部初始化程序(所有题目通用) ? ? ? ? 这是时间调整函数,可以看到,当seven(秒数十位)大于9的时候,会将其值改为0,并在five(分钟位位)加上一,其余同理。
(8)最重要的主函数 ????????主函数代表了单片机启动时的现象,例如这道题,我们应该先把蜂鸣器,LED灯关了,液晶屏初始化,然后将数码管显示为11-59-50,并默认开始计时,所以把控制是否开始计时的flag值设置为1(这里我已经在定义变量时设置好了) ? ? ? ? 当flag == 1时每隔一秒将秒数位eight加1,否则停止计时,还需注意题中所说“当最后两位计满59,下1秒显示为12-00-00”,这其实就是说我们需要一个Time_adjust()的函数以调整时间。
4.现在让我们一起来看看现象吧(视频传不了可恶)。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:44:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |