收藏 分享(赏)

饮料罐装生产流水线的单片机控制系统设计.doc

上传人:精品资料 文档编号:10639584 上传时间:2019-12-10 格式:DOC 页数:19 大小:743.50KB
下载 相关 举报
饮料罐装生产流水线的单片机控制系统设计.doc_第1页
第1页 / 共19页
饮料罐装生产流水线的单片机控制系统设计.doc_第2页
第2页 / 共19页
饮料罐装生产流水线的单片机控制系统设计.doc_第3页
第3页 / 共19页
饮料罐装生产流水线的单片机控制系统设计.doc_第4页
第4页 / 共19页
饮料罐装生产流水线的单片机控制系统设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、XX 大学课程设计报告课题名称 饮料罐装生产流水线的单片机控制系统设计 院 (系) 机电工程学院 专 业 机械设计制造及其自动化 姓 名 XXXX 学 号 XXXX 起讫日期 2016.8.29-2016.9.9 指导教师 XX 2016 年 9 月 9 日1饮料罐装生产流水线的单片机控制系统设计摘 要本设计是饮料灌装生产流水线的单片机控制系统。其硬件部分主要包括电源电路、开关电路、光电传感器模块、数码显示模块、继电器控制模块、报警模块 6 个主要组成部分。硬件选择以 AT89C51 为主体、数码显示采用 74LS164 串行显示方案,光电传感器采用对射式光电开关电路方案,继电器控制模块采用单

2、片机控制 5V继电器,进而控制交流接触器方案。软件设计主要完成信号检测,多种工作状态的转换,以及显示灌装计数值三个工作。关键词:灌装流水线 单片机 光电传感器 串行数码管显示 继电器控制2目录摘要11.课程设计内容与要求 .31.1 课程设计内容 .31.2 课程设计要求 .32. 控制系统的硬件电路设计 .42.1 硬件电路设计 proteus 软件简介 .42.2 控制系统硬件电路详细设计 .42.2.1 控制系统结构图 .42.2.2 电源电路设计 .52.2.3 单片机开关按钮设计 .52.2.4 光电传感器电路设计 .62.2.5 数码管显示模块 .62.2.6 报警模块 .72.2

3、.7 传送带模块 .72.2.8 灌装设备模块 .83.控制程序设计与仿真 83.1 控制程序设计平台软件 keil uvision2 简介 .83.2 控制程序详细设计 .83.2.1 控制程序流程图 .83.2.2 详细程序设计 .113.3 控制系统 Protues 仿真 .133.3.1 光电传感器仿真 .133.3.2 灌装设备和传送带仿真 .13333 数码管显示仿真 .143.3.4 整体仿真图 .14结束语 .15参考文献 .15附录 I 电路图 .16附录 II C51 源代码 .1731.课程设计内容与要求1.1 课程设计内容设计一套饮料罐装生产流水线的 PLC 控制系统,

4、控制要求:(1) 系统通过开关设定为自动操作模式,一旦启动,则传送带的驱动电机启动并一直保持到停止开关动作或罐装设备下的传感器检测到一个瓶子时停止;瓶子装满饮料后,传送带驱动电机必须自动启动,并保持到又检测到一个瓶子或停止开关动作。(2) 当瓶子定位在罐装设备下时,停顿 1 秒,罐装设备开始工作,罐装过程为 5 秒钟,罐装过程应有报警显示,5 秒后停止并不再显示报警。(3)一旦系统启动,记录罐装瓶数,设最多不超过 9999 瓶。(4)可以手动对计数值清零(复位)。1.2 课程设计要求(1)采用 MCS-51 单片机控制,画出控制系统的硬件电路图;(2)采用 220V 交流电源供电,设计控制系统

5、直流电源模块硬件电路图;(3)编制控制程序,并画出程序框图;(4)撰写课程设计报告。42. 控制系统的硬件电路设计2.1 硬件电路设计 proteus 软件简介Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布

6、图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430等,2010 年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MPLAB 等多种编译器。 12.2 控制系统硬件电路详细设计2.2.1 控制系统结构图图 (1)如图(1)所示整个控制系统输入量有四个,分

7、别为启动开关、停止开关、复位计数值开关以及光电传感器输入信号。输出有三个,分别为数码管显示、传送带继电器以及灌51单片机光电传感器开 启动停止关 复位计数值5V 传送带开关继电器5V 灌装设备开关继电器4 位数码管显示M传送带灌装设备220V继电器电路220V 交流电转 5V 直流稳压电路(供电) 5装设备继电器。单片机在接收到启动开关信号后,控制 4 位数码管显示初始计数值,同时输出信号使传送带继电器线圈得电,进而闭合在强电电路中的相应的继电器开关,使传送带带动瓶子运动。当光电传感器检测到瓶子到达灌装位置时,向单片机发送信号,单片机接收到信号后立即停止传送带,通过内部计时器计时 1S 后启动

8、灌装设备,同时报警指示灯保持常亮。单片机内部定时器继续计时 5S 后,停止灌装设备,关灭报警指示灯,数码管显示值加 1,然后启动传送带等待光电传感器检测到下一个信号开启再一次的循环。在系统运行期间如果接收到停止信号系统会立即关闭传送带和灌装设备,以及数码管显示;如果接收到复位信号,单片机控制的数码管计数值立即清零;如果数码管当前的计数值达到了 9999,再接收到灌装完成的信号数码管显示值会变成 0 进而重新计数。2.2.2 电源电路设计由于设计要求用 220V 交流电供电,而单片机电路需要的电源是直流 5V。故需要设计220V 转 5V 的直流稳压电路。本系统采用的为常见的直流稳压方案如图(2

9、)所示。图 (2)变压器输出端的 9V 电压经桥式整流并电容滤波,在电容 C1 两端大约会有 11V 多一点的电压,假如从电容两端直接接一个负载,当负载变化或交流电源有少许波动都会使 C1 两端的电压发生较大幅度的变化,因此要得到一个比较稳定的电压,在这里接一个三端稳压器的元件 U2。三端稳压器是一种集成电路元件,内部由一些三极管和电阻等构成,在分析电路时可简单的认为这是一个能自动调节电阻的元件,当负载电流大时三端稳压器内的电阻自动变小,而当负载电流变小时三端稳压器内的电阻又会自动变大,这样就能保持稳压器的输出电压保持基本不变。因为我们要输出 5V 的电压,所以选用 7805,7805。前面的

10、字母可能会因生产厂家不同而不同。LM7805 最大可以输出 1A 的电流,内部有限流式短路保护。三端稳压器后面接有电容,起滤波和阻尼作用。2.2.3 单片机开关按钮设计由于单片机上电 P2、P3 口均为高电平,故此处设计最简单的开关电路,单片机口接按钮接地。以停止开关为例,如图 3 所示图(3)62.2.4 光电传感器电路设计如图 4 所示图(4)光电传感器由两部分组成,一部分是发光的二极管,一部分是由光电三极管组成的光电开关。当左部分和右部分没有物体遮挡时,发光二极管的光照射到光电三极管基极上,光电三极管导通,电压比较器 LM393 3 脚电平高于 2 脚 2.5V 输出电压为低电平 0V;

11、当左部分和右部分有物体遮挡时,光电三极管截止,电压比较器 LM393 3 脚电平低于 2 脚电平2,5V 输出电压为高电平 5V。2.2.5 数码管显示模块图(5)显示模块选用 4 个 LED 共阴极数码管,为节省单片机输入输出口选用用 74LS164 芯片进行串行数码显示。接线图如图所示,4 个 74LS164 芯片串行连接,U2 接收来自单片机的数据,U3、U4、U5 输入端接在前一个数据输出的最高位。每一次刷新显示时,单片机通过第一个 74LS164 向显示模块输入 4 个字节通过串行移位的方式,分别保存在 U2、U3、U4、U5内进而控制 4 个数码管的显示。72.2.6 报警模块图(

12、6)报警模块选用 LED 指示灯,由于单片机驱动电流较小故电路中加入三极管进行电流放大。当三极管的基极接收到来自单片机的低电平信号,三极管正向导通,LED 指示灯亮。2.2.7 传送带模块传送带电机模块由两部分组成:一部分为弱电的控制电路(图 7) ,一部分是强电电路如(图 8,图 9) 。图(7) 图(8) 图(9)当三极管的基极接收到来自单片机的低电平信号时,三极管正向导通吸合继电器开关K1,位于强电电路中的 KM1 线圈得电,传送带电机启动运行。当三极管的基极接收到来自单片机的高电平信号时,三极管截止,继电器的线圈通过二极管 D1 放电,K1 断开,KM1 线圈掉电,KM1 断开,电机停

13、止运行。82.2.8 灌装设备模块此模块和传送带模块类似,此处不再赘述,电路图如图 10、图 11、图 12 所示。图(10) 图(11) 图(12)3.控制程序设计与仿真3.1 控制程序设计平台软件 keil uvision2 简介Keil uVision2 是德国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,使用接近于传统 c 语言的语法来开发,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC5

14、1 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强, 使你可以更加贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到 uVision2 的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。 23.2 控制程序详细设计3.2.1 控制程序流程图控制程序框图包括主程序框图图(13)和定时器中断函数框图(14) 。9图(13)YNNNN主程序系统初始化开始开关 on?传送带关闭单片机定时器启动停止开关 on

15、?复位开关 on?收到传感器信号?传送带启动数码管显示初始值传感器信号消失?结束计数值清零YYY10图(14)3.2.2 详细程序设计50ms 中断程序定时器重装初值计数值 t 0 加 1t0=20? t0=120?灌装设备启动报警指示灯灯亮t0=120?或t0=20?灌装设备关闭报警指示灯关灭传送带启动t0=0定时器关闭计数值 cunt 加 1刷新数码管显示cunt=10000? cunt=0刷新数码管显示RETNNYYYNN11(1)数码管显示函数void display()uchar LED_code4; /存放四个数码管显示代码uchar i,j,chr,sel;for(i=0;i1;

16、delay(1); CLK=1;delay(1); (2) 计数显示函数void cunt_disp() /计数显示 disdata0=cunt%1000%100%10; /取个位disdata1=cunt%1000%100/10; /取十位disdata2=cunt%1000/100; /取百位disdata3=cunt/1000; /取千位display();计数显示函数,取出计数值的各个位送给 disdata 数组。(3)关闭显示函数void disp_off() /关闭显示函数uchar i,j,chr,sel;for(i=0;i1;delay(1); CLK=1;delay(1);

17、关闭显示函数本质上是通过单片机赋值将数码管的每个 LED 灯关灭。12(4)初始化函数void init() /初始化TMOD=0x01; /定时器初始化TH0=(65536-50000)/256; /50msTL0=(65536-50000)%256;EA=1; /开中断ET0=1;t0=0; /时间变量 chuansong=1; /传送带关闭guanzhuang=1; /灌装设备关闭disp_off(); /显示关闭cunt=0; /初始值TR0=0;初始化函数为系统未启动状态,此时初始化系统变量并且关闭所有设备。(5) 定时器中断函数void timer0() interrupt 1 /

18、50ms 定时器中断函数TH0=(65536-50000)/256; /50ms 设置TL0=(65536-50000)%256;t0+;if(t0=20) /1s 停顿guanzhuang=0;baojing=0;if(t0=120) /1S 停顿加 5 秒灌装 guanzhuang=1; /灌装设备启动baojing=1; /报警灯亮chuansong=0; /传送带关闭t0=0; /t0 重新赋值 0TR0=0; /关闭定时器cunt+; /显示值加 1if (cunt=10000) /计数值重置cunt=0;cunt_disp(); /刷新显示(6) 主函数void main() /主

19、函数 loop:init(); /初始化while(auto_on); /等待启动chuansong=0; /传送带启动cunt_disp(); /显示当初始计数值while(1) /主运行程序if(!no_stop) goto loop; /判断是否有停止信号if(rst_cunt=0) /判断是否复位计数值cunt=0; /复位cunt_disp(); /刷新显示if(!cunt_in) /接收到传感器信号13chuansong=1; /传送带停止TR0=1; /定时器打开while(!cunt_in); /等待信号结束3.3 控制系统 Protues 仿真3.3.1 光电传感器仿真此处用

20、按钮将发光二极管短路来模拟有物体遮挡的情况。按钮未按下(无物体遮挡)时电压比较器输出高电平,按钮按下之后输出为低电平。3.3.2 灌装设备和传送带仿真此处选用 protues 中的直流单相电机仿真交流电机。14333 数码管显示仿真3.3.4 整体仿真图15结束语通过本次的课程设计,学到了很多关于单片机仿真的东西。在做仿真电路事,遇到了一些困难尤其是电源稳压模块和光电传感器模块,但是通过上网查资料最终还是比较好的解决了这些问题,另外在编写C51 程序时也遇到了一些问题,包括中断函数的编写和信号的处理,但最终也是通过不断地调试,思考解决了问题。通过本次本次的课程设计,我对专业知识有了更深的认识,

21、相信会对我以后的学习或者工作有很大帮助。参考文献1百度百科.Protues. http:/ http:/ I 电路图单片机板电路图强电电路电路图17附录 II C51 源代码#include typedef unsigned char uchar; typedef unsigned int uint; sbit Din=P10; /数码管数据输入sbit CLK=P11; /时钟输入sbit auto_on=P22; /自动模式开启sbit rst_cunt=P23; /复位计数值sbit baojing=P27; /报警信号输出sbit cunt_in=P24; /传感器输入sbit gua

22、nzhuang=P25; /灌装设备控制端sbit chuansong=P26; /传送带控制端sbit no_stop=P30; /停止信号输入uchar data disdata4;uint cunt,t0,t1;unsigned char code LED_Map10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ;/0-9void init();void delay(int count) unsigned int i;for(i=0;i1;delay(1); CLK=1;delay(1); void cunt_disp() /计数显

23、示 disdata0=cunt%1000%100%10; /取个位disdata1=cunt%1000%100/10; /取十位disdata2=cunt%1000/100; /取百位disdata3=cunt/1000; /取千位display();void disp_off() /关闭显示函数uchar i,j,chr,sel;for(i=0;i1;delay(1); CLK=1;18delay(1); void main() /主函数 loop:init(); /初始化while(auto_on); /等待启动chuansong=0; /传送带启动cunt_disp(); /显示当初始计

24、数值while(1) /主运行程序if(!no_stop) goto loop; /判断是否有停止信号if(rst_cunt=0) /判断是否复位计数值cunt=0; /复位cunt_disp(); /刷新显示if(!cunt_in) /接收到传感器信号chuansong=1; /传送带停止TR0=1; /定时器打开while(!cunt_in); /等待信号结束void init() /初始化TMOD=0x01; /定时器初始化TH0=(65536-50000)/256; /50msTL0=(65536-50000)%256;EA=1; /开中断ET0=1;t0=0; /时间变量 chuan

25、song=1; /传送带关闭guanzhuang=1; /灌装设备关闭disp_off(); /显示关闭cunt=9998; /初始值TR0=0;void timer0() interrupt 1 /定时器中断函数TH0=(65536-50000)/256;/50msTL0=(65536-50000)%256;t0+;if(t0=20) /1s 停顿guanzhuang=0;baojing=0;if(t0=120) /1S 停顿加 5 秒灌装guanzhuang=1;baojing=1;chuansong=0;t0=0;TR0=0;cunt+;if (cunt=10000)cunt=0;cunt_disp();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报