- 博客(98)
- 资源 (2)
- 收藏
- 关注
原创 Linux 定时器应用示例(修正版)
这段C程序实现了一个基于虚拟定时器(SIGVTALRM)的定时处理功能。程序设置了一个每秒触发一次的定时器(ITIMER_VIRTUAL),当定时器触发时调用timer_handler函数输出信号值和计数。当计数达到8次后,程序会取消定时器。主函数中设置定时器后进入无限循环以保持程序运行。程序演示了使用setitimer()创建定时器、signal()处理信号以及取消定时器的方法。
2025-07-16 17:28:53
585
原创 Linux 定时器应用示例
该程序实现了一个基于虚拟定时器的计数功能。程序通过setitimer()设置ITIMER_VIRTUAL定时器,初始间隔为100ms,之后每隔1秒触发SIGVTALRM信号。信号处理函数timer_handler()会打印信号值和递增的计数值,当计数达到8次后取消定时器。主程序在无限循环中等待信号,期间会显示"Hello World!"和分隔线。程序展示了Linux下使用虚拟定时器进行周期性任务处理的基本方法。
2025-07-16 17:10:32
239
原创 一个用于在 Ubuntu 22.04.3 LTS 上显示文件系统超级块信息的 C 程序
本文介绍了一个用于查询Linux文件系统信息的C语言程序。程序通过调用statvfs()系统调用获取指定路径的文件系统超级块信息,包括块大小、总块数、空闲块数、inode数量等详细参数。程序还能计算并显示空间使用情况,包括总空间、可用空间和已用空间百分比。使用时需传入挂载点路径作为参数,程序会进行参数检查并处理可能的错误。输出结果以清晰格式呈现,便于用户了解文件系统的存储状态和资源使用情况。该工具适用于系统管理员监控磁盘空间使用情况。
2025-07-16 13:31:23
269
原创 读取ubuntu的磁盘分区表与超级块
本文介绍了如何通过计算磁盘分区偏移量来定位和验证EXT4文件系统的超级块。首先使用fdisk -l读取分区表,确定分区起始偏移为4096个扇区(2097152字节)。然后计算超级块位置为2097152+1024=2098176字节。最后用dd命令跳过2098176+56字节,读取2个字节验证是否存在EXT4魔数"53"。该方法通过十六进制检查快速确认文件系统类型。
2025-07-15 20:56:17
182
原创 Linux 0.11 中,磁盘分区信息
Linux 0.11的磁盘分区信息存储在MBR(主引导记录)中,位于磁盘第一个扇区(0柱面0磁头1扇区)。MBR包含4个16字节的分区表项,由结构体partition_table_entry定义,记录分区起始位置、大小和类型等信息。内核通过hd.c中的partition_setup()函数读取MBR并解析分区表,将主分区映射为/dev/hd1-4设备文件。由于MBR限制,系统仅支持4个主分区,不支持扩展分区或245个分区。调试时可添加打印语句查看分区信息,或使用宿主系统的fdisk工具查看分区表。
2025-07-14 14:39:17
837
原创 电脑屏幕截图 如何自动保存为图片文件
摘要:本文介绍了3种微信截图自动保存的方法。1)微信内置功能:在电脑版设置中开启"截图时自动保存到电脑"并自定义路径;2)系统快捷键:使用Win+Shift+S截图后粘贴保存,或查找系统临时文件夹;3)第三方工具:推荐Snipaste(按F1截图保存)和ShareX(可设置自动保存路径)。第一种方法最便捷,适合长期使用微信截图的用户。
2025-07-14 11:23:57
841
原创 在 Windows 主机和 VMware 虚拟机中的 Ubuntu 系统之间实现复制粘贴,
摘要:在Ubuntu虚拟机中启用与Windows的剪贴板共享,推荐安装Open-VM-Tools工具包。通过终端命令安装后重启系统,并在VMware设置中勾选"启用复制粘贴"选项。安装完成后,即可实现主机与虚拟机间的双向文本复制粘贴功能(Ctrl+V)。该方法无需额外下载软件,利用Ubuntu内置工具即可快速建立剪贴板共享。(98字)
2025-07-14 10:54:58
304
原创 开机自动启动同花顺,并设置进程优先级为高
摘要:通过创建批处理文件启动同花顺并设置高优先级,再将其快捷方式放入系统启动文件夹,可实现开机自动运行。步骤如下:编辑批处理文件运行hexin.exe并设为高优先级,创建快捷方式后复制到shell:startup目录,重启后即可自动启动,任务管理器可验证进程优先级。
2025-07-13 16:35:08
161
原创 c# U盘映像生成工具
这是一个C#编写的U盘映像生成工具代码,主要功能是将U盘内容创建为磁盘映像文件(.img)。程序采用Windows窗体界面,包含驱动器选择、保存路径设置和进度显示功能。核心实现使用了Windows API函数进行物理驱动器访问,包括CreateFile、ReadFile和DeviceIoControl等,通过后台线程执行扇区级读写操作。程序需要管理员权限运行,会自动检测并提示用户提升权限。界面采用现代深色设计,实时显示进度和传输速度。该工具适用于备份U盘完整内容,包括文件系统和隐藏扇区数据。
2025-07-07 15:44:13
274
原创 用c#一款U盘批量按扇区复制的程序
摘要:本文介绍了一个U盘扇区级批量复制工具的C#实现。该程序通过调用Windows API函数进行底层磁盘操作,支持将源U盘数据以扇区方式批量复制到多个目标U盘。主要功能包括:检测可移动磁盘、显示磁盘信息、选择源盘和目标盘、扇区级数据复制以及进度显示。程序采用512字节扇区标准,使用1MB缓冲区提高复制效率,并包含错误处理和进度监控功能。核心方法包括OpenPhysicalDrive、GetDiskSizeInSectors、ReadSectors和WriteSectors等,确保数据的精确复制。
2025-07-07 10:09:34
117
原创 8088单板机实验系统简介
8088单板机是一款基于Intel8088CPU的教学实验设备,配备64K ROM和32K RAM,集成多种接口芯片(8255、8253、8259和PC16550)。该设备通过USB转串口芯片CH340实现通讯和供电,支持Windows系统驱动安装。用户可通过串口助手观察处理器运行状态,包括LED和数码管显示。配套资源包含实验指导书、EMU8086编译软件及示例程序,支持程序下载和自动运行功能,适用于微机原理教学和实践操作。
2025-07-06 09:22:26
230
原创 用C#编写一个读取磁盘第一扇区的程序
摘要:该C#程序用于读取逻辑驱动器G的引导扇区内容。程序以管理员权限运行,打开G盘并读取512字节的标准扇区数据,将结果以十六进制格式显示并保存为"G_BootSector.bin"文件。包含异常处理机制,针对权限不足、驱动器不存在等情况提供错误提示。该工具适用于磁盘扇区数据分析和取证场景。
2025-07-03 16:07:59
180
原创 C# 程序:查看 PageUp 热键消息映射表
摘要:该程序是一个PageUp热键消息映射查看器,通过枚举所有顶层窗口并尝试注册不同修饰键组合(Alt/Ctrl/Shift/Win)的PageUp热键来检测已被占用的热键组合。对于检测到的热键,程序会收集相关信息包括修饰键组合、窗口标题、类名和所属进程名称,并在表格中展示结果。程序使用Windows API函数实现功能,提供刷新按钮以重新检测热键状态,界面包含数据网格和状态标签,支持查看系统所有PageUp热键的占用情况。
2025-07-01 20:30:21
192
原创 C#写破解rar文件密码例程
这是一个C#编写的RAR压缩文件密码恢复工具。该程序通过加载密码字典文件,逐个尝试密码来破解受密码保护的RAR文件。主要功能包括:选择RAR文件和密码字典、显示恢复进度、统计尝试密码数量和速度、计算剩余时间等。程序采用后台线程运行密码破解过程,避免UI冻结,并提供取消操作功能。同时包含使用条款声明,强调工具仅用于教育目的和合法拥有的文件。界面设计采用暗色调风格,包含进度条、状态显示和当前尝试密码等控件。
2025-06-29 14:14:40
174
原创 用C#编写一个控制台程序
本文介绍了如何使用C#编写串口通信控制台程序。程序主要功能包括:1)列出可用串口;2)选择指定串口并配置参数(9600波特率、8数据位、无校验、1停止位);3)发送和接收字符串。代码通过SerialPort类实现串口操作,使用多线程处理数据收发,并支持UTF-8编码。程序运行时显示可用串口列表,用户选择后自动建立连接,可输入文字发送或接收数据,输入"exit"可退出程序。该程序提供了基本的串口通信功能,适合串口调试和简单数据交互场景。
2025-06-28 15:14:23
266
原创 用来提升同花顺软件进程优先级的C#程序
摘要:这是一个C#程序,用于提升同花顺炒股软件(hexin.exe)的运行优先级以解决卡顿问题。程序首先检查管理员权限,然后通过Process类将目标进程设置为高优先级。可选功能还包括创建计划任务(通过XML配置),使设置永久生效。程序包含5秒自动关闭功能,并提供详细的错误处理。主要技术包括:进程优先级设置、管理员权限验证、计划任务创建等。开发者可根据需要选择仅临时设置或永久配置。
2025-06-27 21:04:26
545
原创 如何在Windows上让某个应用程序优先运行,获得最快的速度
摘要:通过任务管理器可以调整应用程序的运行优先级来提升性能。打开任务管理器后找到目标进程,右键选择"设置优先级",建议选择"高于正常"以获得适度性能提升且不影响系统稳定性。注意优先级设置只在当前运行有效,重启程序后会恢复默认。高优先级需谨慎使用,而"实时"优先级可能导致系统卡死,不建议选择。此方法适用于Windows10/11系统。(149字)
2025-06-26 13:54:25
1003
原创 Proteus8.0 打开前期版本的操作方法
摘要:在Proteus8.0中导入旧版本项目的方法:首先打开软件,通过File菜单选择Import Legacy Project功能;然后点击Browse按钮,找到并选择包含.dsn文件的示例目录;接着打开目标.dsn文件,点击Import完成导入;最后即可直接运行项目。该方法简单易操作,适用于需要迁移旧版本项目的用户。
2025-06-24 10:24:59
199
原创 8088单板机的Mini Boot
摘要 本文探讨了为8088单板机系统添加bootloader的必要性和实现方法。由于8088系统开发环境受限,频繁烧写程序测试效率低下,作者提出通过串口实现PC与单板机间的程序传输方案。文章介绍了bootloader的基本概念,指出其硬件依赖性特点,同时分析其共性功能。尽管不同系统需要定制化bootloader,但典型结构都包含硬件初始化、程序加载和操作系统引导等基本功能。该方案利用现成的串口调试工具,简化了开发流程,为8088系统提供了一种高效的测试方法。
2025-06-21 11:07:12
349
原创 一款复古的Intel8088单板机制作
这篇文章探讨了8088处理器的历史意义及其在计算机发展中的关键地位。文章指出8088是英特尔4004微处理器的直系后代,虽与8086几乎相同,但被IBM选中用于首台个人PC(1981年),开启了个人电脑新时代。作者强调8088的"纯正血统"使其成为全球微机原理教学的标准,并通过《权利的游戏》类比其技术传承的重要性。文章还表达了通过亲手制作单板机来体验早期计算机先驱创作过程的乐趣,引发读者对技术起源的思考。
2025-06-21 10:53:36
246
原创 8088单板机的内存
微处理器系统中内存配置至关重要。8088单板机采用64K ROM(W27C512)和32K静态RAM(2256芯片),静态RAM无需刷新便于使用,而动态RAM仅在大容量需求时适用。8088CPU上电时从FFFF0h地址执行指令,设计者通常在此放置跳转指令指向主程序。64K ROM被映射到F0000h-FFFFFh高端地址,32K RAM则位于00000h-07FFFh低端地址,形成合理的内存布局。
2025-06-20 20:15:23
180
原创 微机原理-8088单板机动手思考题
这是一组嵌入式系统开发实验项目,涵盖了基础I/O控制、中断处理、定时器应用和综合系统开发。实验内容包括:数码管显示控制、寄存器数据读取、8253定时器方波生成、NMI和8259中断处理、万年历时钟系统开发,以及通过扩展总线实现的交通信号灯和温度测量系统。最后还涉及示波器测试关键信号波形。这些实验循序渐进,从基本外设控制到综合系统设计,通过实践掌握嵌入式开发的核心技能。
2025-06-20 15:26:04
192
原创 8088单板机时钟电路8284
8284芯片是专为8088微处理器设计的时钟发生器,提供三种时钟方案:晶体振荡、外部时钟输入或从属模式。该芯片不仅生成精确时钟,还管理复位电路、控制就绪信号,并提供经过缓冲的晶体频率输出。实测波形显示其产生的时钟信号稳定可靠。作为英特尔8088配套IC系列的关键组件,8284显著简化了微处理器系统设计,在多处理器应用中尤为实用。其功能包括生成系统时钟(TTL电平,50%占空比)及其二分频信号。
2025-06-20 11:12:15
132
原创 使用 Visual Studio 创建安装包的完整指南
本文详细介绍了使用Visual Studio Installer Projects扩展为时钟程序创建专业安装包的完整流程。主要内容包括:安装扩展插件、准备应用程序、创建安装项目(添加主输出文件、创建桌面和开始菜单快捷方式)、添加卸载功能、配置图标和安装属性、设置开机启动注册表项,以及自定义安装界面等步骤。最后通过生成操作得到Setup.exe和Setup.msi两个安装文件。该教程一步步指导开发者如何将完成的应用程序打包成可分发安装包,并提供了包括快捷方式、卸载功能和开机启动等常见需求的实现方法。
2025-06-18 15:46:35
687
原创 自己动手,丰衣足食
该视频演示了一个自制的桌面时钟程序如何实现开机自动启动。作者通过简单的编程实现时钟功能,并讲解了如何设置程序在系统启动时自动运行,无需每次手动开启。这种方法适用于希望保持桌面时钟常驻的用户,展现了基础编程技能的实用价值。
2025-06-18 13:38:18
82
原创 CS_Prj02 用C#生成一个桌面指针式时钟 带日历 背景透明 程序
这是一个Windows桌面时钟程序的代码实现,主要功能包括: 指针式时钟显示,包含时、分、秒三根指针 顶部显示当前日期和星期信息 底部显示数字时间 支持鼠标拖动移动时钟位置 提供右键菜单设置功能,包括: 开机自动启动 透明背景设置 日期格式选择(4种格式可选) 使用注册表实现开机自启功能 程序采用C#编写,界面简洁,包含圆形表盘、刻度、指针等传统时钟元素,并提供个性化设置选项。
2025-06-18 10:46:58
211
原创 设置程序开机自动启动
Windows系统设置开机自启动的三种方法:1.通过启动文件夹(shell:startup)添加程序快捷方式;2.通过注册表编辑器(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run)添加程序路径;3.使用C#编程实现注册表修改(示例代码展示了完整的WinForms程序,包含开机启动开关功能)。前两种为手动操作方式,第三种为编程解决方案,通过Registry类操作注册表实现自动启动设置。
2025-06-18 09:11:17
392
原创 CS_Prj01 用C#生成一个桌面指针式时钟程序
摘要:这是一个C#实现的指针式时钟程序,使用Windows Forms创建。程序通过Timer每秒刷新一次界面,在窗体上绘制包含时分秒指针的模拟时钟和数字时间显示。时钟包含60个刻度标记(其中12个为整点刻度),三个不同长度和颜色的指针(时针、分针、红色秒针),以及中心点和底部数字时间。程序使用了Graphics类的绘图功能,通过三角函数计算指针位置,实现平滑的时钟动画效果。
2025-06-18 08:52:23
192
原创 微处理器到底是什么?
微处理器核心由算术逻辑单元(ALU)和指令解码器构成,前者执行基础运算,后者将复杂指令分解为基本操作。虽然现代CPU不断演进,但其本质功能仍依赖这两个关键组件。指令解码器通过预定义的指令集与ALU交互,使程序员无需直接处理底层操作,但必须严格遵循特定CPU的指令规则。成功设计需要兼顾硬件理解、软件掌握和系统化思维,任何违规操作都会带来严重后果。
2025-06-17 16:14:19
238
原创 Uart_Prj02 Windows 窗口版串口_Step4
摘要:本文展示了一个基于C#的串口通信工具,用于实现上位机界面与8088单板机的通信。该程序采用SerialPort类进行串口操作,支持数据发送和接收功能,界面包含启动/停止按钮、状态显示和收发计数器。通过多线程处理发送任务,在主线程中更新UI,实现了串行数据的实时传输和显示,同时处理了异常情况。程序使用深色主题界面,提供了清晰的通信状态监控。
2025-06-17 13:17:56
1107
原创 Uart_Prj02 Windows 窗口版串口_Step3
该代码展示了一个C# Windows窗体应用程序,实现串口通信功能。程序创建了包含状态显示、收发数据统计和文本显示区的UI界面,支持COM8端口9600bps的串口连接。主要功能包括:初始化串口、数据接收处理、状态更新和窗体关闭时的资源清理。代码使用SerialPort类进行串口操作,并通过多线程和委托机制实现UI的实时更新。程序采用暗色主题设计,具有发送计数、接收计数等统计功能,以及错误处理机制。
2025-06-17 11:15:23
107
原创 Uart_Prj02 Windows 窗口版串口_Step2
摘要:该代码实现了一个基于C# Windows Forms的串口通信工具界面,主要包含窗体初始化、控件创建和关闭确认功能。窗体采用深色主题(45,45,48背景色),包含标题、配置信息、状态显示区域、发送/清空按钮(采用扁平化设计),以及接收数据显示框(使用RichTextBox并设置为只读)。代码通过嵌套类ControlReference管理控件引用,并在窗体关闭时添加确认对话框。界面布局清晰,包含串口信息(COM8,9600bps)、收发数据统计等功能区域。
2025-06-16 20:19:09
332
原创 Uart_Prj02 Windows 窗口版串口_Step1
摘要:本文展示了使用C#开发Windows窗体版串口通信工具的过程。代码创建了一个800×600像素的暗色主题窗口,包含标题、配置信息、状态显示和发送按钮等控件。重点实现了窗体初始化(InitializeForm)和关闭确认(MainForm_FormClosing)功能,通过FormClosing事件处理程序防止意外退出。作者采用渐进式学习方法,每天逐步完善上位机编程技能,从控制台串口转向更复杂的窗口应用程序开发。
2025-06-16 19:47:24
215
原创 一些杂想20250615
摘要:作者回忆了从大学初次接触计算机的懵懂,到研究生用汇编语言编程的痛苦经历。出于对计算机工作原理的执着探索,他历经波折获取英文教材《8088ProjectBook》,最终成功用Intel8086搭建最小系统并点亮LED。在逐步实现8255等芯片驱动后,又完成了C语言驱动程序和BootLoader开发。尽管现代技术已使8086过时,但作者仍乐在其中,享受纯粹的技术乐趣。整个探索过程体现了对计算机原理的深刻理解和实践热情。
2025-06-15 19:57:32
144
原创 编程的乐趣,Very Good!
「Just for Fun!为8088单板机开发专属上位机串口程序」摘要:本文分享基于复古8088单板机的DIY串口通信开发过程,通过Python或C语言构建简易上位机程序,实现ASCII字符传输、LED控制等基础功能。重点解析了RS232协议适配、波特率设置(1200-9600bps)及16进制数据收发等关键技术,并提供了用串口调试助手测试的实用技巧。该项目兼顾怀旧趣味与技术实践,适合硬件爱好者体验早期计算机通信的原始魅力。(98字)
2025-06-15 14:51:18
92
原创 C# CS_Prj01 串口通信控制台程序
本文描述了一个C#实现的串口通信监控程序,主要功能包括:1)自动配置COM8串口(9600bps,8N1);2)每秒发送字符"A"并统计发送次数;3)实时接收并显示串口数据,处理特殊字符;4)支持通过Q键退出程序。程序采用多线程架构,分别处理数据发送和接收任务,并通过不同颜色区分控制台输出信息类型。实现中包含了错误处理机制,最后会显示通信统计信息(发送/接收数据量)。该程序适用于基本的串口通信测试和监控场景。
2025-06-15 14:29:14
508
原创 H-Prj09 8088单板机的中断控制器8259 串口接收中断
摘要:本文展示了一个PC16550 UART接收中断处理示例程序,实现了接收字符回显并显示中断状态的功能。程序通过初始化UART(基地址100H,波特率9600bps)、8259 PIC(端口400H/402H)和中断向量(IRQ1对应21H),建立中断服务例程来接收串口数据。当接收到字符时,程序会显示"Interrupt TRIGGERED"和"Received char"信息,并在中断结束时显示"Interrupt RELEASED"。主程序包
2025-06-15 10:31:31
232
原创 PC16550 UART接收中断处理完整示例代码
这是一个PC16550 UART接收中断处理示例代码,实现UART字符接收与中断管理。代码包含UART初始化(波特率9600bps)、8259 PIC配置(IRQ1对应中断21H)、中断向量设置和完整的中断服务程序。中断触发时显示"Interrupt TRIGGERED",接收字符后回显"Received char:",释放中断时显示"RELEASED(EOI sent)"并发送EOI命令。程序使用18.432MHz时钟,通过FIFO缓冲接收数据,
2025-06-15 09:44:18
195
原创 8088单板机8259中断的软件触发测试
摘要:本文介绍了8086/8088系统中基于8259 PIC和16550 UART设计的中断处理程序。程序通过硬件中断(IRQ1)和软件中断(INT 21H)两种方式触发中断,实现了UART数据接收、LED闪烁控制及中断计数功能。系统初始化配置了UART波特率、中断向量和8259控制器,采用环形缓冲区管理接收数据。主程序循环处理LED状态更新、中断计数器报告及数据回显,展示了硬件中断与软件中断的协同工作方式。程序还包含完善的初始化、中断服务、数据缓冲和状态报告等功能模块。(150字)
2025-06-14 13:47:02
327
原创 带中断计数器的UART接收中断程序 (8259@400H/402H)
本文介绍了一个基于8086处理器的中断计数器程序,主要功能包括: 通过8259 PIC的IR1中断线接收UART数据中断 使用中断服务程序统计中断次数 在主循环中周期性地通过串口输出中断计数 实现LED状态显示功能 程序硬件配置包括UART(100H)、LED(800H)和8259 PIC(400H/402H)端口,使用18.432MHz时钟和9600bps波特率。核心技术要点包含中断向量设置、缓冲区管理和中断计数统计,验证了手动触发中断和串口通信的可行性。
2025-06-14 09:18:32
668
8088单板机原理图+PCB板图+Boot代码
2022-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人