1、零件计数器单片机实践报告河海大学计信学院08通信工程(常)单片机课程设计报告课程名称:零件计数器 学号:0862310229 姓名: 年级专业:08通信工程指导老师:刘玉宏、刘燕完成时间:10.12.8 摘要:本次单片机课程设计我组选择的题目是零件计数器,零件计数器本身在生产实践中具有很实际的用途,选择这个项目可以绕过我们更好的把课堂上学到的课本知识和理论内容与生产实践结合起来,提高对实际问题的动手操作能力以及解决问题的能力,进一步加深学生对于实际的电子元件电路功能的理解与运用,对于设计实际的实用程序来解决一系列生产生活遇到的问题的能力有着显著的家加强与提高。零件计数器的功能是通过感应器对零件
2、数量进行中断计数,并由数码管动态显示出来,并通过实用的程序将零件数目通过串口传送给PC机,还能够通过实时的检测电路将之与蜂鸣器连接起来,起到整十报警以及零件打包的功能。关键字:计数器,单片机,数码显示,串口通信目录1设计内容设计要求42设计方案2.1电路框图42.2流程框图52.3分段原理52.4电路功能63计数器主程序3.1分段程序及功能83.2问题及解决方案124附录4.1软件介绍134.2心得体会154.3参考文献151设计内容设计内容:把接在INT0上的单稳信号当作零件信号,单片机计数一次,当计满十次时,蜂鸣器发出一声警告音,并使继电器闭合一次,产生零件打包动作。要求和提高要求主要掌握
3、外部中断和动态显示的应用,提高实时通过串口把零件数量发送给PC。2设计方案2.1电路框图电路总图与功能如图所示,每当来一次外部中断时,内部计数一次,并将数值通过4位共阴数码管动态显示出来。而单片机的P2口可以选择四根不同的数码管来动态显示,通过视觉暂留达到同时显示的效果。同时内部程序检测每当计数十次时,会形成一个继电器闭合的零件打包动作,并通过程序使得蜂鸣器发出警报。2.2流程框图否是是编写零件计数程序时应当注意需要事先的几个功能,可以分段编写,最后通过主程序连接。这段程序的重点便是一段循环中断计数程序,在数值加1的同时要给串口发出同样的信息,每当计数十次时还需要转到零件打包以及蜂鸣器程序中执
4、行。2.3分段原理主程序:主程序为中断初值设定程序,包括中断计数超出时的清零程序,中断以及时钟的设定,计数初值的计算以及波特率的计算,还有子程序的调用。延时子程序:包括两种不同的延时程序,分别是计数时需要的短延时以及蜂鸣器等需要的较长时间延迟。数码管显示子程序:包括P2口的数码管选择设定以及计数数值对应的数码管显示数值的设定,通过独特的计算方法将计数总值与四根不同的数码管显示一一对应起来。外部中断0 与串口数据发送子程序:每来一次中断计数值加1,同时向串口发送一次此时的数值。串口中断子程序:串口数据发送的开始和停止程序。2.4电路功能2.4.1蜂鸣器及继电器原理 蜂鸣器采用9012三极管驱动,
5、其基极连接到RD端,当RD端为低电平时,三极管导通,蜂鸣器响,否则关断。 继电器采用9013三极管驱动,其基极连接到WR端,当WRD端为低电平时,三极管关断,继电器不吸合,常闭触点闭合,常开触点打开,D1熄灭;反之则反。2.4.2数码管显示原理 4个并联7段共阴数码管,用于动态显示。动态显示部分电路由4 位一体的数码管LED1、单个数码管LED2和8个独立发光二极管L1-L7组成。这3个部分都是共阴结构,并联在一起,连接在P0口上。LED1用于完成LED动态显示实验,各个位选线为P24P27,段码由P0口输出;LED2的COM端接地,完成LED 静态显示实验;L1L7,可以方便地读出P0输出的
6、二进制数据,亦可做流水灯实验。7407 在此起驱动作用。3计数器主程序3.1分段程序及功能 #include unsigned int i=0,flag=0; void delay(void)/延时子程序 unsigned int j; for(j=0;j1000;j+); / void delay2(void)/延时子程序 unsigned int j; for(j=0;j9999) /超出计数上限后清零 i=0; if(flag=1 & i%10=0) /每计数10次后蜂鸣器响一次,且闭合 一次继电器 RD=0; /蜂鸣器响 WR=1; /继电器闭合 delay2(); RD=1; WR=
7、0; flag=0; /计数标志清零 display(); 3.2问题及解决方案1.遇到的问题:运用指数函数计数以及选择四根数码管显示,导致程序运行速度过慢,灯光闪烁。改进方法:改进后去掉指数函数,改用每一根数码管分别使用计算出显示数值的方法。2.遇到的问题:计数值达到时蜂鸣器持续响,直到按下第十一次计数按键方才停止。解决方法:在蜂鸣器程序中增加flag清零语句,中断中增加flag置位语句,可以让蜂鸣器在计数第十次时只响一声。4附录4.1软件介绍烧写程序:(1)打开STC-ISP,如下图界面,在MCU Type栏目下选中单片机,如STC89C51。(2)根据您的9针数据线连接情况选中COM端口
8、,波特率一般保持默认,如果遇到下载问题,可以适当下调一些,按图示选中各项。(3)先确认硬件连接正确,按如图点击“打开文件”并在对话框内找到您要下载的HEX文件(4)按下图选中两个条件项,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击“Download/下载”。 (5)手动按下电源开关便即可把可执行文件HEX写入到单片机内,如图是正在写入程序截图。 (6)图示程序写入完毕,目标板开始运行程序结果。串口调试:1 设置串口参数: 串口号:1-10;波特率:96002. 接收数据: 点击打开/关闭串口区中的打开串口按钮。4.2心得体会通过本次的单片机课程设计,我深刻体会和理解了如何将所学的单片机理论知识和实际生产生活需要结合起来,进行实践运用的方法,极大的锻炼了我的实际动手和根据实际需要设计程序的能力。通过设计零件计数器,我加深了对于课堂上所学知识的掌握和理解,对于串口通信以及中断程序的掌握更上一个台阶,中间的实践动手过程中通过对遇到的实际问题的思考和解决,极大的提升了我个人的实践水平以及综合素质。4.3参考文献1 AVR单片机应用设计作者:丁化成 耿德根 李君凯出版社:北京航空航天大学出版社2 单片机原理与应用设计书籍作者: 张毅刚,彭喜元编著图书出版社:电子工业出版社3 C51单片机技术教程 书籍作者:田希晖,薛亮儒 人民邮电出版社,2007
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1