免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河海大学物联网工程学院课程设计报告 题 目 零件计数器 专业、学号 电信、 授课班号 275503 学生姓名 指导教师 金纪东 完成时间 2012/12/25 摘要本次单片机课程设计我组选择的题目是零件计数器,零件计数器本身在生产实践中具有很实际的用途,选择这个项目可以绕过我们更好的把课堂上学到的课本知识和理论内容与生产实践结合起来,提高对实际问题的动手操作能力以及解决问题的能力,进一步加深学生对于实际的电子元件电路功能的理解与运用,对于设计实际的实用程序来解决一系列生产生活遇到的问题的能力有着显著的家加强与提高。零件计数器的功能是通过感应器对零件数量进行中断计数,并由数码管动态显示出来,并通过实用的程序将零件数目通过串口传送给pc机,还能够通过实时的检测电路将之与蜂鸣器连接起来,起到整十报警以及零件打包的功能。基于单片机构成的零件计数器研究的主要内容包括:at89c51单片机用何种方式对外部计数脉冲进行计数显示控制、led显示驱动模块的选择、如何通过串口与pc机完成实时连接。在这个设计中主要需要解决的问题便是如何提高at89c51单片机的抗干扰能力以及稳定性。关键字:单片机 零件计数器 led显示 串口连接目录第1章 系统设计1.1电路框图31.2软件设计方框图及流程图41.3电路功能6第2章 计数器程序2.1分段程序及功能82.2问题及解决方案11第3章 实验结果及讨论3.1实验结果113.2结论113.3心得体会12参考文献12附录13第1章 系统设计1.1 电路框图4位共阴数码管动态显示8个限流电阻 p0 单片机at89c51 p2 p3复位选位int0蜂鸣器继电器电路总图与功能如图所示,每当来一次外部中断时,内部计数一次,并将数值通过4位共阴数码管动态显示出来。而单片机的p2口可以选择四根不同的数码管来动态显示,通过视觉暂留达到同时显示的效果。同时内部程序检测每当计数十次时,会形成一个继电器闭合的零件打包动作,并通过程序使得蜂鸣器发出警报。1.2 软件设计方框图及流程图由于单片机实验箱的存在,因此硬件部分无需做过多准备,只需根据硬件部分完成软件设计即可,在此,我们使用基于单片机的c语言编程。c语言是一种高级程序设计语言,其语法简单适用性强,在单片机编程时很方便。本次设计中使用的c语言编程软件为keil。软件设计框图如下:初始化函数延时函数显示函数led显示串口通信延时函数计满提示部分主函数外部中断流程图如下:开始初始化零件数为0led动态显示否是否按下s_int0?是零件数加1led动态显示否零件数是十的倍数?是蜂鸣器响一次,继电器闭合,执行零件打包执行串口发送函数是否按下复位键是否编写零件计数程序时应当注意需要事先的几个功能,可以分段编写,最后通过主程序连接。这段程序的重点便是一段循环中断计数程序,在数值加1的同时要给串口发出同样的信息,每当计数十次时还需要转到零件打包以及蜂鸣器程序中执行。1.3 电路功能b部分是单片机的最小系统部分,只有这部分电路正常,整个系统才能工作。单片机为内含8k flash程序存储器的stc89c52rc,ea接高电平;各并行口都加了10k的上拉电阻;晶振为11.0592m。设置了上电复位和手动复位电路。s1为手动复位按钮。c部分电路由4位一体的数码管led1、单个数码管led2和8个独立发光二极管l1-l7组成。这3个部分都是共阴结构,并联在一起,连接在p0口上。led1用于完成led动态显示实验,各个位选线为p24p27,段码由p0口输出;led2的com端接地,完成led静态显示实验;l1l7,可以方便地读出p0输出的二进制数据,亦可做流水灯实验。7407在此起驱动作用。f部分电路是由555和电容组成的单稳电路。当s_int0按钮按下后产生一个低电平单稳信号送单片机的int0,同时d_plus1亮一次,作为外部中断请求信号。i部分电路为蜂鸣器和继电器电路。蜂鸣器采用9012三极管驱动,其基极接到rd端,当rd端为低电平时,三极管导通,蜂鸣器响。否则关断。继电器采用9013三极管驱动,其基极接到wr端,当wrd端为低电平时,三极管关断,继电器不吸合,常闭触点闭合,常开触点打开,d1熄灭;反之则反。第2章 计数器程序2.1 分段程序及功能*开头及引脚对应程序*#include sbit beep=p37; sbit jdq=p36;unsigned int ledcount=0;unsigned int ledout8;*led数字码表*unsigned char code mabiao=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;*延时函数*void delay(unsigned int i) char j; for(i;i0;i-) for(j=200;j0;j-);*串口发送函数*void sint()sbuf = ledcount%10000/1000 + 0x30; while(!ti);ti=0;sbuf=ledcount%1000/100+ 0x30;while(!ti);ti=0;sbuf=ledcount%100/10+ 0x30;while(!ti);ti=0;sbuf=ledcount%10+ 0x30;while(!ti);ti=0;sbuf=n;while(!ti);ti=0;*led显示程序*void display() int i; ledout0=mabiaoledcount%10000/1000; ledout1=mabiaoledcount%1000/100; ledout2=mabiaoledcount%100/10; ledout3=mabiaoledcount%10; for(i=0;i9999) /超出计数上限后清零 ledcount=0;sint(); *主程序*void main(void) init(); while(1) display(); 2.2问题及解决方案问题1:运用指数函数计数以及选择四根数码管显示,导致程序运行速度过慢,灯光闪烁。解决方案:改进后去掉指数函数,改用每一根数码管分别使用计算出显示数值的方法。问题2:计数值达到时蜂鸣器持续响,直到按下第十一次计数按键方才停止。解决方案:在蜂鸣器程序中增加beep清零和延时语句,可以让蜂鸣器在计数第十次时只响一声,并可改变响的时间。第3章 实验结果及讨论3.1实验结果本此课程设计,使用到keil c51编程器、烧写工具以及串口助手等软件工具。先是利用keil软件编写程序,编译无错后再利用烧写工具将其烧写进52单片机中,按下s_int0按钮,可得到led动态显示数据的变化,本次设计中用到4个数码管,也就是说,最高显示零件数目可达9999个。另外,还可以利用串口助手,将零件数目实时传送给pc机,此结果可在串口助手上观察到。结果是完全符合所需零件计数器的要求的。至此,可以说本次设计是成功的。3.2结论本次课程设计的主要特点是利用c51编程实现基于单片机的零件计数器,而非使用汇编语言。在编程中,要学会写出各种子程序,然后合理的调用它们,还要根据实际显示结果不断地去修改和完善,使其最终显示出符合要求的结果,这不仅考察了我对于单片这门课的学习掌握情况,还考察了我对c语言的基础知识是否扎实,是否可以将所学的学科融会贯通。此外,还有其他的特点,设计中用到烧写工具以及串口助手等软件工具,无需考虑硬件设计,只需完成软件设计部分。本次课程设计完成了基于单片机的零件计数器的设计,让我对于单片机的学习有了更深一层的领悟。3.3心得体会经过这段时间的学习,我对单片机原理与运用也有了更深层次的了解,同时也对过去所学的知识进行了温习,对我组设计的课题零件计数器所用到的知识也进行了专门的梳理和消化。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次课程设计,我也知道了自己的不足。书本上的知识是死的,只有通过实践和具体的实例运用,才能真正掌握知识、取得进步。 这次课程设计的经历使我终身受益,我感受到做任何事情都是要真正用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语口语提升练习与场景模拟
- 2025新疆第八师石河子市人民医院面向社会招聘事业单位工作人员234人笔试考试备考题库及答案解析
- 2025年河南大学新闻与传播学院劳务派遣人员招聘4人考试笔试模拟试题及答案解析
- 户外家具行业市场调研与发展趋势分析
- 果蔬采摘后保鲜处理最佳实践
- 农业种植业病虫害防治方案
- 2025四川巴中市恩阳区人民医院招聘护理专业技术人员15人考试笔试备考题库及答案解析
- 城市公共交通优化服务策略
- 银行零售业务发展规划
- Unit 3 At the zoo第6课时示范课教案【英语人教三起PEP版三年级下册】
- 2025年民政部所属事业单位公开招聘应届毕业生49人历年高频重点模拟试卷提升(共500题附带答案详解)
- 中国商务环境调查报告 2025 -中国美国商会
- 5走近我们的老师-老师您辛苦了(第2课时)(说课稿)2023-2024学年统编版道德与法治三年级上册
- 财务之航新征程
- 古代拜师礼流程
- 2mm土工膜长丝土工布检测报告合格证
- 发电厂工程循环水管道焊接施工方案
- 全国大学生职业规划大赛成长赛道
- TSG Z0007-2023《特种设备生产单位质量安全总监和质量安全员考试指南》
- 《报批报建流程》课件
- 2022年3月河北省普通高中学业水平合格性考试数学试题(含答案解析)
评论
0/150
提交评论