基于AT89C51单片机的可暂停八路抢答器设计
点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/90196607?spm=1001.2014.3001.5503
C+15
部分参考设计如下:
摘要
随着社会进步和科技发展,电子设备在各类活动中的应用日益普遍,抢答器作为一种答题工具应运而生。抢答器广泛应用于答题节目、知识竞赛等活动。然而,市面上现有的抢答器存在线路复杂、实用性差、成本高等问题。为此,本次毕业设计利用C51单片机设计了一种结构简单、元器件易购、功能完善的多路抢答器。
该多路抢答器采用八路抢答的形式,以AT89C51单片机为核心控制芯片,使用四位数码管显示,支持八位选手抢答。主持人按下开始抢答按键前,若有选手按下抢答键,系统会发出警报,视为违规。在正常抢答程序中,系统进入30秒倒计时,选手可进行抢答,成功后进入15秒答题倒计时。若最后5秒钟无人抢答,系统会发出提醒。在答题时间的最后5秒也会提示。此外,主持人可设置答题时间和抢答时间。
该设计基于Altium Designer进行原理图设计,利用DXP软件进行元器件的查找、放置、连接和制版,实现硬件设计;使用Keil uVision4进行单片机程序编写,实现软件设计;最后通过Proteus 8仿真软件将程序载入单片机,进行仿真调试,以达到设计目标。
关键词:抢答器;C51单片机;硬件设计;软件设计;仿真
单片机;数码管;抢答器;电子产品;proteus
目 录
第1章 概 述
1.1 选题来源
1.2 选题的研究现状
1.3 选题的意义
1.4 论文设计内容
第2章 总体设计方案
2.1 多路抢答器设计方案
2.2 元器件选型
第3章 硬件系统设计
3.1 八路抢答器整体方案设计
3.2 单片机最小系统设计
3.3 按键模块设计
3.4 蜂鸣器模块设计
3.5 数码管模块设计
3.6 电源模块设计
第4章 系统软件设计
4.1 程序语言及开发环境
4.2 程序流程设计
4.3 系统程序调试
第5章 系统仿真
5.1 系统仿真软件
5.2 原理图仿真
第6章 实物焊接与调试
6.1 元件清单
6.2 电路板焊接
6.3 实物调试
第7章 总结
致 谢
参考文献
附录
第1章 概 述
1.1 选题来源
在大学的学习中,我对基于单片机设计电路及其在生活中的实际应用产生了浓厚的兴趣。这次毕业设计参考了导师的指导意见,结合所学知识,从导师提供的参考题目中选择了基于单片机的多路抢答器设计作为论文题目。
1.2 选题的研究现状
目前市场上的抢答器种类繁多,主要分为电子抢答器和电脑抢答器。电子抢答器结构简单,依靠数字集成电路构成,通常由抢答器主机和按钮组成,功能有限;而电脑抢答器则需要配合电脑,使用专门的软件实现多种功能,应用范围广,但体积大且使用不便。
随着科技的迅速发展,抢答器作为早期研发的电子产品,广泛应用于人才选拔和知识竞赛。然而,早期的抢答器主要由几个三极管、可控硅和发光管组成,可靠性低,实施困难。目前大多数抢答器仍存在以下不足:第一,现场线路连接复杂,选手位置不同导致导线混乱,影响可靠性和现场美观;第二,误判情况较多,选手抢答成功但未被记录,影响比赛公平性;第三,制作成功率低,由于技术不完善和元器件组装复杂,未能实现预期功能,造成浪费。
1.3 选题的意义
在竞赛中,传统的举手抢答方法容易因裁判主观判断而影响公平性。因此,设计一个简易可靠的系统以实现规范的抢答功能显得尤为重要。
单片机是一种广泛应用于电子产品的芯片,近年来发展迅速,成为电子产品开发的首选。单片机具有重量轻、体积小、价格低、抗干扰能力强等优点,使得基于单片机设计的多路抢答器具备优于传统抢答器的特点:首先,电路连接简单,许多功能(如定时、中断、复位等)和管脚都整合在单片机中;其次,实用性强,工作可靠,能够通过编写程序实现多样化功能,方便功能的添加和改善。因此,本次设计具有创新性。
此次多路抢答器利用AT89C51单片机进行系统设计,有助于掌握相关知识。在硬件方面,利用DXP原理图进行设计,提高设计能力;在软件方面,编写单片机程序,加深对编程的理解;在实物组装方面,进行元件的拼装、焊接和调试,提高动手能力和排障能力。
1.4 论文设计内容
本次多路抢答器的设计与制作论文分为七个章节:
第一章为概述部分,论述选题来源、选题意义及论文结构,确定研究方向。
第二章为总体设计方案,描述多路抢答器的设计流程及所用开发软件,考虑元器件选择以确保正常工作。
第三章为硬件系统设计,采用整体与局部相结合的叙述方式,介绍整体方案及各输入输出模块,如按键模块、数码管模块和蜂鸣器模块等。
第四章为系统软件设计,使用C语言编写程序,插入流程图并配以文字说明,使软件设计清晰。
第五章为系统仿真部分,通过Proteus软件对原理图进行仿真和功能调试。
第六章为实物焊接及调试部分,列举元器件清单、焊接原则及功能调试。
第七章为总结部分,总结设计功能、遇到的问题及解决方案,以及通过此次设计所学到的知识。
第2章 总体设计方案
2.1 多路抢答器设计方案
本论文研究的主题是基于单片机的多路抢答器的设计与制作,采用八路通道抢答方式,以AT89C51单片机为核心设计出一款实用的八路抢答器。
八路抢答器以单片机最小系统为核心,输入部分包括按键模块和电源模块,输出部分通过数码管模块和蜂鸣器模块进行显示与报警。在硬件设计方面,使用DXP软件进行元件选型、原理图设计和PCB制作。在软件设计方面,使用C语言在Keil4开发环境下编写各部分程序。在仿真方面,利用Proteus 8.0软件进行原理图绘制和功能仿真。在实物组装部分,根据原理图选购元器件并进行焊接和调试,最终实现预期功能。
八路抢答器的基本功能是支持选手抢答和相关显示。接入电源后,按下开关,数码管显示“0000”。在主持人开始前,若有选手提前抢答,数码管将显示该选手编号并发出警告,蜂鸣器报警。主持人按下抢答按键后,数码管进入30秒抢答倒计时,最后5秒内蜂鸣器报警;若无人抢答,则回合结束,数码管显示“----”。如有选手抢答,数码管显示选手编号,进入15秒答题倒计时,最后5秒内蜂鸣器报警,答题时间结束后,数码管显示“----”。本轮答题结束后,主持人可通过复位按键重置。此外,电路可通过时间设置按键调整抢答和答题时间。
2.2 元器件选型
2.2.1 选型原则
本多路抢答器由多个模块组成,包括单片机最小系统、按键模块、蜂鸣器模块、数码管模块和电源模块。为了确保各模块实现理想功能并紧密配合,元器件的选型至关重要。
在用DXP软件绘制原理图之前,需要在元件库中选择所需的相关元器件。选择元器件时,首先要考虑功能是否满足设计需求;其次,选择性价比高、易获取的元器件;对于需要封装的元器件,应选择具有封装的类型;对于有参数的元器件(如电阻、晶振等),应根据硬件设计需求选择合适参数;对于有极性的元器件(如极性电容、三极管等),要注意方向和型号,以避免因元件类似而导致仿真失败;最后,尽量选择常见易购的元器件,以便于实物焊接。
2.2.2 各模块元器件选择
(1)单片机最小系统
元件选择:1个AT89C51单片机U1,1个九管脚排阻(102)R1,1个10μF电容C1,1个10K电阻R2,1个12M晶振,2个30pF电容C2、C3,1个按键K11。
选择AT89C51单片机的原因是其体积小、使用方便、易于获取、性价比高且功能强大。九管脚排阻用于连接引脚和单片机,以输出5V电压,其中一个连接VCC,八个连接数码管段选端。选择12M晶振是为了每秒产生12000000个正弦波,以保证定时准确。
(2)按键模块
元件选择:10个独立式按键K1~K10。
按键K1~K8对应八个选手的抢答按钮,连接单片机的P1.0~P1.7引脚;按键K9和K10分别为开始抢答按键和时间设置按键,连接单片机的P2.0和P2.1引脚。独立按键有四个管脚,在连接时只需连接相对的两个管脚即可。
(3)**蜂鸣器
元件选择:1个PNP型三极管Q1;1个蜂鸣器DEEP1。
其中,选择PNP三极管的目的是为了利用三极管的开关作用,通过连接单片机和蜂鸣器,进而实现报警功能;蜂鸣器为了发出声响,实现提醒答题时间和违规功能。蜂鸣器原理图和实物图如图2.2和图2.3所示。
(4)数码管模块
元件选择:1个四位共阴极数码管Dpy1。
其中,选择四位数码管是为了满足设计功能需求,需要同时显示4位数字,其中包含选手编号、分割符、两位数倒计时等;采用共阴极数码管的目的是为了将公共端接地即可,使用方便快捷;此处采用数码管而没有使用液晶显示屏的原因是本次设计显示内容量相对较少,四位数码管就可以清楚展示相应内容,LCD屏相对来说浪费设计空间,成本过高,性价比低。数码管原理图和实物图如图2.4和图2.5所示。
图2.4 数码管原理图 图2.5 数码管实物图
(5)电源模块
元件选择:1个电源座J1;1个开关SW1。
其中,电源座选取最常见的即可,只需要连接电源,无过多功能要求;开关的引入是为了控制电路板通电情况,可随时断电通电,保证电路安全。
第3章 硬件系统设计
3.1 八路抢答器整体方案设计
3.1.1 系统概述
整个系统以AT89C51单片机为核心,结合晶振、电阻、电容等构成单片机最小系统。系统原理图如图3.1所示。
系统输入:抢答器的输入信号来自两个部分:一是主持人通过按键模块中的抢答控制按键、时间设置按键和复位按键进行控制;二是八位选手通过按键模块中的抢答按键进行输入。系统正常工作依赖于电源模块提供的5V电压输入。
系统输出:抢答器通过蜂鸣器模块和数码管模块以声光方式输出。当出现违规或需要提醒时,蜂鸣器报警;选手抢答、违规及倒计时信息通过四位共阴极数码管显示。
3.1.2 系统框图
系统框图如图3.2所示,八路抢答器由五个模块组成。以单片机最小系统为核心,包含AT89C51单片机、晶振电路和复位电路;输入部分包括选手按键抢答模块、主持人控制模块和电源模块;输出部分由数码管显示模块和蜂鸣器报警模块组成。
3.2 单片机最小系统设计
3.2.1 AT89C51单片机
(1)单片机特点
单片机是在一片半导体硅片上集成了CPU、存储器(RAM/ROM)、I/O接口、定时器、中断系统等功能的微型计算机。单片机体积小、价格低、应用方便且稳定可靠,推动了电子设备的研究与进步。用户可根据需求设计以单片机为核心的系统,配合外围接口电路及外设,编写相应程序实现测控功能。
(2)AT89C51单片机概述
AT89C51RC是STC公司生产的一种低功耗、高性能CMOS 8位微控制器,具备8K字节可编程Flash存储器,兼容传统8051单片机,支持12时钟/机器周期和6时钟/机器周期选择。与AT89C51相比,STC单片机提供更大的512字节数据存储空间和2K字节EEPROM存储空间,且具有更强的抗干扰能力,性价比高。
(3)8051单片机的引脚功能
AT89C51单片机采用40个引脚,具备32个外部双向I/O端口、3个16位定时计数器和2个全双工串行通信口。其引脚排列如图3.5所示。
电源引脚
VCC (40脚):接+5V电源。
GND (20脚):接地。
时钟引脚
XTAL1 (19脚):连接外部晶体或时钟源。
XTAL2 (18脚):连接外部晶体或悬空。
控制引脚
RESET (9脚):复位信号输入端,高电平有效。
ALE (30脚):提供低8位地址锁存信号。
并行I/O口引脚
P0口:漏极开路的双向I/O口,用于扩展外部存储器及I/O接口。
数码管模块电路采用四位共阴极数码管,利用动态扫描显示方式点亮数码管,如图3.11所示。单片机向I/O (P0.0~P0.7) 端口发出段码,通过I/O (P2.4~P2.7) 控制数码管的位选线,实现动态扫描显示。
3.6 电源模块设计
电源模块由一个电源座J1和一个控制开关SW1组成,如图3.12所示。采用+5V直流电源供电,支持充电宝、手机插头、电脑USB接口等设备。
第4章 系统软件设计
4.1 程序语言及开发环境
本次软件设计在Keil uVision4开发环境中进行,采用C语言编写程序,以实现八路抢答器的基本功能。C语言是一种广泛使用的高级程序设计语言,适用于系统软件和应用软件的开发。它以其简洁紧凑的语法、丰富的运算符和高效的执行速度,成为最流行的面向过程的编程语言之一。
C语言的编程流程包括编辑源代码、编译、链接目标程序以及运行可执行程序等步骤。相较于其他编程语言,C语言的灵活性和自由度更高,语法限制较小,适合各种复杂的应用开发。
Keil uVision4是一款专为单片机编程设计的开发工具,支持C语言编写。该软件提供丰富的库函数和强大的编译调试工具,能够高效地生成目标代码,简化了开发过程,使程序员能够更快速地实现功能。
4.2 程序流程设计
4.2.1 总体程序设计
八路抢答器的总体设计流程图如图4.1所示。在系统程序设计中,涉及多个关键程序模块,包括8位选手按键扫描程序、EEPROM设置程序、答题时间设置程序、延时程序,以及AT89C51单片机的两个定时器(定时器0和定时器1)服务程序。特别地,程序中还包括四位数码管的动态扫描程序和50ms的计时程序。
在程序编写的初期,首先引入必要的头文件,设置寄存器的初始值,并定义蜂鸣器、数码管、按键等引脚。接着,依次初始化定时器,编写8个选手的抢答按键扫描程序、答题和抢答时间设置程序,以及定时器0和定时器1的服务程序,最后进入主函数的编写阶段。
初始化单片机后,程序进入一个主循环,如图4.1所示。首先,主持人可以判断是否设置了抢答时间和答题时间。如果未设置,主持人可以通过设置按键进行配置;如果已设置,则进入答题流程。在主持人按下开始抢答按键之前,程序会监测是否有选手抢答。如果有选手抢答,蜂鸣器将发出报警,数码管显示违规信息和选手编号;如果没有选手抢答,系统将保持待命状态,等待主持人的指令。一旦开始抢答键被按下,系统将进入抢答时间的倒计时。如果在最后5秒内没有选手抢答,蜂鸣器将持续鸣响,表示时间结束,当前轮抢答结束;如果在倒计时期间有选手抢答,系统将转入答题时间的倒计时。在答题时间倒计时期间,程序将判断倒计时是否仅剩5秒,如果是,蜂鸣器开始报警;如果答题时间到达0,抢答将停止,数码管显示“----”,蜂鸣器报警,当前轮答题结束。
4.2.2 数码管动态扫描程序
本设计采用数码管动态扫描法,通过编写程序控制单片机依次点亮四位数码管,并进行短暂的延时。由于每位数码管的点亮时间仅为2毫秒,切换速度非常快,人的眼睛无法察觉,因此利用视觉暂留效应,使其看起来像是四位数码管同时被点亮。数码管的动态扫描流程图如图4.2所示。
4.2.3 时间设置程序
为了便于根据实际情况调整抢答时间和答题时间,设计了手动时间设置程序。使用者可以通过时间设置按键对时间进行修改。在编写过程中,将抢答时间按键和答题时间按键合并为一个,优化了界面设计,节省了硬件空间。同时,原本的七号和八号选手抢答按键的功能被修改为在时间设置模式下用于时间的增减。具体设计流程如图4.3所示。
在初始状态下,裁判按下时间设置按键后,系统进入抢答时间设置模式,此时数码管显示“E-30”(30为预设抢答时间)。在此过程中,程序将判断七号和八号按键是否被按下:若七号按键被按下且显示时间大于0,则时间减少;若八号按键被按下且显示时间小于99,则时间增加。完成抢答时间的设置后,再次按下设置按键即可进入答题时间设置模式,此时数码管显示“F-15”(15为预设答题时间)。此过程与抢答时间设置相似,通过判断按键进行时间的
为了方便根据实际情况对所设计的八路抢答器的抢答时间和答题时间进行修改,通过C语言汇编软件编写了手动时间设置程序。使用者可根据现场答题规则的实际情况,通过时间设置按键对时间进行修改。在软件编写过程中,将抢答时间按键和答题时间按键合并成一个,方便修改,节省了实物空间。此外,将原本的七号和八号选手抢答按键的功能也修改为,在时间设置模式下,具有对时间减和加的功能。具体设计流程如图4.3时间程序流程图所示。
在初始状态下,裁判按下时间键设置按键,首先进入抢答时间设置模式,同时数码管上显示“E-30”(30为预设抢答时间)。该过程中先判断七号和八号按键是否被按下,若七号按键被按下,同时显示时间大于0,则可以通过七号按键对时间进行减少,否则时间不变;若八号按键被按下,同时显示时间小于99,则可以通过八号按键对时间进行增加,否则时间不变。对抢答时间修改好后,再次按下设置按键,即可进入到答题时间设计模式,同时数码管上显示“F-15”(15为预设答题时间)。在此过程中,流程和抢答时间设置过程相同,都是通过判断,用七号和八号按键对时间进行减加。设置完答题时间后,再次按下时间设置按键,即可返回到初始状态,数码管上显示“0000”。
4.3 系统程序调试
本次设计的八路抢答器系统的程序是采用C语言编写的,通过keil4软件对程序进行编译调试。编写程序时以主函数为主体,依次对数码管显示函数、8个按键抢答函数、蜂鸣器函数、延时函数进行调用,经过编译仿真,确保程序正确。在写完程序后需要进行保存编译,如果出现错误,需要根据箭头显示找到出错位置,然后进行相应的修改,在修改之后再进行保存编译,直到出现“0 Error”的字样。此外,编译程序的结果往往伴随着警告,若无细节要求,即可对警告进行忽略。
第5章 系统仿真
5.1 系统仿真软件
Proteus仿真软件是由英国Lab Center Electronics公司开发的一款强大的EDA工具。它不仅具备一般EDA软件的仿真功能,还能够输入程序到单片机进行单片机及其外围电路的仿真。Proteus软件实现了从原理图布局、代码加载到单片机及外围电路的完整仿真,甚至可以切换到PCB设计,形成一个集成的设计流程。该软件拥有超过两万个仿真器件,提供丰富的激励源,具有直观的仿真显示,并具备完整的PCB设计功能,包括编译和调试等。这些特点使Proteus成为目前最常用的原理图仿真软件之一。
5.2 原理图仿真
在打开Proteus软件后,根据DXP所创建的原理图,用户可以在元件库中(通过点击左侧的“P”键)搜索构建八路抢答器所需的相关元器件,并对同类元器件进行选型,如图5.1所示。
在完成元器件的选择后,按照原理图中的对应位置将元器件放置,并通过绘制导线将各个管脚相连接,最后添加电源和接地。为了确保仿真能够成功进行,需要将通过Keil4编译好的系统软件程序写入到AT89C51单片机中。具体操作为双击单片机图标,选择“Program File”选项,将程序文件Project.hex导入到单片机中。
接下来,用户可以进入仿真实验,点击左下角的“开始仿真”按钮。如果仿真过程中没有报错,且原理图能够正常仿真,则可以实现预期的所有功能。例如,在开始抢答后,3号选手成功抢答并进入答题倒计时的场景如图5.2所示。在暂停过程中,数码管部分的点亮也表明数码管是以动态扫描的方式运行的。在完成各项功能的调试后,用户可以点击“结束”按钮。
- 实物焊接与调试
6.1 元件清单
本次八路抢答器设计的主要元器件包括:AT89C51单片机、晶振、电阻、电容、按键、开关、电源座、三极管、蜂鸣器和数码管等。其中,晶振采用12MHz,电容为两个30pF和一个10μF。电路中使用的电阻为10K,需用万用表测量阻值,以确保实际成品与理论设计一致。具体的元件清单见表6.1。
表格
元件名称 数量
AT89C51单片机 1
晶振 1
电阻 若干
电容 3
按键 若干
开关 1
电源座 1
三极管 若干
蜂鸣器 1
数码管 4
6.2 电路板焊接
在电路板焊接过程中,元器件的插放顺序应遵循“先小后大,先低后高”的原则,即先焊接体积较小的元件,再焊接体积较大的元件。焊接时应确保元件的分布清晰、有条理,整体外观美观且实用性强。对于有极性的元器件,必须严格按照原理图上的安装要求进行安装,避免装反。焊接过程中,应避免虚焊和漏焊,电烙铁在电路板上的停留时间不宜过长,以防烧坏元件和电路板。同时,电烙铁的温度应保持适宜,过高或过低的温度都会导致焊接不良。
6.3 实物调试
焊接完成后,需仔细对照原理图检查实物焊接电路,确保元器件摆放正确、齐全,导线连接无误。使用万用表测量电阻两端的阻值,并对蜂鸣器两端通电,检查其是否正常工作。
在确认无误Keil4开发环境下利用所学的C语言对软件程序进行编译和调试,然后再通过Proteus仿真软件,将软硬件进行结合进而实现八路抢答器的功能。最后对照所设计的原理图焊接实物,得到成品。在这些过程中并不是一帆风顺,遇到了在原理图设计过程中找不到合适的电阻和电容,对单片机了解不深刻等问题,但最后都通过询问老师,查阅资料的方法得到了解决。本次设计具有的创新点是加入了时间设置模块。通过总结这次设计,回头反思还可加入计分模块,对选手答题分数进行统计显示。
本次设计为我大学四年的学习画上了完美的句号。回想在这大学四年里学到了不少有关单片机,汇编语言等知识,通过这次毕业设计不仅加深了我对所学知识的掌握,还促进了我对新知识的学习,是我对知识的应用更加牢靠,让我受益匪浅。
附录:
附录1:系统原理图
附录2:系统仿真图
附录3:焊接实物图
相关文章:

基于AT89C51单片机的可暂停八路抢答器设计
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下: 摘要 随着社会进步和科技发展,电子设备在各类活动中的应用日益普遍,…...

面试题解,Java中的“对象”剖析
一、说一说JVM中对象的内存布局?new一个对象到底占多大内存? 话不多说,看下图,对象的内存布局图 一个对象的内存布局主要由三部分组成:对象头(Object Header)、实例数据(Instance D…...

行为模式3.迭代器模式
行为型模式 模板方法模式(Template Method Pattern)命令模式(Command Pattern)迭代器模式(Iterator Pattern)观察者模式(Observer Pattern)中介者模式(Mediator Pattern…...

第8章 DMA控制器
DMA的基本概念 DMA是用硬件实现不再通过CPU的,计算机内存储器与I/O设备之间的直接数据传送技术。该硬件称为DMA控制器(简称DMAC),用来控制数据的输入和输出,复杂性堪比CPU。 DMA方式可实现: 数据存储器RAM→I/O端口的DMA读传送I/O…...

后端java开发路由接口并部署服务器(四)
一、安装IntelliJ IDEA,安装包下载 1、官网下载 2、网盘资源 安装包下载完成后进行傻瓜式下一步安装就可以了 打开IntelliJ IDEA,输入网盘资源文件内容 三、汉化处理 插件搜索chinese,就会找到相应的插件安装重启软件即可 四、新建后端j…...

检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?
论文地址:https://arxiv.org/pdf/2403.05313 Github地址:https://github.com/CraftJarvis/RAT 想象一下,一个人工智能助手可以像莎士比亚一样写作,像专家一样推理。这听起来很了不起,对吧?但是࿰…...

在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)
文章目录 1. 什么是聚合列?2. 什么是非聚合列?3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中?5. 如何判断一个列是聚合列还是非聚合列?6. 总结 在 SQL 中&#…...

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations
Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好,没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…...

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
一:步进电机简介 步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正…...

MotionCtrl: A Unified and Flexible Motion Controller for Video Generation 论文解读
目录 一、概述 二、相关工作 三、前置知识 1、LVDM Introduction 2、LVDM Method 3、LVDM for Short Video Generation 4、Hierarchical LVDM for Long Video Generation 5、训练细节 6、推理过程 四、MotionCtrl 1、CMCM 2、OMCM 3、训练策略 五、实验 一、概述…...

LINUX线程操作
文章目录 线程的定义LINUX中的线程模型一对一模型多对一模型多对多模型 线程实现原理线程的状态新建状态(New)就绪状态(Runnable)运行状态(Running)阻塞状态(Blocked)死亡状态&#…...

在Lua中,Metatable元表如何操作?
Lua中的Metatable(元表)是一个强大的特性,它允许我们改变表(table)的行为。下面是对Lua中的Metatable元表的详细介绍,包括语法规则和示例。 1.Metatable介绍 Metatable是一个普通的Lua表,它用于…...

4D LUT: Learnable Context-Aware 4D LookupTable for Image Enhancement
摘要:图像增强旨在通过修饰色彩和色调来提高照片的审美视觉质量,是专业数码摄影的必备技术。 近年来,基于深度学习的图像增强算法取得了可喜的性能并越来越受欢迎。 然而,典型的努力尝试为所有像素的颜色转换构建统一的增强器。 它…...

瑞芯微rk3568平台 openwrt系统适配ffmpeg硬件解码(rkmpp)
瑞芯微rk3568平台 openwrt系统适配ffmpeg硬件解码(rkmpp) RK3568及rkmpp介绍编译安装mpp获取源码交叉编译安装 libdrmlibdrm-2.4.89 make 方式编译(cannot find -lcairo, 不推荐)下载源码编译编译错误: multiple definition of `nouveau debug‘错误cannot find -lcairo:…...

使用SuperMap制作地形图的详细教程
一、数据准备 本示例以山东为例,演示如何通过SuperMap iDesktopX制作一个好看的地形图。所有数据均来源于互联网公开数据,如有自己项目真实数据,可直接跳过数据下载进入下一步。 本示例所需数据包括: 数据类别 数据类型 DEM数据…...

PHP Array:精通数组操作
PHP Array:精通数组操作 PHP,作为一门流行的服务器端编程语言,提供了强大的数组处理能力。数组是PHP中非常灵活和强大的数据结构,它可以存储多个相同类型的值。在PHP中,数组不仅可以存储数字,还可以存储字…...

【使用命令配置java环境变量永久生效与脚本切换jdk版本】
java配置环境变量命令与脚本切换jdk版本 新建用户环境变量永久生效 setx JAVA8_HOME "D:\Java\jdk8" setx JAVA17_HOME "d:\Java\jdk-17" setx JAVA_HOME %JAVA8_HOME% setx CLASSPATH ".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;"…...

STM32-笔记32-ESP8266作为服务端
esp8266作为服务器的时候,这时候网络助手以客户端的模式连接到esp8266,其中IP地址写的是esp8266作为服务器时的IP地址,可以使用ATCIFSR查询esp8266的ip地址,端口号默认写333。 当esp8266作为服务器的时候,需要完成哪些…...

RAG(Retrieval-Augmented Generation,检索增强生成)流程
目录 一、知识文档的准备二、OCR转换三、分词处理四、创建向量数据库五、初始化语言聊天模型1.prompt2.检索链3.对话 完整代码 知识文档的准备:首先需要准备知识文档,这些文档可以是多种格式,如Word、TXT、PDF等。使用文档加载器或多模态模型…...

【Python学习(六)——While、for、循环控制、指数爆炸】
Python学习(六)——While、for、循环控制、指数爆炸 本文介绍了While、for、循环控制、指数爆炸,仅作为本人学习时记录,感兴趣的初学者可以一起看看,欢迎评论区讨论,一起加油鸭~~~ 心中默念:Py…...

解释一下:运放的输入失调电流
输入失调电流 首先看基础部分:这就是同相比例放大器 按照理论计算,输入VIN=0时,输出VOUT应为0,对吧 仿真与理论差距较大,有200多毫伏的偏差,这就是输入偏置电流IBIAS引起的,接着看它的定义 同向和反向输入电流的平均值,也就是Ib1、Ib2求平均,即(Ib1+Ib2)/2 按照下面…...

力扣hot100——二分查找
35. 搜索插入位置 class Solution { public:int searchInsert(vector<int>& a, int x) {if (a[0] > x) return 0;int l 0, r a.size() - 1;while (l < r) {int mid (l r 1) / 2;if (a[mid] < x) l mid;else r mid - 1;}if (a[l] x) return l;else …...

PHP 使用集合 处理复杂数据 提升开发效率
在 PHP 中,集合(Collections)通常是通过数组或专门的集合类来实现的。 集合(Collection)是一种高级的数据结构,可以提供比普通数组更强大的操作和功能,特别是当你需要更复杂的数据处理时。 La…...

Unity 对Sprite或者UI使用模板测试扣洞
新建两个材质球: 选择如下材质 设置如下参数: 扣洞图片或者扣洞UI的材质球 Sprite或者UI的材质球 新建一个单独Hole的canvas,将SortOrder设置为0,并将原UI的canvans的SortOrder设置为1 对2DSprite则需要调整下方的参数 hole的O…...

unity学习3:如何从github下载开源的unity项目
目录 1 网上别人提供的一些github的unity项目 2 如何下载github上的开源项目呢? 2.1.0 下载工具 2.1.1 下载方法1 2.1.2 下载方法2(适合内部项目) 2.1.3 第1个项目 和第4项目 的比较 第1个项目 第2个项目 第3个项目 2.1.4 下载方法…...

PHP后执行php.exe -v命令报错并给出解决方案
文章目录 一、执行php.exe -v命令报错解决方案 一、执行php.exe -v命令报错 -PHP Warning: ‘C:\windows\SYSTEM32\VCRUNTIME140.dll’ 14.38 is not compatible with this PHP build linked with 14.41 in Unknown on line 0 解决方案 当使用PHP8.4.1时遇到VCRUNTIME140.dll…...

CDP集群安全指南-动态数据加密
[〇]关于本文 集群的动态数据加密主要指的是加密通过网络协议传输的数据,防止数据在传输的过程中被窃取。由于大数据涉及的主机及服务众多。你需要更具集群的实际环境来评估需要为哪些环节实施动态加密。 这里介绍一种通过Cloudera Manager 的Auto-TLS功能来为整个…...

【shell编程】报错信息:Undefined Variable(包含6种解决方法)
大家好,我是摇光~ 当Shell脚本报错“Undefined Variable”时,是未定义变量的意思。 以下是对每个可能原因及其对应详细解决方案的详细解释: 原因1:拼写错误 原因: 脚本中变量名的拼写在使用和定义时不一致。例如&…...

Dubbo扩展点加载机制
加载机制中已经存在的一些关键注解,如SPI、©Adaptive> ©Activateo然后介绍整个加载机制中最核心的ExtensionLoader的工作流程及实现原理。最后介绍扩展中使用的类动态编译的实 现原理。 Java SPI Java 5 中的服务提供商https://docs.oracle.com/jav…...

unity学习7:unity的3D项目的基本操作: 坐标系
目录 学习参考 1 unity的坐标系 1.1 左手坐标系 1.2 左手坐标系和右手坐标系的区别 1.3 坐标系的原点(0,0,0) 2 坐标系下的具体xyz坐标 2.1 position这里的具体xyz坐标值 2.2 父坐标 2.3 世界坐标和相对坐标 2.3.1 世界坐标 2.3.2 相对坐标 2.4 父物体,…...