电子装配工艺.docVIP

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

电子装配工艺 专业:应用电子技术 班级:1547 姓名:李苗 学号:1230302154715 秒表的设计与工程实现 一.?单片机系统设计方案描述? 系统设计基本指标:? 1.实现最大时间长度超过5分钟的正常倒计时? 2.可以在5分钟范围内自由方面设置秒表的开始时间?3.进入最后一分钟时,三声蜂鸣器响提示? 4.秒表计时到,五声蜂鸣器响,同时小灯亮提示? 电子工程训练是一个综合性实验。秒表系统设计总体上分为硬件设计和软件设计两个部分,并要充分考虑它们的匹配设计。硬件设计特别是引脚的配置要充分考虑软件实现的需要,反过来,软件设计也要建立在硬件的基础上,并且充分利用硬件提供的资源。? 硬件电路大体上可分为最小系统板电路、数码管显示电路和按键电路。最小系统板电路和数码管显示电路在老师指导下很快得以完成。按键电路为充分考虑以后软件设计的灵活性和可扩展形,采用了排线将引脚引出。? 软件设计上,为方便秒表的操作使用,设置了“修改”、“增加”、“移位”和“开始/暂停”四个按键功能。“修改”键按下,进入修改状态,相应的修改位闪烁,提示按“增加”键修改该位时间参数,操作“移位“按键可以移动修改位。“开始暂停”则用于秒表的开始运行和暂停运行。? 按键处理通常有查询和中断两种方式处理,查询占用较多的单片机运行资源,而且延迟防抖效果较差,容易多次触发,而中断方式消抖则操作更为灵敏。同时考虑到AT89S52只有两个外部中断,将使用较多的“增加”和“开始/暂停”两个按键处理分配给两个外部中断。另外两个按键则采用查询方式检测处理。? 软件设计整体上利用了“有限状态机”的思想,按键控制状态的转换,并在相应的状态下执行相应的操作。一共设置了3个状态:state=0(暂停状态),state=1(开始运行状态),state=2(修改状态),它们的相互转化如下: 由于本人之前接触过一些仿真软件Proteus的知识,而本系统设计所需要的单片机、按键、数码管、蜂鸣器等硬件均可在Proteus得到仿真。在程序的编写调试过程中,可以完全脱离硬件,高效率的完成了程序的编写调试。? ?硬件原理图(电路原理图、硬件仿真图)? ? ? ?? Proteus仿真图? 三.系统流程图:? 1.主程序流程图 ?修改状态数据操作和数码管显示 ? ?开始状态的数码管显示? 4暂停状态的数码管显示较为简单,根据保留的时间参数,刷新数码管,保持刚才的时间显示。? 5中断INT0修改时间的流程图 6中断INT1开始与暂停状态的切换,程序较为简单,按键触发时,在state为1(开始状态)和state为0(暂停状态)来回切换 ? 程序? ? 四、程序?? #includereg51.h? #define?ulong?unsigned?long? char?tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};? char?tab_dp[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x58,0x00,0x10};? #define?LED?P0?????//P0为数码管的段选?#define?WS?P1??//P1为数码管的位选? sbit?time_shift=P3^0;???//P3^0为移位按键 ?sbit?time_set=P3^1;??//P3^1为修改按键 ?sbit?set_inc=P3^2;???//P3^2为增加按键? sbit?time_run=P3^3;??//P3^3为计时开始暂停按键?sbit?LIGHT=P2^0;?sbit?SPEAKER=P2^7;? unsigned?char?sec,min,sec_ge,sec_shi,min_ge,min_shi,t;?//定义秒,分,时,秒的个位,十位,分的个位,十位? int?state;????//秒表状态指示?0-计时暂停??1-正在倒计时??2-计时时间参数修改 ?int?flag;??//秒表修改数据指示?0-分钟十位?1-分钟个位?2-秒钟十位??3-秒钟个位 ?int??blink;? //---------------------------------------------------------------------? void?init();? void?display_run();? void?display_pause();? void?delay(int);?void?time_modify();???? //----------------------------------------------------------------

文档评论(0)

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

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

1亿VIP精品文档

相关文档