- 博客(43)
- 收藏
- 关注
原创 【嵌入式原理设计】实验六:倒车控制设计
OLED显示:OLED屏幕会显示当前测量的距离值,单位为厘米。超声波测距:使用超声波传感器(TrigPin 和 EchoPin)测量小车与障碍物之间的距离。电机控制:使用PWM信号通过GPIO控制电机的前进、后退、加速、减速和停止。串口命令控制:通过串口输入以下命令,可以控制电机的运行状态:1是加速,2是后退,3是加快,4是减速,5是停止。3、加入电机运行控制,例如通过UART控制小车的前进、后退、加速、减速、停止。蜂鸣器报警:当距离小于设定的警戒距离时,蜂鸣器报警。显示当前小车与障碍物的距离值。
2025-02-26 19:58:30
825
原创 【嵌入式原理设计】实验五:远程控制翻盖设计
PWM(脉宽调制)控制:利用ledcSetup()和ledcAttachPin()函数,在特定的通道上配置并激活PWM,以精确调控舵机的旋转角度。PWM信号的周期设定为20毫秒,其中高电平占比决定了180度舵机从0°至180°的旋转范围。3、(选做)编写程序,可以切换手动和自动运行两种方式:自动模式下,舵机来回摆动;循环控制:在自动操作模式下,通过for循环机制,实现舵机在0°至180°区间内的连续往复运动。延时操作:采用delay()函数,在舵机的每次移动指令间插入暂停时段,以确保动作间的平稳过渡。
2025-02-26 19:53:36
242
原创 【嵌入式原理设计】实验四:数显温湿度计的设计
。2.实物连接图(拍照,控制图片大小,能看清即可)及程序运行结果描述。熟悉和掌握OLED显示控制及DHT11的数据读取。连接了温湿度传感器和小灯以及OLED显示屏显示温湿度的数值。Win10+ESP32实验开发板。、用灯光或声音提示当前温湿度值状态(自行设计)。获取当前的温湿度值,并在串口监视器显示;串口显示器中会显示实时监测到的温湿度值。显示屏上显示当前的温湿度值;
2025-02-26 19:49:12
538
原创 【算法设计与分析】实验8:分支限界—TSP问题
通过分析回溯法和分支限界法的时间复杂度以及实际运行效率,我深刻认识到了算法优化的重要性。我学会了如何使用限界函数和剪枝策略来减少搜索空间,从而提高算法的运行效率。
2025-02-01 13:30:27
974
原创 【算法设计与分析】实验7:复杂装载及0/1背包问题的回溯法设计与求解
通过本次实验,我对回溯法有了更深刻的理解。回溯法通过递归的方式,逐步构建问题的解空间,并在搜索过程中使用剪枝函数来避免无效搜索,从而提高搜索效率。这种方法在解决组合优化问题时非常有效,尤其是在解决解空间较小或可以通过剪枝显著减少搜索空间的一类问题时。
2025-02-01 13:24:00
1024
原创 【算法设计与分析】实验6:n皇后问题的回溯法设计与求解
通过本次实验,我深刻理解了n皇后问题的本质和求解方法。回溯法作为一种暴力搜索方法,通过逐步构建一个解空间,并在过程中进行选择和判断,以及必要的回退步骤,能够系统地探索所有可能的解。在n皇后问题中,回溯法通过逐行放置皇后,并检查是否满足约束条件,逐步构建出一个可行的解。
2025-02-01 13:17:50
937
原创 【算法设计与分析】实验5:贪心算法—装载及背包问题
贪心算法是一种逐步构建解决方案的算法策略,贪心算法通过一系列局部最优选择来构建全局最优解,其关键在于每一步选择都是当前状态下的最佳决策,是自顶向下的策略动态规划算法一般是自底向上解决问题。贪心选择性质和最优子结构性质。
2025-01-31 21:23:49
1413
原创 【算法设计与分析】实验4:动态规划—0/1背包问题
通过动态规划这一代码思路的学习,我深入理解了0/1背包问题的目标函数及约束函数,能够根据动态规划思想进行0/1背包最优子结构性质分析、子结构递归关系构建、编码实现子结构最优值求解以及最优解构造。
2025-01-31 21:19:04
812
原创 【算法设计与分析】实验3:动态规划—最长公共子序列
动态规划算法通常分为以下几个步骤:找出最优问题特点:明确问题的最优解具有什么样的性质,这是使用动态规划的前提。定义递归关系:根据问题的最优子结构,建立子问题之间的递归关系,这是动态规划的核心。自底向上计算每一步结果:利用递归关系,从最小的子问题开始,逐步求解更大的子问题,直到求解出原问题。构造最优解:根据保存的中间结果,构造出原问题的最优解。
2025-01-31 21:11:18
1192
原创 【算法设计与分析】实验2:递归与分治—Hanoi塔、棋盘覆盖、最大子段和
在设计递归算法时,必须明确递归基准条件和递归表达式。递归基准条件是递归的终止条件,决定了递归何时停止,否则代码不会有输出结果。在Hanoi塔问题的设计中,我注意到了递归调用的顺序和参数的传递方式,确保递归能够正确进行。
2025-01-30 21:58:13
1004
原创 【算法设计与分析】实验1:字符串匹配问题的算法设计与求解
对于字符串匹配问题两种算法以及改进的对比:1.BF算法,暴力匹配法,即逐个字符进行比对,遍历主串,从每个字符开始与子串进行比较。若字符不匹配,主串回溯到下一个字符,子串回到起始位置。时间复杂度:最好情况为O(n),最坏情况为O(m*n);空间复杂度为O(1)。缺点:效率极低。2.KMP算法利用了相等前后缀避免多次回溯,使用next数组记录子串的最长相等前后缀,计算子串的next数组,遍历主串和子串,不匹配时,子串根据next数组进行回溯。时间复杂度为O(m+n),空间复杂度为O(n)。
2025-01-29 17:35:54
782
原创 【Python】转换得到图片的rgb565格式数据
使用方法:首先在代码同级目录创建input_images文件夹,然后将需要转换的图片放进去。然后根据你的需要,修改代码最下面的crop_size、resize以及file_name。最后点击运行,即可得到图片的rgb565格式数据。
2024-10-29 19:27:55
747
1
原创 【嵌入式原理设计】实验三:带报警功能的数字电压表设计
掌握了四位数码管的连接方式,学会了如何通过编程控制数码管显示数字,并实现了保留三位小数的电压值显示。定义一个带小数点的数字字模数组,第一位需要小数表示,显示第1位数+小数点led_table = LED_0F1 + LED[0]数码管上的数字会随摇杆x轴的移动而变化:x值增大,电压值也会相应增大;x值减小,电压值也会相应减小。2、在4位数码管上显示变化的电压,数值显示要求保留3位小数;其中当数码管上电压值小于2V时,有报警提示,连接的小灯会亮起。操作摇杆,端口数据输出显示器与数码管上显示的电压数值一致,
2024-10-26 19:44:31
453
原创 【嵌入式原理设计】实验二:触摸调光台灯设计
通过该实验我学会了有关电容触摸按键的阈值知识和多个函数参数:touchAttachInterrupt(pin, function, threshold);touchRead(pin):读取电容触摸开关的阈值等。ESP32提供了相应的中断回调函数,当引脚的电容值小于设定的阈值时,则执行相应的中断回调函数。3、编写程序实现:触摸开关1 灯光调亮;任务3编写程序实现:触摸开关1 灯光调亮;1、找到触摸开关的阈值;任务1 找到触摸开关的阈值;触摸公线1:阈值约为20左右。触摸公线2:阈值约为20左右。
2024-10-26 19:34:52
574
原创 【嵌入式原理设计】实验一:软硬件环境搭建&数字端口应用
2.进一步学习并实践了如何利用循环和延时函数实现多个LED灯的依次点亮,形成流水灯效果。我还学习了如何通过读取按键所在的数字端口的电平状态来控制LED灯的亮灭。链接:https://pan.baidu.com/s/1MyEzwT20xN4kDZvbtYzbZg?1.通过该实验加深了我对IDE操作的理解,也让我对ESP32这一功能强大的微控制器有了更直观的认识。配置ESP Arduino 开发平台,熟悉实验的软硬件工作环境和基本的工作方式。任务1点亮一盏小灯;任务3按键控制小灯。小灯按照顺序依次被点亮。
2024-10-26 19:28:00
592
原创 【Linux操作系统】Linux配置OpenSSH服务器步骤记录
10月 20 17:56:13 rhel systemd[1]: sshd.service: Main process exited, code=exite>10月 20 17:56:13 rhel systemd[1]: sshd.service: Failed with result 'exit-code'.10月 20 17:59:02 rhel systemd[1]: sshd.service: Failed with result 'exit-code'.用指令查询,已经全部安装。
2024-10-26 19:05:10
1396
原创 【单片机原理及应用】实验: 8位数码显示器
锁存功能:ST_CP(输出存储器锁存时钟线)的上升沿将移位寄存器中的数据锁存到存储寄存器中,从而实现数据的稳定输出。级联使用:通过将Q7'连接到下一个74HC595的DS端,可以实现多个芯片的级联,以控制更多的输出。1.74HC595是一款高性能、低功耗的CMOS技术芯片,具有8位串行输入、8位并行输出的移位寄存器,以及一个8位的数据存储寄存器。串行输入:在SH_CP(移位寄存器时钟)的上升沿,串行数据从DS(串行数据输入端)输入到内部的8位移位寄存器,并在Q7'(级联输出端)输出。
2024-08-30 23:43:49
3655
原创 【单片机原理及应用】实验:数字秒表显示器
当CPU响应这个中断请求时,它会暂停当前正在执行的程序(这个暂停点被称为断点),转而处理中断源所指定的任务。在编写和调试C51源程序的过程中,我不仅掌握了定时器中断的使用方法和数码管的驱动方式,还提高了自己的编程能力和解决问题的能力。在未来的学习和工作中,我将继续努力提高自己的技能水平和实践能力。当计数器的值达到设定的阈值时,它会触发一个中断信号或产生一个输出信号,用于控制其他设备或执行特定的操作。根据图示中所给出的元件进行选择,输入元件名称,对照元件样式进行选择,添加至画布中,将其全部放置在图纸上。
2024-08-30 22:43:24
2817
原创 【单片机原理及应用】实验:数码管的中断控制
IT0: 外部中断0的触发方式(1表示下降沿触发),IT1: 外部中断1的触发方式(1表示下降沿触发),EX0: 允许外部中断0,EX1: 允许外部中断1,EA: 全局中断允许。通过实验,我可以将理论知识与实际操作相结合,更好地理解和掌握知识,实验还培养了我的动手能力、思考能力和解决问题的能力,加深了对C51编程和Proteus x8软件的理解,还学会了如何运用理论知识解决实际问题,通过反复调试和网上查阅相关资料,最终解决了问题,实现了目标。达到F后重新从1开始,如下图所示,LED上面的值显示为1。
2024-08-30 22:36:55
4096
2
原创 【单片机原理及应用】实验:LED循环控制
1.在实验过程中,我首先根据实验要求,在Proteus x8中创建了包含80C51固件的新项目,绘制了实验所需的电路原理图,然后我根据实验要求,编写了C51源程序,实现了LED灯的循环点亮功能。单击“新建工程”选项,在“名称”文本框内输入新建项目的名称,然后在“路径”文本框内输入新项目的文件保存路径,成功新建了一个不含单片机固件和PCB布板的新项目,根据图示中所给出的元件进行选择,输入元件名称,对照元件样式进行选择,添加至画布中,将其全部放置在图纸上。→D1,无限循环,两次亮灯的时间间隔约为0.5s。
2024-08-30 22:32:11
5185
原创 【单片机原理及应用】实验:指示灯开关控制
(4)参照图A.3的程序流程图,编写汇编源程序,要求实现如下功能:8只发光二极管先整体闪烁3次(闪烁以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。次(闪烁以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。布板的新项目,根据图示中所给出的元件进行选择,输入元件名称,对照元件样式进行选择,添加至画布中,将其全部放置在图纸上。新建里面要修改创建的选项,如图所示。
2024-08-28 21:42:17
2557
原创 【单片机原理及应用】实验:绘制电路原理图
熟悉Proteus8的项目创建方法和原理图绘制标签页界面的组成,掌握电路原理图的绘图方法。1)在Proteus8中新建一个不含单片机固件和PCB布板的新项目;(2)观察原理图标签页界面的组成,了解绘图编辑区、系统菜单、工具按钮的功能;(3)参照图A.1和表A.1完成电路原理图绘制;(4)将原理图导出为位图文件(分辨率为200DPI,颜色为单色);(5)完成实验报告的撰写(1)在Proteus8中新建一个不含单片机固件和PCB布板的新项目;
2024-08-28 21:28:55
3010
原创 【操作系统】实验:文件系统
更深入理解了文件操作的系统命令实质内容和执行过程:通过实际操作文件的创建、删除、读取、写入和查找等命令,我不仅学会了如何使用这些命令,更重要的是理解了它们背后的执行机制和原理。其中,文件是数据的逻辑组织形式,目录是一种树形结构的组织形式,文件描述符是内核与文件之间的连接,i节点存储文件的元数据包括文件大小、创建时间、权限等信息,位图用于记录文件系统中的空闲块。文件系统是操作系统中用于管理和存储文件信息的软件机构,它负责在存储介质上组织文件的方法,并为用户提供文件的存储、检索、更新等功能。
2024-08-27 16:52:17
1660
原创 【操作系统】实验:内存管理
1、掌握基本分页存储管理方式2、加深对页面、页表等概念的认识和理解3、通过编写基本分页存储管理模拟程序,理解从算法设计到实现的思想与方法。
2024-08-27 15:47:33
565
原创 【操作系统】实验:内存管理
1、加深对固定和动态分区分配内存管理方式的理解2、理解动态分区分配算法:首次适应算法,循环首次适应算法,最佳适应算法。
2024-08-27 13:33:21
1824
原创 【操作系统】实验:生产者消费者问题
当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。2.编程复杂性:虽然信号量机制的实现相对简单,但在使用它来实现进程同步时,程序员需要仔细考虑如何设置信号量的初始值、如何调用P操作和V操作等。3.难以调试和维护:由于信号量机制的实现涉及多个进程之间的交互和协作,因此它的调试和维护相对困难。本实验在一个进程中执行两个线程,一个是生产者线程,一个是消费者线程。
2024-08-26 23:03:10
1884
原创 【操作系统】实验:进程死锁
系统性能影响:虽然死锁预防能够严格地防止死锁的出现,但它可能严重地影响系统性能,因为可能需要限制资源的并发访问,以降低死锁的风险。而死锁避免则相对灵活,它可以在满足系统性能要求的同时,动态地调整资源的分配,以减少死锁的可能性。综上所述,死锁避免和死锁预防在处理死锁问题时有着不同的策略和方法,但它们都是为了提高计算机系统的稳定性和效率,解决可能出现的死锁问题。2.本实验要求学生编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效地防止和避免死锁的发生。
2024-08-26 22:36:51
1197
原创 【操作系统】实验:进度调度(2)
为了克服这些弊端,可以采用一些优化措施,例如设置进程的最大执行时间以避免长时间占用CPU资源,或者采用动态优先级调度算法,根据进程的实际执行情况来动态调整进程的优先级。1.低优先级进程饥饿:在高优先权调度算法下,如果系统中存在大量高优先级的进程,低优先级的进程可能会被持续推迟执行,导致它们的响应速度变慢,甚至长时间得不到执行,这种现象被称为“饥饿”。3.可能导致系统资源浪费:如果高优先级的进程执行了很短的时间就放弃处理机,那么系统会频繁地进行进程切换,这会导致系统资源的浪费,降低系统的整体效率。
2024-08-26 22:26:30
1070
原创 【操作系统】实验:进度调度(1)
追求最少的平均等待时间,最少的平均周转时间,最少的平均带权周转时间,即让最短的作业/进程得到服务(最短为服务时间最短),既可用于作业调度,也可用于进程调度。用于进程调度时,考虑的是哪个进程先到达就绪队列,是非抢占式算法,不会导致饥饿(某进程/作业长时间得不到服务)先选择对应的调度算法,将所有进程按照对应的调度算法所求的优先级在就绪队列上排队,队头进程进 CPU 运行,如果该进程总服务时间等于在 CPU 上的运行时间,那么进程结束,直到所有进程均运行完毕。进程的优先权的设置可以是静态的,也可以是动态的。
2024-08-19 23:15:18
860
原创 基于控制台的Java电子商城——计算机专业实训项目
本次实训要求完成一个基于控制台的Java电子商城,功能包括普通用户的菜单显示,注册功能,登录功能,查看商城功能,购买商品功能,查看已购买商品的功能,退出功能;管理员的登录功能,商品添加功能、修改功能、删除功能、查看商品列表功能、退出功能。重点:原型设计工具,用例图,流程图绘制工具、安装JDK、配置JDK环境变量、安装Eclipse、类的调用,方法的调用、成员变量的使用,集合的使用,if判断语句,for循环等。
2024-08-12 20:14:27
1115
原创 【数据结构】实验:查找和排序算法
1、查找方法(1)顺序查找:从列表的第一个元素开始,逐个比较,直到找到目标元素或遍历完整个列表。时间复杂度为O(n)。(2)二分查找:在有序列表中,取中间元素进行比较,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。时间复杂度为O(log2n(3)二叉排序树的查找:在二叉排序树中,根据目标值的大小,选择左子树或右子树进行查找。时间复杂度为O(log2n)到O(n)。2、排序方法。
2024-08-11 21:22:53
962
原创 【数据结构】实验:二叉树的操作和应用(2)
熟练掌握图的非线性结构的特点。掌握图的邻接矩阵和邻接表的存储结构。掌握图的两种常用存储结构下的深度优先搜索和广度优先搜索操作和其它操作的实现掌握用prim算法求图的最小生成树的原理领会克鲁斯卡尔算法求连通图的最小生成树的过程和相关算法设计掌握图的最小生成树的特点
2024-08-11 20:44:36
1194
原创 【数据结构】实验:二叉树的操作和应用(1)
通过此次实验我掌握二叉树的非线性和递归特点:二叉树是一种非线性的数据结构,它不满足线性关系。在二叉树中,每个节点最多有两个子节点,分别是左子节点和右子节点。二叉树的遍历和操作可以通过递归来实现。前序遍历、中序遍历和后序遍历都是通过递归实现的。
2024-08-10 16:08:46
645
原创 【数据结构】实验:串和递归的应用
递归的核心思想就是减而治之,将走出迷宫这一个大问题变为一步步试探查找的小问题,在完成小问题后,要回退并且重置,其目的就是恢复求迷宫路径而改变的环境,进而找出所有路径。
2024-08-09 22:18:03
336
原创 【数据结构】实验:栈和队列的操作及其应用
在编写病人看病程序时,代码要求病号不能重复,所以我在输入病历号数字的操作之中,加入了一个do…while循环,设立find变量,先遍历队列中以及存在的病号数字,若有重复,则find的值从0变为1,最终返回find的值来判断输入的病号是否重复,如果重复则需要重新输入病号。
2024-08-09 22:06:40
1084
原创 【数据结构】实验:有序表的应用
二路归并算法是一种常用的多项式相关运算方法,可以用于完成两个一元多项式的加法、减法、乘法等运算。二路归并算法具有较高的效率和稳定性。二路归并算法的基本原理是将两个一元多项式分别按照指数从高到低进行排序,然后依次比较两个多项式的当前项的指数,将较小的指数对应的项进行相加或相减,得到结果多项式。重复这个过程,直到处理完所有项。
2024-08-09 15:07:53
681
原创 【数据结构】实验:线性表的操作及应用
定义一个包含学生信息(学号,姓名,5科成绩(C语言 计算机基础 高等数学 大学英语 马克思原理),总分)的顺序表和链表,分别用顺序表或单链表实现如下功能:(两者都实现的同学可加分)(1) 整体建表,根据指定学生个数,逐个输入学生信息;(学号不能重复,总分计算机自动计算)(2) 输出学生表信息;(3) 查找学生信息(可根据姓名或学号查找);(4) 插入新学生信息(插入学生的学号不能和已有学生学号重复);(5)删除给定学号的学生信息;(6) 学生信息表排序(可按任意给定的关键字排序)
2024-08-08 13:38:11
2270
原创 【数据结构】实验:用抽象数据结构解决问题:集合的交、并、补
由整数数组a[0..n-1]创建一个集合。输出集合中的所有元素。判断一个元素是否在一个集合中。求两个集合的并集,并输出结果。求两个集合的差集,并输出结果。求两个集合的交集,并输出结果。
2024-08-07 22:21:16
782
原创 【计算机组成原理】实验四:单总线硬布线控制器设计(内附完整实验报告和成果文件)
1、理解典型指令控制信号的产生条件2、掌握指令译码器的设计方法3、掌握单总线定长指令周期时序发生器的设计方法。
2024-08-06 15:08:51
1733
单片机原理及应用C51所有实验代码及原件
2024-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人