HNU小学期BSP软件编程基础考试题

news/2024/9/13 22:29:33/ 标签: 学习, 课程设计, 经验分享

做了三道考试题,分享一下。

1、音乐:开机后C调,每分钟100拍,播放"1231,345"
#include "sys.H"
#include "displayer.H" 
#include "Beep.H"
#include "music.H"code unsigned long SysClock=11059200;#ifdef _displayer_H_ 
code char decode_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x08,0x40,0x01,0x76,0x38};#endifcode unsigned char arr[]={0x31,0x10,0x32,0x10,0x33,0x10,0x31,0x10,0x00,0x10,0x33,0x10,0x34,0x10,0x35,0x10,};int main(){DisplayerInit();LedPrint(0);SetDisplayerArea(0,7);BeepInit();MusicPlayerInit();SetPlayerMode(enumModePlay);SetMusic(100,0xFC,arr,16,enumMscDrvSeg7andLed);MySTC_Init();while(1){MySTC_OS();}}

这里播放的是高音1231,345,逗号是空拍0x00。同时还增添了数码管显示音乐信息和LED灯打拍子的功能。

2、秒表:数码管仅显示分、秒
#include "STC15F2K60S2.H"
#include "sys.H"
#include "displayer.H"  
#include "key.H"
#include "beep.H"code unsigned long SysClock=11059200;#ifdef _displayer_H_
code char decode_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x08,0x40,0x01,0x76,0x38};   #endiflong ms=0,min=0,sec=0,temp=0;
char oput[8]={0};
bit flag=0;void myKey_callback(){char a1,a2;a1=GetKeyAct(enumKey1);a2=GetKeyAct(enumKey2);if(flag==0){if(a1==enumKeyPress){flag=1;SetBeep(1000,60);}if(a2==enumKeyPress){ms=0;min=0;sec=0;temp=0;SetBeep(1200,60);}}else{if(a1==enumKeyPress){flag=0;SetBeep(1000,60);}if(a2==enumKeyPress){ms=0;min=0;sec=0;temp=0;SetBeep(1200,60);}}}void fun(){if(flag==0)temp++;ms=temp;sec=(temp/100)%60;min=temp/6000;if(sec>59)sec=sec-60;oput[0]=ms%10;oput[1]=(ms/10)%10;oput[2]=12;oput[3]=sec%10;oput[4]=(sec/10)%10;oput[5]=12;oput[6]=min%10;oput[7]=(min/10)%10;Seg7Print(oput[7],oput[6],oput[5],oput[4],oput[3],10,10,10);
}int main(){DisplayerInit();KeyInit();BeepInit();SetDisplayerArea(0,7);Seg7Print(10,10,10,10,10,10,10,10);LedPrint(0);SetEventCallBack(enumEventSys10mS, fun);SetEventCallBack(enumEventKey, myKey_callback);MySTC_Init();while(1)MySTC_OS();
}

仅显示分、秒就把最后三位都编码10也就是空就行了。
其他部分与我的上一篇文章里的代码有些不同。修改了系统事件,选择了enumEventSys10mS这个10ms的系统事件,资源浪费少些而且实测计时好像更精确些。
此外,对分钟部分也进行了取余操作,现在能显示0~59的所有分钟数了。
同时还增加了按键功能。按下K1以后秒表暂停,按下K2以后秒表重置。

3、按键:松开K1,数码管显示“H”,并且2秒后熄灭
#include "STC15F2K60S2.H"
#include "sys.H"
#include "displayer.H"            
#include "key.H" code unsigned long SysClock=11059200; #ifdef _displayer_H_ 
code char decode_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x08,0x40,0x01,0x76,0x38};#endifchar a=0;void my1S_callback(){a++;if(a==2)Seg7Print(10,10,10,10,10,10,10,10);
}void myKey_callback()
{ char k;k=GetKeyAct(enumKey1);if( k == enumKeyRelease ){a=0;Seg7Print(10,10,10,10,10,10,10,14);SetEventCallBack(enumEventSys1S, my1S_callback);	}
}void main(){DisplayerInit();   KeyInit(); LedPrint(0);SetDisplayerArea(0,7);Seg7Print(10,10,10,10,10,10,10,10);SetEventCallBack(enumEventKey, myKey_callback);MySTC_Init();while(1){MySTC_OS();}
}

在按键事件发生时,如果是按键松开,那么就初始化变量a=0,同时数码管输出H。然后用SetEventCallBack(enumEventSys1S, my1S_callback);语句计时,每1s使变量a加1,直到变量a加到2也就是2s以后,数码管输出全空,也就是H熄灭。


http://www.ppmy.cn/news/1475354.html

相关文章

5G中的RedCap

5G中的RedCap:降低能力的重要性和实现方式 随着5G技术的推广和普及,设备和终端的多样化使得网络能力的管理变得更加复杂和关键。RedCap(Reduced Capability)作为一个重要的概念,旨在解决设备能力差异对网络服务和用户…

Linux 防火墙配置指南:firewalld不同服务管理的应用案例(十个)

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作时间&…

Java高频面试基础知识点整理5

干货分享,感谢您的阅读!背景​​​​​​高频面试题基本总结回顾(含笔试高频算法整理) 最全文章见:Java高频面试基础知识点整理 (一)Java基础高频知识考点 针对人员: 1.全部人员都…

暑假第一次作业

第一步:给R1,R2,R3,R4配IP [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R1-Serial4/0/0]ip address 15.0.0.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R2-Serial4/0/0]ip address 25.0.0.1 24 [R3-GigabitEthernet0/0/0]ip address 192.…

mov视频怎么改成mp4?把mov改成MP4的四个方法

mov视频怎么改成mp4?选择合适的视频格式对于确保内容质量和流通性至关重要。尽管苹果公司的mov格式因其出色的视频表现备受赞誉,但在某些情况下,它并非最佳选择,因为使用mov格式可能面临一些挑战。MP4格式在各种设备(如…

前端构建工具(webpackvite)

这里写目录标题 构建工具webpack介绍配置文件简介entryoutputloaderbabel插件开发服务器(webpack-dev-server)soureMap vite 构建工具 当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:…

从数据仓库到数据湖(上):数据湖导论

文章目录 一、什么是数据湖?起源数据湖的特征 二、为什么要用数据湖?三、数据湖与数据仓库的区别数据仓库和数据湖的对比 四、数据湖本质数据存储架构数据处理工具:三类第一类工具第二类工具第三类工具 小结 五、总结六、参考资料 一、什么是…

第一章节:HTML 基础

参考:https://github.com/qianguyihao/Web/tree/master/01-HTML 1)HTML 基础介绍 1.1)Web 万维网 Web(World Wide Web)即全球广域网,也称为万维网。 我们常说的 Web端 就是网页端。 网页 是构成网站的基本元素。网页主要由文字、图像和超链接等元素构成。当然,除了这…

uniapp小程序连接蓝牙设备

uniapp小程序连接蓝牙设备 一、初始化蓝牙模块二、开始搜索三、连接蓝牙四、监听特征值变化五、调用示例utils.js文件 一、初始化蓝牙模块 这一步是必须的,在开发项目过程中,初始化蓝牙模块之后,紧接着就要开启一些监听的api,供后…

Python高级(四)_内存管理

Python高级-内存管理 第四章 内存管理 1、对象池 小整数池 系统默认创建好的,等着你使用 概述:整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] ,这些整数对象是提前建立好的…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.07.01-2024.07.05

文章目录~ 1.LLM Internal States Reveal Hallucination Risk Faced With a Query2.Fine-Tuning with Divergent Chains of Thought Boosts Reasoning Through Self-Correction in Language Models3.Investigating Decoder-only Large Language Models for Speech-t…

TCP网络传输控制协议

目录 什么是TCP TCP的特点 TCP通信步骤 三次握手(建立连接) 数据传输 四次挥手(连接释放) 为什么要进行三次握手?两次握手行不行?一次握手行不行? 为什么是四次挥手?三次、两…

小红书后端

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网 (nowcoder.com) 小红书推荐系统 题目: 思路: 尝试(标题4) import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息…

社交论坛圈子系统APP开发社交圈子小程序系统源码开源,带语音派对聊天室/圈子社交论坛及时聊天

功能// 首页左右滑动切换分类 使用资讯类app常见的滑动切换分类,让用户使用更方便。 2信息卡片流展示 每条信息都是一个卡片,头像展示会员标签,单图自动宽度,多图九宫格展示,底部展示信息发布地址,阅读量、…

react VS vue

什么是react 用于构建用户界面的js库 什么是vue 用于构建用户界面的渐进式js库 react是基于mvvm设计还是mvc设计 1、react是基于mvc设计的,但也不是完整的mvc模式 2、react把自己定义为view 3、组件逻辑定义为Controller层 4、虽然react不是完整的mvc模式&a…

iPhone删除所有照片的高效三部曲

苹果手机用久了,系统缓存包括自己使用手机留下的内存肯定会越来越多。其中,相册中的照片数量可能会急剧增加,占据大量的存储空间。当用户们想要对相册进行彻底清理,实现iPhone删除所有照片时,不妨跟随以下详细的三部曲…

音频合并最简单的方法。将音频合并成一个的几种简单方法

音频合并最简单的方法。音乐是一种无声的语言,能够诉说情感、唤起记忆,为我们的生活增添了丰富的色彩。有时候,我们渴望将几段动人的音乐融为一体,创造出一个更为宏大、更为连贯的作品,以满足独特的需求或展示我们的创…

代码覆盖率的守护者:Gradle中配置覆盖率工具全指南

代码覆盖率的守护者:Gradle中配置覆盖率工具全指南 在软件开发的精细打磨中,代码覆盖率工具是确保质量的得力助手。Gradle,作为一款强大的构建工具,提供了与多种代码覆盖率工具的集成能力。本文将详细指导如何在Gradle中配置代码…

Python学习2---装饰器

装饰器是Python中的一种高级功能,允许您修改或增强函数或类的行为,而无需直接修改其源代码。 基本概念: 装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。 基本语法: decorator_fun…

中介者模式(大话设计模式)C/C++版本

中介者模式 C // 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示得相互引用&#xff0c;从而使得其耦合松散&#xff0c;而且可以独立地改变他们之间得交互#include <iostream> #include <string>using namespace std;#d…