51单片机PWM舵机控制:Proteus仿真与Keil编程全流程解析
1. 项目概述从仿真到实物的舵机控制桥梁在嵌入式开发尤其是单片机学习的早期阶段很多朋友都会遇到一个尴尬的境地硬件还没到手或者手头只有一个核心板外围的舵机、电机等执行器件暂时没有想提前验证控制逻辑却无从下手。这时候仿真软件的价值就凸显出来了。今天要聊的这个项目就是利用Proteus这款经典的电子设计自动化软件搭建一个51单片机生成PWM信号来控制舵机的完整仿真环境。简单来说这个项目能让你在没有实体硬件的情况下在电脑上“虚拟”地完成从单片机程序编写、调试到舵机动作观察的全过程。它解决的核心问题是学习与开发的前置验证。你不需要担心接线错误烧坏舵机也不用苦恼于没有示波器观察PWM波形在仿真环境里一切都可以可视化、可调试。这对于学生巩固单片机知识、工程师快速验证算法原型或者任何想入门机电控制的朋友来说都是一个高效且低成本的学习路径。整个仿真的核心逻辑链条非常清晰我们编写51单片机的C语言程序利用其定时器产生特定占空比的PWM波在Proteus中我们用虚拟的51单片机模型加载编译好的程序HEX文件然后单片机的某个IO口比如P1.0会输出这个PWM信号最后这个信号连接到Proteus元件库里的舵机模型上舵机就会根据PWM的脉宽比例实时地转动到对应的角度。你可以通过修改程序中的参数立即看到舵机转角的改变这种即时反馈对理解PWM控制原理至关重要。2. 核心组件与原理深度解析2.1 51单片机为何选择它作为PWM发生器51单片机通常指基于Intel 8051内核的各类单片机如STC89C52、AT89C51等作为嵌入式领域的“活化石”其结构简单、资料丰富是绝佳的教学和入门工具。对于生成PWM波我们主要利用其内部的定时器/计数器。定时器如何产生PWM51单片机本身没有硬件PWM模块我们需要用软件配合定时器模拟产生。其原理是利用定时器的中断功能。假设我们想产生一个周期为20ms频率50Hz的PWM波这是舵机的标准控制信号。我们可以将定时器设置为每隔一个固定时间比如100us中断一次用一个计数器变量记录中断次数。同时我们设定一个“高电平时间阈值”比如对应0.5ms舵机0度到2.5ms舵机180度。在定时器中断服务程序里我们判断当前的中断计数值如果计数值小于“高电平时间阈值”对应的中断次数就让控制IO口输出高电平否则输出低电平。当计数值达到200对应20ms周期时清零重新计数。如此循环就得到了一个周期和占空比都可软件调节的PWM信号。注意这种软件模拟PWM会占用CPU时间和一个定时器资源且精度和稳定性受中断响应速度影响。但对于控制舵机这种低频、实时性要求不高的场景完全足够。如果项目需要控制多个舵机或更高频率的PWM就需要考虑使用带硬件PWM模块的单片机如STC12、STC15系列或STM32。2.2 PWM信号舵机听得懂的“角度语言”PWM脉宽调制是控制舵机最核心的协议。你可以把它理解为一种“时间密码”。对于最常见的180度舵机如SG90其控制信号是一个周期固定为20ms即50Hz的方波。舵机识别的不是电压高低而是每个周期内高电平持续的时间即脉宽。0.5ms脉宽对应舵机输出轴的0度位置。1.5ms脉宽对应舵机输出轴的90度中位位置。2.5ms脉宽对应舵机输出轴的180度位置。脉宽与角度之间呈线性关系。因此控制舵机转动的过程就是程序不断调整输出PWM波高电平时间的过程。在仿真中Proteus的舵机模型会完美响应这个时间信号将转动角度可视化出来。2.3 Proteus中的舵机模型虚拟与现实的映射Proteus的元件库通常位于“Actuators”或“Motors”分类下提供了舵机模型常见名称为“MOTOR-SERVO”。在放置该元件后双击可以打开属性设置面板这里有几个关键参数Control Pin指定控制信号输入的引脚我们将其连接到单片机的IO口。Minimum Pulse Width和Maximum Pulse Width设置舵机响应的最小和最大脉宽通常就是0.5ms和2.5ms。这个设置必须与实际控制的舵机型号匹配。Response Speed可以模拟舵机的转动速度设置一个合理的值如0.1s/60°可以让转动动画更逼真方便观察。仿真运行时这个虚拟舵机会有一个指针或齿轮图案随着输入PWM脉宽的变化而平滑转动效果非常直观。3. 仿真工程搭建与程序编写全流程3.1 Proteus仿真电路图设计首先打开Proteus ISIS开始绘制原理图。选取元件在元件库中搜索“AT89C51”或“80C51”作为我们的主控芯片。搜索“CRYSTAL”添加一个12MHz的晶振。搜索“CAP”添加两个30pF左右的瓷片电容与晶振组成振荡电路。搜索“CAP-ELEC”添加一个10uF的电解电容与一个10K电阻组成上电复位电路。搜索“RES”添加一个1k的电阻作为舵机控制线的上拉电阻部分模型可能需要可先不加若仿真不稳定再添加。搜索“MOTOR-SERVO”添加舵机模型。连接电路将晶振、电容连接到单片机的XTAL1和XTAL2引脚。连接复位电路到单片机的RST引脚。将单片机的某个IO口例如P2.0连接到舵机模型的“Control Pin”引脚。将单片机的VCC40脚接5V电源GND20脚接地舵机的电源和地也相应连接。务必确保共地。关键设置双击单片机元件在“Program File”一栏留空待我们编译好程序后填入HEX文件路径。在“Clock Frequency”一栏填入“12MHz”这与我们使用的晶振频率一致。3.2 51单片机PWM程序编写Keil C51接下来使用Keil uVision编写C语言程序。核心是利用定时器0产生精确的定时中断。#include reg52.h // 包含51单片机寄存器定义头文件 sbit Servo_PWM P2^0; // 定义舵机控制引脚为P2.0 unsigned int count 0; // 定时中断次数计数 unsigned int PWM_Width 150; // 高电平时间计数值初始对应1.5ms (90度) bit flag 0; // 高电平输出标志位 void Timer0_Init() { TMOD 0xF0; // 清除T0控制位 TMOD | 0x01; // 设置T0为模式116位定时器 TH0 (65536 - 100) / 256; // 定时100us的初值高位12MHz晶振 TL0 (65536 - 100) % 256; // 定时100us的初值低位 ET0 1; // 开启T0中断允许 EA 1; // 开启总中断 TR0 1; // 启动T0 } void main() { Timer0_Init(); // 初始化定时器 PWM_Width 50; // 设置脉宽为0.5ms计数值50*100us对应0度 while(1) { // 这里可以添加代码动态改变PWM_Width的值从而控制舵机转动 // 例如通过延时循环让舵机在0度和180度之间往复运动 // PWM_Width 50; // 0度 // Delay_ms(1000); // 延时1秒 // PWM_Width 250; // 180度 (250*100us25ms已超出20ms需调整周期逻辑详见下文) // Delay_ms(1000); } } void Timer0_ISR() interrupt 1 { TH0 (65536 - 100) / 256; // 重装定时初值保证每次中断间隔100us TL0 (65536 - 100) % 256; count; // 中断次数加1 if(count 200) { // 如果计满200次200*100us20ms一个周期结束 count 0; // 计数清零 flag 0; // 清除高电平输出标志 } if(count PWM_Width) { // 如果当前计数值小于设定的脉宽值 Servo_PWM 1; // 输出高电平 flag 1; // 设置标志位 } else { Servo_PWM 0; // 输出低电平 } }程序逻辑解读定时器每100us中断一次count变量记录中断次数。PWM周期为20ms即需要200次中断200 * 100us。PWM_Width变量决定高电平持续的“次数”。PWM_Width50表示高电平持续50次中断即5ms但注意我们目标是0.5-2.5ms这里计算有误下面会纠正。在中断函数中判断count是否小于PWM_Width是则输出高电平否则输出低电平。实操心得中断重装值的计算12MHz晶振下机器周期为1us。定时器模式1是16位计数最大65536。要定时100us初值应为65536 - 100。因为TH0和TL0是8位寄存器所以用除以256取整和取余来分别赋值高位和低位。这是51单片机定时器编程的固定套路。3.3 参数校准与程序修正细心的你可能发现了问题上面程序中100us中断一次PWM_Width50对应的是5ms高电平而非舵机需要的0.5ms。这是因为我们为了方便计算周期20ms/100us200次放大了时间粒度。为了精确控制脉宽我们需要调整定时器中断时间和PWM_Width的映射关系。方案一推荐保持100us中断调整脉宽计算值。舵机脉宽范围0.5ms-2.5ms对应100us中断次数为5次到25次。周期20ms对应200次。因此PWM_Width 5;// 对应0.5ms0度PWM_Width 15;// 对应1.5ms90度PWM_Width 25;// 对应2.5ms180度这样PWM_Width的值就是脉宽除以100us。在主循环中改变这个值就能精确控制角度。方案二提高定时精度。将定时器中断设置为更短的时间比如50us甚至10us。这样PWM_Width的数值范围会变大控制精度更高但中断更频繁CPU负担加重。对于51单片机100us的中断间隔在控制单个舵机时是合理的选择。修正后的主函数部分示例void main() { Timer0_Init(); while(1) { PWM_Width 5; // 舵机转到0度 Delay_ms(2000); // 等待2秒 PWM_Width 15; // 舵机转到90度 Delay_ms(2000); PWM_Width 25; // 舵机转到180度 Delay_ms(2000); } } // 注意Delay_ms函数需要自己实现通常用循环嵌套来实现毫秒级延时。3.4 联调与仿真运行编译程序在Keil中编译上述C代码生成.HEX文件。加载程序回到Proteus双击原理图中的单片机在“Program File”属性中浏览并选择刚才生成的.HEX文件。运行仿真点击Proteus界面左下角的运行按钮三角形。观察现象你应该能看到舵机的指针开始转动并在你程序设定的几个角度0°90°180°之间周期性摆动。调试工具Proteus提供了虚拟示波器Virtual Oscilloscope和逻辑分析仪Logic Analyzer。你可以将单片机的PWM输出引脚同时连接到这些仪器上直观地看到产生的PWM波形测量其周期和脉宽这与实际用示波器调试的过程一模一样是仿真带来的巨大优势。4. 进阶技巧与常见问题排查4.1 实现多路舵机控制一个定时器中断可以控制多路舵机吗可以但需要更精巧的设计。核心思想是在同一个定时器中断如100us里用多个独立的计数器变量分别记录每一路PWM的高电平时间。例如控制两个舵机unsigned int PWM_Width_A 15; // 舵机A角度 unsigned int PWM_Width_B 20; // 舵机B角度 unsigned int count_A 0, count_B 0; // 各自的高电平计数器 sbit Servo_A P2^0; sbit Servo_B P2^1; void Timer0_ISR() interrupt 1 { // ... 重装初值 ... // 舵机A控制逻辑 if(count 200) count; else count 0; Servo_A (count PWM_Width_A) ? 1 : 0; // 舵机B控制逻辑可以与A同步计数也可独立 // 简单同步方案 Servo_B (count PWM_Width_B) ? 1 : 0; }这种方法下两路PWM周期同步但占空比独立可调。理论上一个定时器可以控制很多路只要中断服务程序执行时间不超过中断间隔。但路数越多程序结构越复杂且所有舵机信号周期必须相同。4.2 让舵机平滑运动直接跳变角度会让舵机“咯噔”一下转过去。要实现平滑运动即“缓动”可以在主循环中逐步改变PWM_Width的值。void smooth_move(unsigned int target_width) { unsigned int current PWM_Width; if(current target_width) { while(current target_width) { PWM_Width current; Delay_ms(20); // 每20ms改变一步调整这个值可以改变运动速度 } } else { while(current-- target_width) { PWM_Width current; Delay_ms(20); } } } // 在主循环中调用smooth_move(25); // 平滑运动到180度4.3 仿真与实物差异的预判仿真环境是理想的但实物连接时你会遇到真实世界的挑战。通过仿真你可以提前预判并理解这些问题电源功率不足仿真中舵机模型不计功耗。实物中舵机在堵转或启动瞬间电流很大SG90可达500-700mA。如果直接用单片机开发板的5V引脚供电很可能导致单片机复位或舵机抖动。解决方案务必为舵机提供独立电源并与单片机共地。信号干扰长导线可能引入噪声。在仿真中看不到实物连接时PWM信号线应尽量短或使用屏蔽线。在信号线上加一个100-470欧姆的电阻有时可以改善波形。机械负载仿真舵机没有负载。实物中舵机带动负载时需要更大的电流对电源要求更高也可能出现到达指定角度无力的情况。4.4 常见问题排查速查表仿真现象可能原因排查步骤与解决方案舵机完全不转动1. 电路未连接好电源/地/信号2. HEX文件未正确加载3. 程序未运行或进入死循环1. 检查Proteus中所有连线特别是电源和地线。2. 双击单片机确认HEX文件路径正确可重新加载。3. 在Keil中使用软件仿真单步调试程序看能否进入定时器中断。舵机抖动或转动异常1. PWM周期不准2. 脉宽计算错误3. 舵机模型参数设置错误1. 用虚拟示波器测量PWM周期确保为20ms50Hz。调整定时器初值。2. 核对PWM_Width值与目标脉宽的换算关系。例如100us中断0.5ms脉宽对应PWM_Width5。3. 检查舵机属性中的最小/最大脉宽设置是否为0.5ms和2.5ms。舵机只在一个方向极限位置脉宽超出有效范围用示波器测量脉宽。如果脉宽一直小于0.5ms或大于2.5ms舵机会卡在极限位置。检查程序中给PWM_Width赋的值是否在有效区间如5-25。程序编译通过但加载后无反应1. 启动代码问题2. 晶振频率设置不匹配1. 在Keil项目选项中确认是否正确添加了启动文件STARTUP.A51。2. 确保Proteus中单片机属性的“Clock Frequency”与程序预设的晶振频率如12MHz一致。想控制更多路舵机但反应迟钝CPU处理不过来中断服务程序执行时间过长优化中断服务程序代码减少不必要的运算。考虑换用更高主频的单片机或者使用硬件PWM模块的单片机如STC15系列。5. 从仿真到实物的无缝迁移当你在Proteus中完美实现了舵机控制后迁移到实物硬件就变得非常轻松。你几乎可以原封不动地使用在仿真中调试好的C语言程序。硬件连接准备一块51开发板如STC89C52RC、一个舵机如SG90、一个5V电源可为舵机独立供电。将开发板的P2.0引脚连接到舵机的信号线通常是橙色或白色开发板的GND连接到舵机的GND棕色或黑色开发板的5V或外部电源5V连接到舵机的VCC红色。程序烧录使用USB-TTL串口工具如CH340、CP2102模块连接开发板的串口引脚P3.0/RXD, P3.1/TXD通过STC-ISP等烧录软件将编译好的HEX文件下载到单片机中。上电测试给系统上电舵机应该会按照程序设定的规律运动。如果不动首先用万用表检查电源电压是否稳定在5V左右然后可以用一个简单的LED闪烁程序测试单片机是否正常工作逐步缩小排查范围。这个“仿真先行实物验证”的工作流能极大提升开发效率降低硬件损耗风险尤其适合初学者和进行方案预研的工程师。通过这个完整的项目你掌握的不仅仅是如何让一个舵机动起来更是一套基于51单片机的定时器应用、PWM信号生成以及软硬件协同调试的通用方法。这套方法可以轻松迁移到控制直流电机转速、LED调光等其他PWM应用场景中。

相关新闻

怎么判断一个亲子设计品牌是否真的口碑好?三个核心筛选维度

怎么判断一个亲子设计品牌是否真的口碑好?三个核心筛选维度

想在杭州为孩子和家人找一个专业的全案设计团队,判断口碑的真伪,不能只看网上的几张漂亮图片或评论区的热闹点赞。真正的口碑,来自于设计能否解决一个家庭在成长周期中真实出现的难题,以及从图纸到实景的落地还原能力。 你需要重点…

2026/8/11 16:10:28 阅读更多 →
C++汽车租赁管理系统:500行代码详解面向对象与文件I/O实战

C++汽车租赁管理系统:500行代码详解面向对象与文件I/O实战

1. 项目概述与核心价值最近在整理硬盘里的老项目,翻出来一个大学时期写的C课程设计——汽车租赁管理系统。当时为了拿个高分,硬是肝了500多行代码,还煞有介事地写了篇配套的“论文”(其实就是课程设计报告)。现在回头看…

2026/8/15 10:19:50 阅读更多 →
【C++】021、RAII

【C++】021、RAII

一、RAII定义RAII(Resource Acquisition Is Initialization)资源获取即初始化,是C中唯一且核心的资源管理范式。RAII的设计思路是将资源的生命周期与栈上的对象的生命周期作用域进行强绑定,利用C编译器保证确定性析构,…

2026/8/13 18:19:27 阅读更多 →

最新新闻

XPBD物理模拟:从约束柔度到布料模拟的算法实现与优化

XPBD物理模拟:从约束柔度到布料模拟的算法实现与优化

1. 从弹簧到约束:XPBD的核心思路拆解刚接触物理模拟,尤其是布料、软体这类东西时,很多人都是从经典的弹簧质点模型(Mass-Spring System)开始的。我也一样,早年写个小demo,把一堆质点用弹簧连起来…

2026/8/16 3:12:54 阅读更多 →
程序设计竞赛:黄金窗口期与系统化能力提升指南

程序设计竞赛:黄金窗口期与系统化能力提升指南

1. 项目概述:为什么说竞赛是“过了这个村没这个店”?程序设计竞赛,对于很多计算机专业的学生和算法爱好者来说,是一个既熟悉又充满敬畏的词。你可能听说过ACM-ICPC、蓝桥杯、力扣周赛,也可能在某个深夜刷题时&#xff…

2026/8/16 3:12:54 阅读更多 →
VSCode集成Cppcheck:Windows下C/C++静态代码分析实战指南

VSCode集成Cppcheck:Windows下C/C++静态代码分析实战指南

1. 项目概述:为什么要在VSCode里集成Cppcheck? 如果你在Windows上用VSCode写C/C代码,尤其是接手一个有点年头的项目,或者团队里编码风格比较“自由”,那你肯定遇到过一些让人头疼的编译问题。明明编译器(比…

2026/8/16 3:12:54 阅读更多 →
CSS Table样式深度解析:从基础原理到高级数据表格实战

CSS Table样式深度解析:从基础原理到高级数据表格实战

1. 项目概述&#xff1a;为什么我们还在深究HTML Table&#xff1f; 在CSS的世界里&#xff0c; <table> 标签家族&#xff08; <table> , <tr> , <td> , <th> &#xff09;常常被开发者视为“上古遗物”。尤其是在Flexbox和Grid布局大…

2026/8/16 3:12:54 阅读更多 →
Word三线表样式创建指南:告别手动描边,实现一键套用

Word三线表样式创建指南:告别手动描边,实现一键套用

1. 从“手动描边”到“一键成型”&#xff1a;为什么你需要一个三线表样式如果你经常在Word里处理学术论文、项目报告或者任何需要呈现数据的文档&#xff0c;那么对“三线表”这个词一定不陌生。它几乎是科研、商业报告等正式文档中表格的“标准皮肤”——只有顶线、底线和栏目…

2026/8/16 3:12:54 阅读更多 →
DB2存储过程SQLCODE -420错误:数据类型转换失败的系统化诊断与解决方案

DB2存储过程SQLCODE -420错误:数据类型转换失败的系统化诊断与解决方案

1. 问题初探&#xff1a;当存储过程执行撞上SQLCODE -420在DB2数据库的日常开发和运维中&#xff0c;存储过程是封装复杂业务逻辑、提升性能的利器。但当你满怀信心地执行一个精心编写的存储过程&#xff0c;屏幕上却赫然出现SQLCODE: -420, SQLSTATE: 22018这样的错误信息时&a…

2026/8/16 3:11:53 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者&#xff0c;最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent&#xff0c;从本地部署到云端API&#xff0c;我们正处在一个技术栈快速重构的节点。然而&#xff0c;面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者&#xff0c;最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent&#xff0c;从本地部署到云端API&#xff0c;我们正处在一个技术栈快速重构的节点。然而&#xff0c;面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →