- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机控制舵机程序精度,数量,占用时间优化方案和程序.doc
#include
#include
//本程序经软仿真调试在机器周期为1us时理论误差为0,不需要占用太多的cpu运行时间就可以控制8路舵机,精度为1ms-2ms平均分成100份,在时间消耗和舵机数量上
//明显优于网上常见的舵机控制程序,keil3使用9(最高)编译器优化时达到理论误差为0,编译器优化级别过低时无法使用
unsigned char gai;
unsigned char nt[8];
unsigned char nw[8];
unsigned char pwmbuffer[8] 50,50,50,50,50,50,50,50 ;
void set unsigned char m,unsigned char n if m 8 n 101 //如果输入合法则记录新数据并将状态改变标志置位
pwmbuffer[m] n;
gai 1; void tim void unsigned char a1,a2,tempt,tempw; //a1,a2作为循环变量,tempt,tempw作为排序交换用临时变量
for a1 0; a1 8; a1++ //由舵机控制数据设置用于排序的表(两行八列)
nt[a1] pwmbuffer[a1]; //第几个舵机所需的高电平时长
nw[a1] 1 a1; //用第几位置一来表示第几个舵机 for a1 0; a1 7; a1++ //简单排序算法,找出最小的与第一个交换,在从剩余的中找出最小的与第二个交换,以此类推
unsigned char min a1; //用于记录哪一个是最小的
for a2 a1 + 1; a2 8; a2++ //从剩余项中找出最小的 if nt[a2] nt[min] min a2; tempt nt[a1]; //交换
tempw nw[a1];
nt[a1] nt[min];
nw[a1] nw[min];
nt[min] tempt;
nw[min] tempw; for a1 1; a1 8; a1++ //之前记录应该变成低电平的输出口,之后记录应该是低电平的输出口
nw[a1] | nw[a1-1]; a2 0;
for a1 0; a1 7; a1++ //去掉重复
if nt[a1] ! nt[a1 + 1] nt[a2] nt[a1]; nw[a2] nw[a1]; a2++; nt[a2] nt[7];
nw[a2] nw[7];
for a2++; a2 8; a2++ nt[a2] 0;
nw[a2] 0xFF; for a1 7; a1 0; a1-- //之前记录每个输出口应持续高电平的时间,之后记录与上一次变化间隔时间
if nt[a1] nt[a1] nt[a1] - nt[a1-1] - 1; for a1 0; a1 8; a1++ //避免对0减1发生溢出跳到255,因为已经去掉重复所以不影响经度
nw[a1] ~nw[a1];
if nt[a1] 2 nt[a1] 1; else nt[a1] - 1; void Timer0 void TMOD 0xF0; TMOD | 0x01;
TL0 0xE0; TH0 0xB1; TR0 1;
ET0 1; void setuart unsigned int a SCON 0x50; //设置串口为模式1
TMOD 0x0F; //设置定时器T1为自动重装模式
TMOD | 0x20; //设置定时器T1为自动重装模式
TH1 256 - 1座机电话号码/12/2/16 /a; //计算T1重载值
TL1 TH1; //手动初次重装
ET1 0; //定时器中断关闭
ES 1; //串口中断启动 EA 1; //总中断启动
TR1 1; //定时器T1启动 void delayus void //延时函数,加上外层的loop指令正好十个机器周期
unsigned char i;
_nop_ ;
i 1;
while --i ; void delaypw unsigned char a //可调延时函数产生误差多7个机器周期
do delayus ;
while --a ; void pwm void interrupt 1 P0 0xFF; //所有输出口输出高电平
delaypw 99
您可能关注的文档
- 3.2定轴转动中的功能关系.ppt
- 3.2转动动能和转动惯量.ppt
- 3.3单心光束实像与虚象.ppt
- 3.5.4人体对食物的消化吸收.ppt
- 31-TD邻区优化流程.pptx
- 31-仓库温湿度控制程序.doc
- 3102创新是民族进步的灵魂(共31张PPT)1.ppt
- 3110系列水套CO2培养箱与co2二氧化碳培养箱价格.docx
- 312《徐偃王志》清·徐时栋.doc
- 3BA控制对象和监控原理.ppt
- 2025年AI大模型技术在电力系统中的应用及发展趋势报告-香港中文大学(赵俊华).docx
- 2025年温室气体核查指南-企业可持续发展的绿色基石-ICAS英格尔认证.docx
- 数字员工助力财务管理数字化转型.docx
- DeepSeek完全实用手册(1.5版本).pdf.docx
- 2025年一季度中国消费者消费意愿调查报告-立信数据-202506.docx
- 突发环境污染事件应急管理培训.docx
- 金融-银行行业专题:中国机构配置手册(2025版)之流动性与货币政策篇-“超级央行”时代.docx
- 陈立桅-高比能长循环全固态电池关键材料.docx
- 投资策略专题:从“第四消费时代”看未来消费机遇.docx
- 华为产品战略规划全景训战.docx
最近下载
- 学堂在线e时代的教与学—慕课引发的混合式教学1-5周作业答案+考试答案.docx VIP
- pep人教版四年级英语下册期末考试卷(可打印).pdf VIP
- 2023年副高(临床药学)考试真题卷.pdf VIP
- 私人订制旅行行程安排及免责.doc VIP
- 沪教版四年级下册英语期末测试卷附参考答案.pdf VIP
- 中泰化学2024环境、社会及治理(ESG)报告.docx
- 标准图集-西南18J515_室内装修.pdf VIP
- 《数据分析基础与案例实战(基于Excel软件)(第2版)》全套教学课件.pptx
- 人教版三年级英语下册期末测试卷及答案【完美版】.pdf VIP
- 基于PLC的变频器多段速调速系统设计.doc VIP
文档评论(0)