[导读]笔者的项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。
笔者的项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。
1 动作标志位的使用
在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序:
list P=16c73
call lefthandup
call righthandup
LO call readinsignal
bdss csl_v,1efthandligbts
call lefthandstop
btfsc csl_v,righthandlight4
goto L0
call righthandstop
L1 call readinsignal
btfsc csl_v,lefthandlight3
goto L1
call lefthandstop
:
lefthandlight表示光电开关,由此判断是否到相应的位置。1表示在手臂最下面的位置;2表示在手臂的握手位置;3表示在手臂的鼓掌位置;4表示在手臂的高举手位置。上面程序描写左手臂上升到举手位置和右手臂上升到鼓掌位置并停止的过程。先判断左手到达否,到达则左手停止,接着看右手是否到达举手位,到达则停止,否则循环上述的检测,直到左手到达鼓掌位,右手到达举手位。
注意,这里的3,4表示的就是鼓掌位,举手位。经过循环检测可以让手臂停在各位上,然而机械动作是有惯性的,机械停止位可能在该位的上一点或下一点,这就影响下面动作的进行,可能在若干动作后机械动作出现失常,也就是程序没法正常的运行。在此情况下,需要修改程序的编写方式,采用标志位来控制动作的进行。如果采用控制标志位,一定要在动作子函数中对标志位置零。程序如下:
list p=16c73
:
actlonstopflag equ Ox6e ;位定义
lefthandfla8 cqu 0x0 ;0表示停止左手动作
rightbandflag equ Oxl ;O表示停止右手动作
:
movlw Ox03
movWf actionstopflag
call lefthanduo
call righthandup
L2 call readinsignal
btfss csl_v,lefthandhght3
call lefthatldotop
btfss csl_v,righthandlight4
call righthandstop
movlw Ox00
subwf actionstopflag,w
btfss status,z
goto L2
继续下面的程序
actionstopflag表示动作标志位参数,给动作标志位赋值,动作停止函数中将清零标志位的值。上述程序和前面所述程序的功能一样,实现两支手臂的动作。上面程序描写左手是否到达鼓掌位,到达停止,右手是否到达举手位,到达停止。看动作标志位是否为零,不是,不断地循环检测;是,执行下面的程序。
2 GOTO,cALL指令的不同使用
在PIC的汇编程序中,CALL与GOT0指冷使用的场合不同。一般情况下,在于程序与主程序之间大多用CALL指令;而状态转换模块之间大多用GOTO指令,即由此状态进入另一种状态不需返回。由于PIC单片机的堆栈有限,在程序中,不能无止境地使用GOTO语句,这样会使堆栈溢出,程序无法正常运行。各个小程序内部循环占用堆栈的级数不多,使用GOTO指令是可行的,但在大的程序中用GOTO则无法返回到调用前程序的下一条指令。CALL指令完成调用完子程序后返回到调用前的程序。程序如下:
list D=16c76
start:ca11 setcpu
call automatlsn、statel
L3 call readinsignal
btfsc cs2_v,ultrasonicdetectl
goto L3
goto autonatlsmstate2
:
automatlsmstate2:
return
auatomatismstatel、automatismstate2表示两种状态,uhrasonicdetectl表示一个输入超声检测信号。上面程序描写调用automatistmstate1状态,执行完后进行下面的检测ultrasonicdetect],没有触发就一直循环检测,触发就进入autornatismstate2状态,执行完也不再回到下面的程序。
3 状态标志位Z、C的不同使用情况
在进行判断标志位时,Z(零标志)、C(借位标志)是不同的。Z为l时,表示上面的结果为0,Z为0时,则结果不为0。C为l时,借位,C为0时,没有借位。在使用定时器的时候,一般使用C标志位,这是由于当完成某一动作去检查定时器时,时间可能没到,或是正好,或是已经超过时间,只要到了或超过时间,都要按照要求关闭定时器,如下面程序所述。如果用Z标志位,等于0时可能没有检测到,无法判断停止的状态,而用z可以很好地控制时间定时。进行一般的计算时大多用Z,如前面的动作标志位中就是如此使用的。
list D=16c76
call opentimerO
L4 movlw d’30’
subwf t0_v2,W
btfss status,c
goto L4
cau closetimer0
程序检测时间是否到达1.5s,没有则循环等待,到了或检测时间过了就关闭定时器,执行下面的程序。
总之,在PIC单片机的编程中采用合适的方法,可以使整个程序运行稳定,而且程序空间的使用也将有所减小,避免了调试中的Bug。这是笔者在实际中的一点体会,还有许多不足或没有考虑到的问题,希望在和大家的探讨中不断学习PIC单片机的精髓。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
上海2026年3月19日 /美通社/ -- 2026世界一级方程式赛车锦标赛(以下简称F1)中国大奖赛正赛上周在上海国际赛车场落幕。作为F1官方物流合作伙伴,DHL与这项全球...
关键字:
可持续发展
BSP
供应链
环境影响
上海2026年3月19日 /美通社/ -- 三月春深,万物竞发,绿色生机成为各行各业高质量发展的鲜明底色。对于正处于深刻变革中的汽车产业而言,绿色发展不仅是趋势,更是驱动技术进化与价值重构的核心力量。中国汽车工...
关键字:
新能源汽车
轮胎
P10
BSP
北京2026年3月20日 /美通社/ -- 近年来,算力已成为驱动产业升级、支撑科技创新的核心生产力。作为全国一体化算力网络建设的重要参与者,软通智算聚焦算力网运营核心赛道,近期在三大国家枢纽节点接连取得突破性...
关键字:
节点
BSP
网络建设
全栈
北京2026年3月20日 /美通社/ -- 当前,人工智能正以前所未有的速度重塑各行各业,教育领域也迎来从知识灌输到素养培育的深刻变革。如何培养适应并引领未来的青少年,成为全社会共同关注的教育命题。 近日,中科院实验室...
关键字:
中科院
AI
AI技术
BSP
上海2026年3月18日 /美通社/ -- 备受瞩目的3D打印行业盛会2026 TCT亚洲展今日拉开帷幕,将连续三天(3月17 - 19日)在国家会展中心(上海)7.1&8.1馆隆重上演。TCT亚洲展不...
关键字:
TC
INTRO
BSP
CAN
该奖项彰显了DXC的地位:作为可信赖的合作伙伴,助力全球企业实现现代化运营并推进AI应用 弗吉尼亚州阿什本2026年3月18日 /美通社/ -- 领先的企业技术与创新合作伙伴DXC Technology(纽约证券交易所...
关键字:
福布斯
AI
BSP
ST
北京2026年3月17日 /美通社/ -- 还在为每天淹没在碎片化的融资新闻里而头疼吗?担心错过关键赛道的早期信号?现在,有了更高效的办法。 亿欧刚刚为OpenClaw(小龙虾)生态,带来了一个"专...
关键字:
SKILL
AI
AGENT
BSP
西门子旗舰科技大会首发中国,打造AI时代科技交流、生态开放新平台 董事会主席、总裁兼首席执行官博乐仁(Roland Busch)将发表主旨演讲,与阿里巴巴集团主席蔡崇信,宇树科技创始人、董事长兼首席执行官王兴兴...
关键字:
西门子
AI
BSP
NVIDIA
广州2026年3月16日 /美通社/ -- 近日,全球领先的第三方专业检验检测认证机构 DEKRA 德凯正式授予中汽研汽车检验中心(广州)有限公司(下称 "广州检验...
关键字:
汽车
镍氢电池
电池检测
BSP
上海2026年3月13日 /美通社/ -- 家电盛会里的"天外来客" 在2026年中国家电及消费电子博览会(AWE)的聚光灯下,当众多参展商聚焦于展示扫地机器人的吸力性能或洗碗机的...
关键字:
BSP
卫星
芯片
手机
上海2026年3月13日 /美通社/ -- 英矽智能(3696.HK),一家利用生成式人工智能驱动药物发现和开发的临床阶段生物科技公司,今日宣布公司将于北京时间2026年3月30日公布2025年度业绩及业务进展,并于当日...
关键字:
BSP
电话会议
IC
PS
实现盈利的多维战略包括:拓展软件与出行领域的收入来源、扩大制造规模、实施严格的资本配置,并持续降低材料成本 披露了即将推出的Midsize平台的关键技术和战略细节,...
关键字:
SI
自动驾驶
BSP
通讯
涵盖能源、智能生产、建筑、教育、医疗健康等领域 香港2026年3月16日 /美通社/ -- 香港应用科技研究院(应科院)于第51届“日内瓦国际发明展”中赢得十项殊荣,包括五项金奖及五项铜奖,印证应科院的创新科研实力。获...
关键字:
人工智能
卫星
BSP
工程师
上海2026年3月16日 /美通社/ -- 随着全球贸易往来和企业出海步伐持续加快,跨境支付正成为企业全球化进程中的关键基础能力。企业面临的挑战,已不再只是"如何完成一笔跨境...
关键字:
VI
AI
BSP
创始人
北京2026年3月16日 /美通社/ -- 近日,IBM 正式发布2025年度报告,以及董事长兼首席执行官 Arvind Krishna 致投资人的公开信。在他看来,如今的IBM已转型成一家以软件为主导,全面整合技术、咨...
关键字:
IBM
VI
BSP
软件
上海2026年3月13日 /美通社/ -- 你睡过"明白"觉吗?在这个"内卷"与"躺平"反复横跳的时代,睡个好觉似乎成了奢侈。睡眠障碍的普遍化,正推动...
关键字:
健康监测
毫米波雷达
BSP
监测心率
上海2026年3月11日 /美通社/ -- 宝尊电商有限公司(纳斯达克:BZUN及港交所:9991)("宝尊","本公司"或本集团),中国领先的品牌电商解决方案服务商和数字商业赋能者,今天公布其将于2026年3月25日(...
关键字:
电话会议
COM
BSP
MANAGEMENT
广州2026年3月11日 /美通社/ -- 继今年1月在海外市场取得销售"开门红"后,广汽2月海外销量迎来爆发式增长,单月销量超11,125辆,同比翻番,增幅高达114%;今年前两个月累计销量超25,126辆,同比增长8...
关键字:
广汽
BSP
电动车
ACTION
BoClaw 是面向开发者与知识工作者的 AI 协作平台,支持桌面端与 Web 端,让 AI 真正深入企业工作流——执行任务、处理文件、定时自动工作、通过企业 IM 随时调度。 北京和苏州2026年3月9日 /美通社/...
关键字:
OCL
AI
BSP
定时
舍弗勒与乐聚机器人签订战略合作协议,双方致力共同推动人形机器人的创新应用及产业化发展 此次合作标志着舍弗勒已经融入中国人形机器人产业生态,扎根快速增长的中国市场 凭借八大驱动产品谱系,舍弗勒致力成为人形机器...
关键字:
机器人
BSP
金属
驱动技术