基于STM8S903K3的序列打螺丝夹具的软件设计.docVIP

基于STM8S903K3的序列打螺丝夹具的软件设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STM8S903K3的序列打螺丝夹具的软件设计.doc

基于STM8S903K3的序列打螺丝夹具的软件设计   摘要:螺丝是紧固件的通用说法,是日常生活中不可或缺的工业必需品,目前多数产品上的螺丝仍是操作工手动锁紧,如果需锁紧螺丝数量较多的话,容易漏打、错打。该文以C语言为编程语言,围绕以STM8S903K3为主的硬件电路功能,对序列打螺丝夹具进行了软件设计说明,文章首先提出了序列打螺丝夹具软件设计的总体思路,然后对序列打螺丝夹具的主要功能函数进行了重点设计说明,最后对软件设计调试结果进行说明。该软件设计在硬件设计的基础上进行了实验调试和实际操作,并已投入实际应用中,实际解决了螺丝数量较多时按统一顺序锁紧,防止错打、漏打的问题,具备很大的推广价值。   关键词:软件设计;序列夹具;顺序锁紧   中图分类号:TP311 文献标识码:A 章编号:1009-3044(2016)25-0080-03   基于STM8S903K3的序列打螺丝夹具中功能的设定、螺丝锁紧的选择、信息数据的处理存储、加工信息的显示、工作数据通信、报警等一系列功能是根据STM8S903K3单片机的特点及硬件电路的设计而通过C语言编程来实现的。   1 系统软件设计   1.1 系统设计总流程   开机后,先对各硬件端口进行初始化,然后读取拨码开关数据来确定需要锁紧螺丝数目,之后按循序点亮指示灯,系统自检(自检中出现错误时会发出报警声音提示错误);系统自检后,RESET指示灯亮,为锁紧螺丝做好准备。   需要锁紧螺丝工作时,先用螺丝刀碰触RESET位置,第一个螺丝位置的指示灯亮,螺丝刀碰触到第一个螺丝的导柱时产生signal in信号输入单片机,单片机接收后将SET置1输出电动起子允许工作信号,当螺丝拧到要求的扭矩后,电动起子控制器会发出一个BZ信号给单片机,单片机再接收到该信号后,关闭单片机输出信号并通过点亮FirstHC595SendData函数第2个螺丝的提示灯,重复上述动作。   设计中有一个三位的拨码开关用来设置总螺丝的数量,例如设置为48个螺丝,那么在第48个螺丝锁紧后,RESET指示灯亮,返回初始化状态(此时RESET位置没有锁螺丝确认信号,即只有螺丝刀触碰到该位置后才点亮第1个螺丝指示灯)。   在锁螺丝时,假如应该锁第3个螺丝,而实际上螺丝刀在其他螺丝位置时,此时螺丝刀不启动,并发出报警声音提示错误。   程序设计总流程图如图1所示:   1.2 硬件初始化操作   系统的硬件进行初始化包括系统时钟配置初始化Clock_init()、指示灯端口初始化GPIO_LEDInit()和功能端口(编码器端口、蜂鸣器端口、BZ端口、SET端口、RESET端口、Signal In端口、功能选择端口、74HC595端口)初始化General_IO_init()。截取程序段如下:   void General_IO_init(void)   { /**编码器端口初始化**/   GPIO_Init(GPIOB,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, GPIO_MODE_IN_PU_NO_IT);   GPIO_Init(GPIOC,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5,GPIO_MODE_IN_PU_NO_IT);   GPIO_Init(GPIOE, GPIO_PIN_5,GPIO_MODE_IN_PU_NO_IT);   /**蜂鸣器端口初始化**/   GPIO_Init(GPIOA, GPIO_PIN_1, GPIO_MODE_OUT_PP_HIGH_FAST);   /**BZ端口初始化**/   GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_IN_PU_IT); /**改为中断方式**/   /**SET端口初始化**/   GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_OUT_PP_LOW_FAST);   /**ER BZ端口初始化**/   GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_IN_PU_IT); /**改为中断方式**/   /**RESET端口初始化---RESET螺丝刀控制器**/   GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST);   /**为了不影响PC6的中断响应,特意初始化没有使用的PC0管脚**/   GPIO_Init(GPIOC, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST);   /*

您可能关注的文档

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档