基于51单片机的双通道波形发生器设计:从DAC原理到Proteus仿真
1. 项目缘起与核心价值最近在整理大学时期的项目资料翻到了这个基于51单片机的波形发生器课设。当时为了这个项目在图书馆和实验室泡了整整两周从原理图绘制、代码调试到Proteus仿真踩了不少坑也收获了很多。现在回头看这个项目虽然基础但麻雀虽小五脏俱全它几乎涵盖了单片机应用开发的完整链路从硬件最小系统搭建、I/O口驱动、定时器/中断应用到D/A转换、软件算法实现最后再到系统联调与仿真验证。对于电子、自动化等相关专业的学生或者刚接触51单片机的爱好者来说这是一个绝佳的练手项目。这个波形发生器的核心目标很明确用最经典的STC89C52单片机作为控制核心生成四种基本波形正弦波、方波、三角波、锯齿波并且实现一个颇具挑战性的功能——同时输出两种不同的波形。这不仅仅是让两个引脚输出不同信号那么简单它涉及到单片机资源特别是定时器的合理分配、程序结构的优化以及对波形合成原理的深入理解。市面上很多类似的课设资料往往只实现了单波形输出或者切换输出能稳定实现双通道独立输出的完整方案并不多见。本文将基于我当年的实现方案结合最新的工具链Keil C51, Proteus 8.9为你拆解每一个技术细节并提供可直接编译、仿真的完整工程文件。2. 系统架构设计与核心器件选型一个波形发生器系统可以抽象为三个核心部分控制核心、信号产生单元和人机交互界面。我们的设计也围绕这三部分展开。2.1 控制核心为什么依然是51单片机在STM32、ESP32大行其道的今天选择51单片机似乎有些“复古”。但用于教学和入门51单片机有其不可替代的优势架构简单清晰哈佛结构程序存储器与数据存储器分开指令集精简。这让你能更专注于算法和时序逻辑本身而不是被复杂的外设和库函数分散精力。学习资源海量数十年的积累使得关于51单片机的教程、案例、问答异常丰富。几乎你遇到的任何问题都能找到参考。成本极低一片STC89C52芯片加上最小系统板成本可能不到十块钱非常适合学生党。仿真生态成熟Proteus对51系列单片机的仿真支持是最完善的从基本的I/O到复杂的串口、中断仿真结果与实物高度一致极大降低了学习门槛和硬件损耗风险。本项目选用STC89C52RC它是8051内核的增强型拥有8K Flash程序存储器、512字节RAM完全满足我们的需求。其内置的3个定时器/计数器Timer0, Timer1, Timer2是实现波形定时和双通道输出的关键。2.2 信号产生DAC0832 vs PWM我们选谁数字系统要产生模拟电压波形必须经过数模转换D/A。常见方案有两种专用D/A芯片如DAC0832。这是一种8位并行输入的DAC转换速度快线性度好可以直接输出模拟电压。单片机PWM滤波利用单片机定时器产生占空比可调的PWM波再经过低通滤波器滤成模拟电压。我们的选择是DAC0832。理由如下精度与波形质量DAC0832是8位分辨率输出有256个阶梯。对于正弦波、三角波这类需要平滑变化的波形阶梯数越多经过滤波后波形质量越好。而51单片机的PWM分辨率通常不高且需要复杂的RC滤波电路容易引入相位延迟和纹波特别在低频时滤波效果差。设计复杂度DAC0832电路是标准接法数据线直连单片机P0口控制线接几根I/O电路稳定。PWM方案需要计算滤波器的截止频率对电阻电容精度有要求调试更麻烦。实现双通道的便利性要实现两个独立波形同时输出最简单粗暴的方法就是用两个DAC0832分别由单片机的两组I/O口控制。这样两个通道在硬件和软件上完全独立互不干扰。如果使用PWM则需要两个硬件定时器分别生成不同频率的PWM对51单片机来说资源紧张且软件调优复杂。因此我们最终的系统架构是一片STC89C52控制两片DAC0832分别产生两个独立的模拟波形输出。2.3 人机交互与辅助电路波形选择与切换使用4个独立按键分别对应“通道1波形选择”、“通道2波形选择”、“频率增加”、“频率减少”。通过按键扫描程序改变波形类型和频率参数。显示模块使用一个经典的1602字符型LCD用于实时显示当前两个通道输出的波形类型如CH1:SIN, CH2:SQU以及频率值。运算放大器DAC0832输出的是电流信号我们需要用一片运放如LM358构成I/V转换电路将其转换为电压信号同时也可以起到放大作用。单片机最小系统包括复位电路10uF电容10K电阻、晶振电路11.0592MHz方便串口通信计时以及电源5V。整个系统的信号流是这样的用户按键输入 - 单片机处理 - 更新显示 - 计算波形数据 - 通过P1、P2口分别写入两个DAC0832 - DAC转换 - 运放调理 - 双通道模拟输出。3. 核心算法波形数据的生成与存储这是项目的软件核心。51单片机需要通过计算或查表得到对应波形每个点的数字量然后送给DAC。3.1 正弦波的生成查表法的绝对优势正弦波是连续变化的周期函数。在单片机中实时计算sin()函数是不可行的因为浮点运算慢且占用大量资源。查表法Look-Up Table, LUT是唯一实用的选择。具体做法如下确定一个周期的点数N点数越多波形越平滑。但点数越多表格越大输出频率上限也越低因为更新每个点需要时间。我们折中取N256点正好对应DAC0832的8位256个输出等级也方便用unsigned char型数组存储。生成正弦表在电脑上用高级语言如Python、MATLAB或计算器预先计算一个周期内256个等分点的正弦值。公式Table[i] 128 127 * sin(2 * π * i / 256)。这里128是零偏置因为DAC0832通常接成单极性输出0-5V127是幅值。计算出的值在1-255之间取整后存入数组。为什么加128DAC0832当输入数据为0时输出电流最大对应运放输出最低电压如0V输入为255时输出电流最小对应最高电压如5V。这是一个反相关系。sin()函数值域是[-1,1]加1后变为[0,2]乘以127.5后约为[0,255]但为了精确对应256个点我们使用128 127*sin(...)使值域落在[1,255]内中心点在128对应2.5V。这样就能得到以2.5V为基准幅值约±2.5V的正弦波。在Keil C51中定义数组code unsigned char sin_wave[256] { 128, 131, 134, 137, 140, 143, 146, 149, // 示例数据实际需256个 // ... 中间数据 125, 122, 119, 116, 113, 110, 107, 104 };使用code关键字将数组存储在程序存储器Flash中节省宝贵的RAM空间。3.2 方波、三角波、锯齿波的算法这三种波形有规律可循可以不用查表通过算法实时计算更灵活地改变频率和占空比。方波最简单。定义一个阈值如128。在波形的半个周期内输出高电平值如255另半个周期输出低电平值如0。通过改变高低电平的持续时间来改变频率和占空比。// 伪代码逻辑 if (wave_period_counter half_period) { dac_data 255; // 高电平 } else { dac_data 0; // 低电平 }三角波波形数据线性增减。我们需要一个方向标志direction和一个当前值current_value。// 伪代码逻辑 if (direction UP) { current_value; if (current_value 255) direction DOWN; } else { current_value--; if (current_value 0) direction UP; } dac_data current_value;每次定时器中断时根据方向对current_value加1或减1即可产生三角波。频率由中断间隔和加减的步长共同决定。锯齿波上升沿比三角波更简单只有上升过程到达顶点后瞬间归零。// 伪代码逻辑 current_value; if (current_value 255) { current_value 0; } dac_data current_value;下降沿锯齿波则逻辑相反。关键技巧频率控制。所有波形的频率控制本质上都是控制更新DAC数据的时间间隔。这个间隔由定时器中断来决定。例如要产生频率为f的波形一个周期需要输出N个点正弦波N256三角波/锯齿波N256方波N2那么定时器中断的频率必须是f * N。通过调整定时器的重装值THx, TLx来改变中断频率从而改变输出波形的频率。4. 双通道同时输出的实现定时器资源分配策略这是本项目最大的难点和亮点。如何让51单片机“一心二用”同时驱动两个DAC输出独立波形核心思路利用两个硬件定时器分别服务于两个DAC通道。STC89C52有3个定时器我们使用Timer0和Timer1。4.1 定时器工作模式配置我们将两个定时器都配置为模式116位定时器这是最常用的模式定时范围大。但这里有一个关键点51单片机的定时器中断是互斥的。当Timer0中断服务程序ISR正在执行时Timer1的中断请求会被挂起直到Timer0的ISR执行完毕。如果两个ISR执行时间过长就会导致另一个通道的输出产生抖动或延迟破坏波形连续性。解决方案极致优化中断服务程序ISR只做最必要的事在ISR里只进行“根据索引取数据-送数据到端口”这个核心操作。所有计算如三角波当前值计算、判断如波形选择都放到主循环或由标志位触发。使用查表法对于正弦波直接查表速度最快。对于其他波形可以预先在主循环中计算好下一个点的值存入一个缓冲区ISR只负责从缓冲区读取并发送。使用静态变量和索引在每个定时器的ISR里使用静态变量static来维护该通道的波形数据索引、当前值等状态避免使用全局变量带来的潜在风险。4.2 具体的中断服务程序框架示例假设Timer0服务于通道1Timer1服务于通道2。// 通道1波形数据索引用于正弦波查表 static unsigned char ch1_index 0; // 通道1三角波当前值 static unsigned char ch1_tri_value 0; static bit ch1_tri_direction 0; // 0:上升1:下降 void timer0_isr(void) interrupt 1 // Timer0 中断号1 { TH0 (65536 - T0_RELOAD) / 256; // 重装定时值控制频率 TL0 (65536 - T0_RELOAD) % 256; // 根据通道1当前波形类型输出数据 switch(ch1_wave_type) { case SINE: DAC1_DATA sin_wave[ch1_index]; ch1_index; break; case TRIANGLE: if(ch1_tri_direction 0) { DAC1_DATA ch1_tri_value; if(ch1_tri_value 255) ch1_tri_direction 1; } else { DAC1_DATA --ch1_tri_value; if(ch1_tri_value 0) ch1_tri_direction 0; } break; case SQUARE: // 方波状态在另一个由定时器控制的变量中更新 DAC1_DATA ch1_square_state ? 255 : 0; break; case SAWTOOTH: DAC1_DATA ch1_saw_value; break; } } // Timer1的中断服务程序结构类似但操作的是ch2_xxx变量和DAC2_DATA端口。关键点T0_RELOAD和T1_RELOAD这两个重装值是分别控制两个通道波形频率的关键参数。在主循环中当用户按下频率增减按键时只需要修改这两个变量的值下次中断时就会自动生效。4.3 主循环与中断的协同主循环main函数里的while(1)主要负责按键扫描与处理识别用户按键更新ch1_wave_type,ch2_wave_type,T0_RELOAD,T1_RELOAD等全局变量。LCD显示更新将当前的波形类型和频率值格式化后显示到1602屏幕上。注意显示更新不能太频繁否则会占用大量CPU时间影响中断响应。可以每100ms或检测到按键后才更新一次。非实时计算对于一些可以在中断外预先计算好的数据如方波半周期计数器的阈值可以在主循环中计算好。5. Proteus仿真搭建与调试心得硬件设计最终需要在Proteus中仿真验证。这一步能提前发现很多逻辑和时序问题。5.1 原理图绘制要点单片机模型搜索“AT89C52”或“STC89C52”。两者在仿真中通用。注意连接好晶振XTAL1, XTAL2、复位RST和EA引脚接VCC表示使用内部程序存储器。DAC0832连接D0-D7数据线。通道1接单片机P1口通道2接P2口。注意P0口需要上拉电阻而P1/P2口内部有上拉仿真中可以不接外部上拉但实物中为了稳定建议接上。CS片选、WR1写信号1、WR2、XFER传输控制这些是控制线。为了简化我们可以将CS和WR1接地始终有效WR2和XFER也接地让DAC0832工作在最简单的直通模式。这样只要数据线数据变化输出电流立刻变化。注意这是一种仿真简化实物中为了抗干扰建议使用单片机I/O口控制WR1进行锁存。Iout1, Iout2电流输出端。接运放LM358的反相输入端。运放电路LM358接成经典的反相I/V转换电路。反相输入端接DAC的Iout1同相输入端接地。反馈电阻Rf取10kΩ。输出端即得到电压信号。可以在输出端接一个模拟电压表或示波器查看波形。示波器Proteus的虚拟示波器OSCILLOSCOPE是调试利器。将两个通道的输出分别接到示波器的A、B通道可以直观地看到波形形状、频率、幅值以及两个通道的相位关系。5.2 仿真调试常见问题与解决波形频率不对检查定时器重装值计算中断频率f_int F_osc / (12 * (65536 - RELOAD))。其中F_osc是晶振频率11.0592MHz12是51单片机机器周期与时钟周期的关系。根据你想要的波形频率f_wave和每周期点数N反推出RELOAD值。检查中断服务程序长度如果ISR执行时间过长可能实际中断间隔大于理论值导致频率变低。优化ISR代码确保其执行时间远小于中断间隔。正弦波失真呈三角波状检查正弦表数据确认表格数据是否正确生成数值是否在0-255范围内。可以用Keil的Memory窗口查看sin_wave数组的内容。检查DAC参考电压仿真中DAC0832的Vref引脚默认接5V。如果没接或接错会导致输出幅值不对。两个通道不同步或一个通道正常另一个异常检查中断优先级51单片机默认所有中断同级。可以设置IP寄存器给某个定时器中断赋予更高优先级但要注意高优先级中断会打断低优先级可能造成另一个通道波形卡顿。建议保持同级但优化各自ISR速度。检查变量作用域冲突确保两个通道的中断服务程序中使用的是各自独立的静态变量static或者通过不同的全局变量区分避免误操作。检查端口冲突确认通道1和通道2的DAC数据线分别接到了P1和P2在代码中也是分别写入P1和P2没有写错。方波上升/下降沿不陡峭这是仿真或实物中运放带宽限制导致的。在仿真中可以尝试换一个更高带宽的运放模型如LM318。在实物中选择SR压摆率高的运放。按键或LCD不工作检查延时函数按键消抖和LCD初始化都需要微秒级或毫秒级延时。确保你的延时函数是准确的。可以用Keil的软件仿真功能单步调试或者用Proteus示波器看某个引脚的电平变化来估算延时时间。检查LCD控制线连接RS、RW、E线是否接对。RW引脚读/写在大多数写操作场景下应接地写模式。6. 从仿真到实物必须注意的硬件坑仿真通过只成功了80%。把电路焊出来才是真正的考验。电源去耦这是最重要也是最容易忽视的一点。必须在每片IC单片机、DAC、运放的电源引脚VCC和地GND之间就近焊接一个0.1uF的瓷片电容。它可以滤除高频噪声防止芯片因电源波动而工作异常。DAC和运放对电源干净度要求很高。DAC0832的参考电压实物中DAC0832的Vref引脚需要接一个稳定、精确的参考电压源比如使用TL431基准源芯片提供2.5V或5V。直接接VCC会导致输出精度受电源电压波动影响。运放的选择与供电LM358是双电源运放但单电源5V GND也可以工作不过输出范围不是0-5V而是大约0.7V到4.3V接近VCC。如果需要真正的0-5V轨对轨输出需要选择轨对轨运放如LMV358。另外运放的负电源引脚如果使用双电源一定要接好不能悬空。PCB布局与走线模拟地与数字地最好将DAC和运放部分的“模拟地”与单片机、按键LCD的“数字地”分开布线最后在电源入口处用磁珠或0欧电阻单点连接。这样可以防止数字电路的开关噪声串扰到敏感的模拟输出。信号线DAC的数据线、控制线不要和晶振、复位等高频线平行走长距离避免干扰。调试顺序先不焊DAC和运放只焊单片机最小系统写一个LED闪烁程序测试单片机是否正常工作。然后焊上LCD测试显示是否正常。再焊一个通道的DAC和运放用程序固定输出一个电压如128对应2.5V用万用表测量运放输出是否为2.5V左右验证DAC和运放电路。最后再测试波形输出并焊上第二个通道。7. 工程代码结构与管理建议一个清晰的代码结构能让开发和调试事半功倍。建议按如下模块组织Waveform_Generator/ ├── main.c // 主函数包含主循环、初始化、全局变量定义 ├── timer.c timer.h // 定时器0/1初始化、中断服务程序 ├── dac.c dac.h // DAC写入函数如果使用控制线可放这里 ├── wave.c wave.h // 波形数据表正弦表、波形计算函数 ├── key.c key.h // 按键扫描与处理函数 ├── lcd1602.c lcd1602.h // LCD驱动函数 └── delay.c delay.h // 精确延时函数在main.h或wave.h中定义枚举类型让代码更易读typedef enum { WAVE_SINE 0, WAVE_SQUARE, WAVE_TRIANGLE, WAVE_SAWTOOTH } WaveType; extern WaveType ch1_wave, ch2_wave; extern unsigned int frequency_ch1, frequency_ch2; // 单位0.1Hz最后的小技巧在Proteus仿真时可以将单片机频率晶振设置为11.0592MHz而在实物中也可以使用这个频率。这个频率的好处是在用于产生串口通信的波特率时非常准确例如9600波特率误差为0。虽然本项目不用串口但保持一致性是个好习惯。

相关新闻

【单片机毕业设计推荐】基于 STM32 的红外测温语音报警系统设计与实现 ,基于 STM32 的 GY906 非接触测温阈值预警装置设计(014704)

【单片机毕业设计推荐】基于 STM32 的红外测温语音报警系统设计与实现 ,基于 STM32 的 GY906 非接触测温阈值预警装置设计(014704)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能基础功能核心功能辅助功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶…

2026/10/4 22:28:12 阅读更多 →
【单片机毕业设计推荐】基于 STM32 的超声波测距与智能声光报警监测系统设计,基于 STM32 的带温度补偿超声波测距 WiFi 监测 APP 系统设计(014204)

【单片机毕业设计推荐】基于 STM32 的超声波测距与智能声光报警监测系统设计,基于 STM32 的带温度补偿超声波测距 WiFi 监测 APP 系统设计(014204)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能基础功能核心功能辅助功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶…

2026/10/15 13:02:14 阅读更多 →
【单片机毕业设计推荐】基于 STM32 的太阳能智能路灯控制系统设计与实现,基于 STM32 的多模式太阳能路灯蓝牙监控系统设计(014004)

【单片机毕业设计推荐】基于 STM32 的太阳能智能路灯控制系统设计与实现,基于 STM32 的多模式太阳能路灯蓝牙监控系统设计(014004)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)有 CSDN 平台官…

2026/10/12 21:32:01 阅读更多 →

最新新闻

Qt跨数据库获取SQL表字段元数据的工程实践

Qt跨数据库获取SQL表字段元数据的工程实践

1. 项目概述:为什么“获取SQL数据表所有字段”是Qt开发中绕不开的硬需求在用Qt做数据库应用开发时,我几乎每天都会遇到这个场景:界面刚打开,需要动态加载某张表的全部字段名来构建查询条件面板;或者用户点开一个数据编…

2026/10/15 13:01:26 阅读更多 →
页面没有报截断,短屏上确认按钮却消失了:HarmonyOS 7 怎么验关键任务始终可达

页面没有报截断,短屏上确认按钮却消失了:HarmonyOS 7 怎么验关键任务始终可达

页面没有报截断,短屏上确认按钮却消失了:HarmonyOS 7 怎么验关键任务始终可达 DevEco Studio 26.0 场景化体检把“截断”纳入多设备检测,官方多设备指南也明确提醒短屏高度受限时要保证关键区可见并支持滚动。但最难发现的不是文字少一行&am…

2026/10/15 13:01:26 阅读更多 →
AI 卖课博主年入 120 万?程序员用 Cursor 算完这笔账,我沉默了

AI 卖课博主年入 120 万?程序员用 Cursor 算完这笔账,我沉默了

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 13:01:26 阅读更多 →
RetroArch BIOS 资源包:一键补齐多平台模拟器 BIOS 文件

RetroArch BIOS 资源包:一键补齐多平台模拟器 BIOS 文件

简介:这份资源面向复古游戏模拟器玩家与 Retropie、Recalbox、Lakka、Retrobat、EmuVR 等前端使用者,集中提供 libretro 体系所需的系统固件与 BIOS 文件,解决模拟器因缺少底层固件而无法启动或运行异常的问题。压缩包共 262 个文件&#xff…

2026/10/15 13:01:26 阅读更多 →
深入理解context-mode:给AI划边界,让编程更稳定、更省token

深入理解context-mode:给AI划边界,让编程更稳定、更省token

其实最开始我对context-mode这词挺不以为然,觉得不就是“多给AI塞点资料”吗?直到在项目里被坑了好几次,才意识到这观念错得离谱。有一阵子我习惯把项目里相关的文件全部丢给AI代码助手,结果它给的修改建议经常自相矛盾&#xff0…

2026/10/15 13:01:26 阅读更多 →
人脸特征提取三路线:HoG、Dlib与CNN原理及选型指南

人脸特征提取三路线:HoG、Dlib与CNN原理及选型指南

人脸识别这几年从实验室走向了门禁、考勤、相册聚类、甚至手机解锁,几乎成了计算机视觉里最"接地气"的方向之一。但真到动手做项目的时候,很多人会卡在同一个地方:特征到底怎么提?我见过不少朋友一上来就堆深度学习模型…

2026/10/15 13:00:25 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →