自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 基于51单片机的矩阵按键

程序首先进行初始化,设置LED初始值、端口状态,以及一些必要的标志位。主程序进入循环,不断读取矩阵键盘状态。在每次循环中,程序检查是否有按键按下。如果有按键按下,程序会根据按键的位置确定相应的数字,并更新LED显示。为了确保稳定的按键检测,程序使用去抖动。去抖动用于解决按键可能因机械原因而产生的抖动问题,以确保只有有效的按键触发才被记录。在按键被按下的情况下,程序通过查表的方式将相应的数字加载到寄存器中,然后进行LED的移位操作,从而实现数字的从左到右的显示效果。

2024-01-14 20:49:26 1271 1

原创 基于51单片机的电子计数器

使用三个数码管(LED1、LED2、LED3)分别显示计数的个、十、百位。按下K1,计数器加1,按下K2,计数器减1。程序通过轮询检测按键状态,实现按键的检测和响应。同时,使用延时函数来处理按键的抖动。依次处理个、十、百位数,每次显示前先清空上一位的显示。检查是否需要进位,如果需要,则进位到高位。检查是否需要借位,如果需要,则借位到高位。存储0~9的数码管段码,用于显示对应数字。重新检测按键状态,确保按键闭合。逐位加1,包括个位、十位、百位。逐位减1,包括个位、十位、百位。,以控制数码管刷新速度。

2024-01-13 17:56:46 651

原创 Java课程设计——通讯录管理系统(含源码)

设计并实现一个通讯录管理系统包含以下功能:a)用户注册、登录;b) 通讯录信息的浏览、查找与增删改维护其他说明:要求采用JDBC连接数据库界面可以选用Swing GUI技术或JSP技术其中通讯录基本信息包括:记录号、联系人、工作单位、电话号码、邮件、创建日期等(可根据需要扩展信息)

2024-01-12 16:53:35 5256 6

原创 线性表的应用(含源码)

在合并同类项的过程中,我们从头部开始,依次比较当前节点和后续节点的指数。若两个节点的指数相同,则将它们的系数相加,并删除后续节点。,通过两个循环遍历两个多项式链表的每一项,并将每一项的系数和指数相乘,得到新的节点加入临时的结果链表中。,先获取用户输入的项数,然后逐一输入每一项的系数和指数,并创建新的节点加入链表中。最后,函数返回化简后的多项式链表。,使用了一个循环来遍历两个多项式链表,并根据指数的大小关系进行相应的操作。,使用了一个循环来遍历两个多项式链表,并根据指数的大小关系进行相应的操作。

2024-01-12 15:57:27 876

原创 线性表的应用

然后遍历集合中的元素,检查是否存在相同的元素,若存在则返回错误信息。如果元素不重复,则将元素添加到集合的末尾,并更新。.采用顺序表存储非空整数集合(同一个集合中没有相同的元素,两个集合中可能存。利用顺序表(数组)来存储集合的元素,并通过函数实现集合的各种操作。在相同的元素),设计完成如下功能的算法并用相关数据进行测试。遍历集合的数组,依次输出每个元素。函数会进行重复元素的检查,因此不会将重复元素添加到。中的元素,对于每个元素,检查它是否存在于集合。中的元素,对于每个元素,检查它是否存在于集合。

2024-01-11 11:51:53 996

原创 队列的应用

processChoice() 函数根据用户的选择执行相应的操作,调用其他函数完成具体功能。获取用户输入,并调用相应的队列操作函数来执行对应的操作。菜单循环执行,直到用户选择退出。掌握顺序栈和循环队列的存储表示和运算的实现,并运用基本运算完成复杂的功能。在菜单循环中,根据用户的选择执行相应的操作。例如,当用户选择入队操作时,我们使用。头文件中,我们声明了用于操作队列的函数,并提供了函数的注释和函数原型。文件中,我们编写了主函数,用菜单形式展示队列操作。printQueue() 函数用于打印队列中的元素。

2024-01-10 11:21:43 950 1

原创 栈的应用——迷宫问题

定义迷宫的数据结构:首先需要定义迷宫的数据结构,通常可以使用一个二维数组来表示迷宫的格子。打印路径:找到路径后,可以通过遍历栈来获取路径的方块坐标,然后按照指定格式打印出路径信息。如果当前方块没有可访问的相邻方块,则将当前方块出栈,并将其设置为可访问状态。判断当前方块是否为终点,如果是则找到一条路径,打印路径并结束搜索。初始化起点:将起点的坐标入栈,并将起点设置为不可访问状态。数据关系:迷宫和栈之间的关系是栈用于存储迷宫路径的方块。在当前方块的相邻方块中选择一个可访问的方块,并将其入栈。

2024-01-09 12:04:52 1067

原创 图的遍历及应用

(本次实验所涉及并要求掌握的知识点)1.领会图的两种存储结构和图的基本运算算法设计;领会图的两种遍历算法。2.掌握图的深度优先遍历和广度优先遍历算法在求解图路径搜索问题中的应用。(设计思路、主要数据结构、主要代码结构、主要代码段分析)2.抽象数据类型定义ADT Graph数据对象:D = {aii为ElemType类型}数据关系:R = {< ai,aj> | ai,aj。

2024-01-08 10:42:20 1164 1

原创 数据结构——二叉树的操作

1.领会二又链存储结构;掌握二又树的各种基本运算和构造二叉树的算法设计。 2.领六线索二又树的构造过程以及构造线索二又树的算法设计。

2024-01-07 00:00:00 1222

原创 Java程序设计——继承和接口

设计一个图形系统。对所有的图形有共同的接口Coloring,内含有一个着色的抽象方法;设计一个抽象的图形类Shape,内含有着色的方法实现,以及求面积的抽象方法;设计一个圆类,继承自Shape;设计一个矩形类,继承自Shape;设计一个测试类,完成测试。要求:完善系统功能。具有输入图形参数创建图形对象、获取图形信息、着色、求面积等功能。进行构造方法重载;方法重写;要能体现多态。

2024-01-06 12:58:51 350 2

原创 Java实验——利用HashMap存储关键字统计信息

设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。

2024-01-05 17:43:15 501

原创 Java程序设计——继承和接口

设计一个图书信息维护程序:利用链表LinkedList进行图书信息列表的存储和操作,能按书号搜索、增加、删除、修改一个图书信息。

2024-01-04 15:46:03 969

原创 Java——自定义异常

题目:设计一个特殊的整数输入类,当输入的数大于999时,发生TooBigExcept异常。 TooBigExcept为自定义的一个异常类。要求:自定义异常类;完成测试,进行异常捕获和处理。

2023-12-26 12:33:17 564

原创 java缓冲流实现文件内容加行号:给定一个文件,通过文件读写,给文件内容加行号

题目:文件内容加行号:给定一个文件,通过文件读写,给文件内容加行号,行号形式如:1:) xxxxxx2:) xxxxxx要求:使用缓冲流操作。

2023-12-22 19:55:58 527

原创 Java程序设计——文件IO

数字存取操作:让用户输入8个整数,将这些数写入文件num.txt中;然后从该文件读取这些数,在内存中对它们进行逆序排序,再打印输出结果。要求:分别使用字节流和字符流操作方式完成。提示:保存时把数字转为字符串,再写入文件;读取时,以字符串读出来,再解析为数字。

2023-12-20 13:00:22 1066

原创 Java程序设计——GUI设计

设计一个窗口界面,用于学生基本信息如学号、姓名、性别、年龄、专业等内容的输入。使用多种界面元素,如JButton,JTextField,JCheckBox,JTextArea等。 适当使用对话框进行提示信息展示。(A)点击“保存”按钮,能够把输入的信息保存入文件;(B)点击“加载”按钮,能够通过读取指定位置的文件,加载信息来刷新界面。要求:处理事件响应;注意对异常的处理。

2023-12-19 12:32:58 2339

原创 课程设计——《家谱管理系统》(含源码)

一个家谱关系由若干家谱记录构成,每个家谱记录由父亲、母亲和子女姓名构成,其中姓名是关键字。设计并实现一个简单的家谱管理系统[任务要求]定义一个主菜单,界面友好,演示程序以用户和计算机的对话方式进行,可以反复操作,方便用户实现下述操作。具体功能要求:(1)从键盘输入家谱记录(按照祖先到子孙的顺序输入,即第一个输入的记录的父亲域为所有人的祖先),建立家族关系树,并存储到外部文件MyFamily+(2)学号后三位.txt(如,MyFamily001.txt)中(3)实现家族成员的添加、

2023-12-16 13:10:04 3887 7

原创 课程设计——《停车场管理系统》(含源码)

汽车在停车场内按车辆到达时间的先后顺序依次由南向北排列(大门在最北端,最先到达的第一辆车停放在停车场的最南端),若停车场内已停满n 辆车,则后来的汽车只能在门外的便道(即候车场上)等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在它离开停车场时必须按停留的时间长短交纳费用。如果停留在便道上的车辆未进入停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的

2023-12-13 13:05:58 3780 4

原创 《汇编语言》实现跑马灯

一、 实验要求掌握定时器中断的使用熟悉单片机开发板的使用

2023-12-12 12:54:21 1068

原创 汇编语言实现冒泡排序算法

一、 实验要求用汇编实现冒泡排序算法。在实验三的代码基础上,利用冒泡排序将DEST中数据从小到大重新排序 。将冒泡排序算法写成子程序。在主程序中,通过设置参数,使用同一个子程序实现从大到小,从小到大排序的自由选择。

2023-12-09 12:36:02 2342

原创 循环程序设计——《汇编语言》

向起始地址为SRC的片内存储中,顺序写入NUM个单字节数(数值不限),并以$字符(ASCII码)结尾。从SRC中,向起始地址为DEST的片外存储中,逆序拷贝之前存储的NUM个单字节数,并以$字符结尾。将上述两个操作写成两个子程序。

2023-12-06 12:55:45 354

原创 《汇编语言与接口技术》——子程序设计

编程实现两个数:#8888H 和 #79H 的乘除运算。结合实验1的代码,将加减乘除四则运算写成四个子程序,注意现场保护。

2023-12-04 18:32:59 481 6

原创 《使用PYNQ-Z2开发板完成超声测距》

在实现的过程中,你需要参考PYNQ社区的技术博客【1】的内容,完成以下任务:任务一:在PYNQ-Z2开发板上对处理器核进行编程,打印出“Helloworld”;任务二:完成传感器与开发板的连接,向超声波传感器发送脉冲信号,并计算测量距离;任务三:将测量距离以LED灯亮度的形式进行显示,距离越长,亮灯越多。

2023-12-02 21:55:01 1302 2

原创 《数字逻辑》——利用logisim实现弹球小游戏

1.掌握有限状态机的思想2.掌握有限状态机的数字电路实现方法3.利用有限状态机解决实际应用问题

2023-11-29 12:42:40 708 2

原创 《数字逻辑》——有限状态机

在这个实验中,可以成功地掌握有限状态机的思想,并学习如何实现有限状态机的数字电路。该实验设计了一个系统,该系统能够从键盘的输出中检测特定的字符串"JMU"。我们首先确定了系统的输入变量和状态个数,然后画出了状态图和状态转换表。通过逻辑表达式的推导,我们实现了系统,并对其进行了测试。测试结果表明,当我们完整地输入"JMU"时,系统会输出字符"V"。当输入其他字符或者只输入"JMU"中的一部分时,系统不会有任何输出。这个实验可以使我们更深入地理解了有限状态机的工作原理,以及它在解决实际应用问题中的重要性。

2023-11-28 12:50:18 340 2

原创 JMU《数字逻辑》—— Lab2 时序电路设计

掌握时钟的使用方法掌握锁存器和触发器的原理掌握计数器模块的设计方法掌握移位寄存器的设计方法掌握存储器阵列的设计方法了解点阵屏在数字电路中的应用理解时序电路设计在应用场景中的作用

2023-11-25 17:03:21 94 1

原创 汇编语言与接口技术——算术运算程序设计

一、实验目的:熟练掌握算术运算汇编指令的使用理解有符号数和无符号数运算熟练掌握简单程序设计的基本方法熟练掌握程序的调试方法二、实验内容:编程实现两个数:#998877H 和 #778899H 的加法运算。编程实现两个数:#998877H 和 #778899H 的减法运算。

2023-11-24 14:03:16 232 2

原创 《数字逻辑》实验——时序电路设计

在这个实验中,我们成功地设计了一个二进制倒计时器。这个倒计时器的设计过程涉及到了多个重要的数字电路元件,包括SR锁存器、D锁存器和D触发器。这些元件的设计和实现是实验的关键部分。我们首先设计了SR锁存器,然后是D锁存器,最后是D触发器。这些元件都被整合到我们的最终寄存器设计中。然后,我们利用这个寄存器来构建倒计时器。在倒计时器的设计中,我们设定了初始值为9,并利用比较器设定了下限值为0。然后,我们利用减法器使得数值依次减一,当减到0后,又重复从9开始减。

2023-11-22 12:55:54 541 1

原创 《数字逻辑》小实验(2)

在第二部分实验里面,我们运用复用器设计了算术逻辑单元(ALU)。ALU的设计包括了加法、减法和溢出等功能。通过设置不同的输入和控制开关,我们验证了ALU在各种情况下的正确运行。通过连接七段数码管显示ALU的计算结果,我们学到了数字电路的输出可视化方法。这是一个重要的实际应用,尤其在数字系统中,通过七段数码管能够直观地展示计算结果。这次实验使我们更熟练地掌握了数字电路设计的基本技能,包括逻辑表达式的获取与简化、数字电路的设计、ALU的功能实现以及七段数码管的应用。

2023-11-20 12:31:47 71 1

原创 数字逻辑小实验(1)

在这个实验中,我们设计并测试了一个2比特加法器。我们发现,只要没有溢出发生,补码数就能在我们的电路上获得正确的结果。具体来说,当A0、B0、A1、B1都为0时,B0+A0和A1+B1都没有进位,所以不会溢出。同样,当A0=1、B0=0、A1=1、B1=0时,B0+A0和A1+B1也都没有进位,所以也不会溢出。当A0=0、B0=1、A1=1、B1=1时,虽然B0+A0没有进位,但A1+B1有进位,所以会发生溢出。

2023-11-17 12:36:26 69

原创 搭建简易的摄像检测系统(3)————系统定制及驱动编译

通过以上步骤,我们成功地完成了一个全面的嵌入式系统搭建过程,从硬件配置到软件定制再到最终测试。整个系统的关键亮点包括摄像头集成、定制的Linux系统和深度学习推理功能,形成了一个一体化的解决方案。这个解决方案为特定应用提供了强大的计算和视觉处理能力。通过整合摄像头,实现了对实时图像的采集,为系统提供了丰富的输入数据。在软件层面,通过PetaLinux的定制,我们构建了一个特定于应用需求的嵌入式Linux系统。这个系统具备了足够的灵活性,允许根据具体需求进行进一步的优化和定制。

2023-11-15 12:59:29 113 1

原创 搭建简易的摄像检测系统(2)————设备树

我的设备树修改的具体过程是:在github网站里面的设备树只有一部分是我们配置摄像头所需要的,我将设备树代码发送给了chatgpt让它为我说明每一段具体是什么功能。然后我将一些自己认为与摄像头无关的内容删掉,最后留下的内容构成了这个新的设备树。

2023-11-13 12:46:13 208

原创 搭建简易的摄像检测系统

在整个Petalinux和Vivado工具的安装和使用过程中,我经历了一系列的设计错误,并逐一解决。首次设计中的问题主要涉及到自动连接的不准确性,特别是在与dpu中断和AXI interconnect相关的部分,导致生成的BOOT文件出现了冲突错误。这一经验让我意识到自动连接并不总是可靠,需要在设计中进行手动检查和调整,以确保连接的正确性。

2023-11-10 19:56:24 82 1

原创 ZYNQ入门——《Zynq-Design-using-Vivado》(5)

本次实验主要目标是学会在轮询模式下使用CPU的私有计时器,并学习使用SDK调试器设置断点并查看变量和内存内容。通过完成本实验,了解了如何使用PS7的私有计时(ScuTimer)API,并掌握了在SDK中创建和修复软件项目的方法。同时,我们也学会了在硬件上验证代码操作,使用SDK调试器设置断点、查看变量和内存内容,逐步执行代码。在SDK中创建软件项目时,需要关闭其他已经打开的项目,以免出现冲突。在添加XScuTimer.h的包含语句时,需要注意头文件的路径是否正确。

2023-11-08 13:03:22 146 1

原创 ZYNQ入门——《Zynq-Design-using-Vivado》(4)

通过完成实验4,成功学习了如何在SDK中编写访问IP外设的基本应用程序,并进行硬件设计和验证。学会了使用链接脚本来分区可执行代码到DDR3和BRAM空间,以及如何在Zynq开发板上进行比特流烧写和应用程序的下载与执行。这些技能将对我的嵌入式系统开发项目和学术研究非常有帮助。我还解决了一些问题,例如输入命令时出现的错误,通过手动输入正确的命令来解决了这个问题。这次实验经历有助于我更深入地理解嵌入式系统开发的流程和技术。6.附录附录.1参考资料[1]

2023-11-06 12:30:09 73

原创 ZYNQ入门——《Zynq-Design-using-Vivado》(3)

打开Vivado。创建新的IP位置。运行Create and Package IP Wizard。填写IP的详细信息。创建与LED相关的接口。修改生成的HDL代码。运行综合,检查设计是否正确。2.2在Block Design中添加自定义IP。自定义IP的参数设置和连接。添加LED的外部引脚。添加AXI BRAM控制器和Block Memory Generator。添加引脚约束。验证设计,重新生成设计。3.

2023-11-05 12:25:56 77 1

原创 ZYNQ入门——《Zynq-Design-using-Vivado》(2)

通过本次实验,可以更深入地了解Xilinx Vivado和SDK工具,以及FPGA开发的基本流程。首先需要我们配置处理系统(PS)的GP Master端口,将其连接到可编程逻辑(PL)中的IP。接下来,添加了两个GPIO实例,分别命名为"switches"和"buttons",并手动进行了连接。通过在Address Editor中为IP核分配地址和创建外部端口,将GPIO外部端口与开发板上的引脚关联起来,为将来的硬件测试做好了准备。

2023-11-04 00:30:00 52 1

原创 ZYNQ入门——《Zynq-Design-using-Vivado》(1)

这个实验介绍了如何使用Vivado创建Zynq系统的项目,使用IP Integrator创建硬件系统,使用SDK创建标准的内存测试项目,并在开发板上运行测试应用程序以验证硬件功能。实验步骤包括创建Vivado项目,使用IP Integrator创建系统,生成顶层设计并导出到SDK,在SDK中生成内存测试应用程序,以及在硬件上进行测试。此外,报告还提供了我遇到的一些问题及解决方法,以及调试过程中的终端输出结果。展示了从项目创建到硬件测试的完整流程。有助于理解Zynq系统的设计和实现。

2023-11-03 07:30:00 56

原创 《Python入门》实现简单计算器

本篇文章完成了一个简单的计算器功能,是一个面向速成学习python者的一个小实验。这个计算器不仅可以进行基本的加、减、乘、除运算,还可以进行取余、取整、次方和开方等复杂运算。通过这个实验,我们可以看到,编程不仅可以解决复杂的问题,也可以使我们的生活更加便捷。这个计算器就是一个很好的例子,它简化了我们的计算过程,使我们能够更快地得到结果。5.

2023-11-02 04:00:00 2509

原创 Ubuntu入门和使用

这个案例成功安装了Ubuntu 22.04虚拟机,经历了一系列简单的步骤。首先,获取了Ubuntu镜像文件,然后使用VMware Workstation Pro创建了虚拟机。在安装过程中,我设置了用户名和密码,调整了磁盘大小,并对硬件进行了自定义配置。最终成功打开了虚拟机,现在可以在其中运行Ubuntu,为开发、测试和学习提供了一个理想的环境。这个安装过程非常顺利对于linux开发学习者来说很有用,对于一些小型实验,我们都可以通过ubuntu平台来完成。

2023-11-01 04:00:00 38 2

java课程设计:通讯录管理系统

综合题:设计并实现一个通讯录管理系统包含以下功能: a)用户注册、登录; b) 通讯录信息的浏览、查找与增删改维护 其他说明:         要求采用JDBC连接数据库         界面可以选用Swing GUI技术或JSP技术 主要目的:学习和应用Java编程语言: 通过实际项目的开发,加深对Java编程语言的理解,并熟悉其面向对象的编程思想。实践中将涉及类的设计、继承、多态等概念,从而提高对Java语言特性的掌握。 掌握Java Swing桌面应用程序的设计与开发: 通过使用Java Swing框架,了解并实践图形用户界面(GUI)的设计与开发。在这个过程中,将学习如何创建窗体、面板、按钮、文本框等Swing组件,以及如何处理事件和实现用户交互。 理解并应用数据库设计和连接: 通过与MySQL数据库的交互,学会设计数据库表结构、进行增删改查等基本操作。使用JDBC连接数据库,实现系统与数据的有效交互,从而提升对数据库设计和连接技术的理解和应用。 培养软件设计和开发的能力:通过整个系统的设计与实现过程,培养学生的软件设计和开发能力。强调模块化设计,将系统拆分为不同的模块。

2024-01-12

课程设计-《家谱管理系统》

1. [问题描述] 一个家谱关系由若干家谱记录构成,每个家谱记录由父亲、母亲和子女姓名构成,其中姓名是关键字。设计并实现一个简单的家谱管理系统 [任务要求] 定义一个主菜单,界面友好,演示程序以用户和计算机的对话方式进行,可以反复操作,方便用户实现下述操作。具体功能要求: (1)从键盘输入家谱记录(按照祖先到子孙的顺序输入,即第一个输入的记录的父亲域为所有人的祖先),建立家族关系树,并存储到外部文件MyFamily+ (2)学号后三位.txt(如,MyFamily001.txt)中 (3)实现家族成员的添加、删除功能。 (4)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。 (5)按某种顺序输出家谱信息 (树的遍历操作)、以树型结构输出家谱资料等功能。 选做: (6)通过读取外部*.txt 文件,建立家族关系树: (7)添加和删除后的结果同步到外部文件。 2. 功能和原始数据 2.1 主要功能 (1)文件读取记录:从文件中读取已有的家谱记录。将读取的记录添加到家谱管理系统中,建立家族关系树。 (2)添加家谱记录:通过键盘输入,添加新的家谱记录

2023-12-19

课程设计-《停车场管理系统》

一、实验内容: 汽车在停车场内按车辆到达时间的先后顺序依次由南向北排列(大门在最北端,最先到达的第一辆车停放在停车场的最南端),若停车场内已停满n 辆车,则后来的汽车只能在门外的便道(即候车场上)等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在它离开停车场时必须按停留的时间长短交纳费用。如果停留在便道上的车辆未进入停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序

2023-12-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除