欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

单片机课程设计报告 零件计数器 电信论文

  • 资源ID:79674318       资源大小:2.56MB        全文页数:17页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

单片机课程设计报告 零件计数器 电信论文

河海大学物联网工程学院课程设计报告 题 目 零件计数器 专业、学号 电信、 授课班号 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 < reg51.h >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;i>0;i-) for(j=200;j>0;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;i<4;i+) P0=LedOuti; switch(i) case 0:P2=0xef; break; case 1:P2=0xdf; break; case 2:P2=0xbf; break; case 3:P2=0x7f; break; delay(100); *初始化函数*void init() EA=1; /允许中断 EX0=1; /允许外部中断0 IT0=1; /下降沿触发 TR1=1; /启动T1定时器 TMOD=0x20; /定时器T1为工作方式2,初值自动重装八位计数器 TL1=0xfd; /预备单元 TH1=0xfd; /计数初值设定,波特率9600 SCON=0x50; /串行口为方式1,10步异位收发(1+8+1) PCON=0x00; /特殊功能寄存器都为0,波特率不加倍*INT0中断函数*void int0(void) interrupt 0 Ledcount+; /中断计数 if(Ledcount%10=0)&&(Ledcount!=0) BEEP=0; delay(10000);BEEP=1;JDQ=JDQ; if(Ledcount>9999) /超出计数上限后清零 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 张有德 赵志英 涂时亮编著,单片微型机原理、应用与实验.第五版.上海.复旦大学出版社.20062 丁海军、何坤金、王林等编著,程序设计基础(C语言).北京.北京航空航天大学出版社.2009附录附录1:烧写程序附录2:串口调试附录3:实物图

注意事项

本文(单片机课程设计报告 零件计数器 电信论文)为本站会员(痛***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!