欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    毕业论文-基于51单片机的流量控制器的设计与实现.doc

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

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

    毕业论文-基于51单片机的流量控制器的设计与实现.doc

    辽东学院本科毕业论文(设计)题目辽 东 学 院 本 科 毕 业 论 文(设 计)基于51单片机的流量控制器的设计与实现The design and implementation of traffic controller based on MCU学 生 姓 名: 学 院: 专 业: 班 级: 学 号: 指 导 教 师: 审 阅 教 师: 完 成 日 期: 辽 东 学 院Eastern Liaoning University摘 要本设计基于51单片机实现一款精简功能的液体灌装机。设计实现了两个灌装嘴,容器到位自动开始灌装的功能,装至设定容量,自动停止,并计件数;12864液晶显示器显示当前灌装规格和灌装件数;设计中按键操作可以设定灌装规格;而且设计系统还具备设备清洗功能键设置,及排空液体储料罐,关闭后清洗,然后排空清洗液。设计中研究单片机技术,详细的介绍了单片机的应用。设计基于单片机实现控制器;研究传感器技术实现物料的精确计量。关键词:51单片机;流量控制;12864液晶;液体灌装机 - II -辽东学院本科毕业论文(设计)题目目 录摘 要I一、绪论1(一)研究背景1(二)单片机技术发展现状2二、方案论证3(一)控制芯片选择3(二)显示模块的选择3(三)系统总体结构框图4三、 硬件电路设计5(一)单片机系统介绍51.复位方式82.时钟电路9(二)12864液晶显示电路10(四) 键盘电路11(五)电磁阀控制电路11(六)计数单元电路12(七)脉冲流量计的工作原理13(八)电磁阀选择13四、软件设计15(一)主程序流程图15(二)编程环境介绍16(三)软件程序各模块函数介绍171、 液晶屏初始化函数:172、计数中断函数:183、主程序184、延时函数介绍19结 论21参考文献22附录A 硬件电路图23附录B 程序源代码24致 谢33- III -辽东学院本科毕业论文(设计)题目一、绪论(一)研究背景上世纪60年代中期,中小规模集成电路问世,使得原来的电路变得更小,因此,由集成电路做成的电子测量仪器体积更为减小,同时其测量范围更为宽广,测量精度大为提高。不过随着检测的数量提高,对速度,智能控制要求大大提高,单单由集成电路搭建的测量电路已无法满足测量需求,上世纪世纪70年代伊始,单片机机、微电子等技术迅猛发展。在它们的推动下,为适应现代化工业生产甚至战争的新需求,测量技术与仪器不断进步,相继诞生了智能仪器、PC仪器、VXI仪器、虚拟仪器及互换性虚拟仪器等微机化仪器及其自动测试系统,计算机与现代仪器设备间的界限日渐模糊,测量领域和范围不断拓宽。近10年来,以Internet为代 表的网络技术的出现以及它与其他高新科技的相互结合,不仅已开始将智能互联网产品带入现代生活,而且也为测量与仪器技术带来了前所未有的发展空间和机遇,网络化测量技术与具备网络功能的新型仪器应运而生。 中国电子测量技术经过40多年的发展,为我国国民经济、科学教育、特别是国防军事的发展做出了巨大贡献。随着世界高科技发展的潮流,中国电子测量仪器也步入了高科技发展的道路,特别是经过“九五”期间的发展,我国电子测量技术在若干重大科技领域取得了突破性进展,为我国电子测量仪器走向世界水平奠定了良好的基础。进入21世纪以来,科学技术的发展已难以用日新月异来描述。新工艺、新材料、新的制造技术催生了新的一代电子元器件,同时也促使电子测量技术和电子测量仪器产生了新概念和新发展趋势随着信息技术的发展日新月异,一个以信息资源的采集、开发、利用为特征的信息技术革命正席卷全球,信息技术已广泛的渗透到社会各个领域,在世界经济和社会发展中发挥着越来越重要的作用。日前各个发达国家都在致力于信息化建设,以此来加速本国经济的发展。发展信息产业有许多关键的要素,如单片机、通信、集成电路、软件和信息服务业的建设等。但是如何将人类的社会活动和生产活动与现代化的信息传输和处理手段联系在一起也是一个重要的课题,只有解决了这个实际要求,才能使人类享受到信息技术带来的高度的物质文明和精神文明。如今,可编程的单片机系统被广泛应用在大型生产线中,由单片机控制的自动化系统编程灵活,可以针对具体情况进行程序设计,调试。如今为各大企业所青睐(二)单片机技术发展现状自单片机出现至今,单片机技术已走过了近20年的发展路程。纵观20年来单片机 发展历程可以看出,单片机技术的发展以微处理器(MCU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展,随着半导体技术的飞速发展, 单片机更新换代的速度越来越快,以386、486、586为代表的MCU,很短的时间内就被淘汰出 局,而传统的单片机如68HC05、8051等年龄已有15岁,产量仍是上升的。这一方面是由 于其对相应应用领域的适应性,另一方面是由于以该类CPU为核心,集成以更多I/O功能 模块的新单片机系列层出不穷。可以预见,一些成功上市的相对年轻的CPU 核心,也会随 着I/O功能模块的不断丰富,有着相当长的生存周期。新的CPU类型 的加盟,使单片机队伍 不断壮大,给用户带来了更多的选择余地, 这是当前单片机技术发展的另一动向。长期以来,单片机技术的发展是以8位机为主的。随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到了长足发展。以Motorola 68K为CPU的32位单片机97年的销售量达8千万枚。过去认为由于8位单片机功能越来越强,32位机越来越便宜,使16位单片机生存空间有限,而16位单片机的发展无论从品种和产量方面,近年来都有较大幅度的增长。MCU发展中表现出来的速度越来越快是以时钟频率越来越高为标志的。而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺牲运算速度是单片机技术发展之追求。一些8051单片机兼容厂商改善了单片机的内部时序,在不提高时钟频率的条件下,使运算速度提高了很多,Motorola单片机则使用了琐相环技术或内部倍频技术使内部总线速度大大高于时钟产生器的频率。68HC08单片机使 用4.9M外部振荡器而内部时钟达32M,而M68K系列32位单片机使用32K的外部振荡器频率内部时钟可达16MHz以上。现在可以说单片机是百花齐放的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,且功耗越来越低,CS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗,电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。二、方案论证(一)控制芯片选择方案一:采用Atmel 公司生产的89C51 8位单片机。该单片机具有成本低,性价比高的优点,且编程较方便,其外部具有32 个可编程I/O 口、内部含有3 个16 位定时器/计数器、可使用八个中断源、并且可进行全双工的串行通信。但是其内部模块较少、功能局限性大,并且内部没有集成模/数转换模块、脉冲宽度调制模块,如果需要使用AD模块和脉冲宽度调制模块的话需要外加这些外围电路,比较麻烦。 方案二:采用 Freescale 公司生产的MK10DN512 系列32位单片机。该单片机内部具有128K 的RAM 和128K 的ROM、512K 可编程Flash 存储器、16 路精度为8bit/10bit/12bit 的AD转换模块、16路脉冲宽度调制(PWM)通道、8个定时器/计数器、2个全双工UART 串行通道、看门狗定时器、80 个可编程I/O 口、16个外部事件触发中断引脚、超过150个中断输入源。是一款性能十分强大的综合性单片机,并且内部自带PLL 模块,总线频率最高可以设置成256MHz,运算速度快并稳定。100 引脚的MK10DN512 芯片的质量仅为50g。不过其做工复杂,成本较高,因此性价比较低,一般应用在汽车,航天等高精度控制领域。在本次设计中,流量计回传为脉冲型,因此不必采集模拟量,且控制方式为电平式,从成本的角度出发,89C51单片机完全可以满足要求,因此本次设计中选择性价比更高的89C51单片机。 (二)显示模块的选择方案一:采用液晶1602作为显示模块,1602液晶每行可显示16个字符一共可以显示两行,可以显示数字和字符但是不能显示汉字,由于系统中采集的信息有可能是汉字的所以没有选择1602液晶。方案二:采用液晶12864,,12864液晶显示可以显示汉字,带有字库显示方便技术成熟,对于系统而言满足系统要求。可以显示较多的信息了,本系统要求显示信息较较多所以本设计选用12864作为显示单元的显示器。(三)系统总体结构框图本次设计的流量控制器系统分别为电源模块,键盘和12864屏幕人机对话模块,单片机最小系统模块,继电器执行模块,以及计数单元模块等,总体结构框图如图2.1所示:计数传感器继电器控制电磁阀AT89C51 单片机最小系统模块流量传感器电源模块键盘与12864屏幕图2.1主控模块系统总设计结构图三、 硬件电路设计本次设计的流量控制器系统主要由ATMEL公司的AT89C51单片机最小系统、两个用于计数的红外光电传感器、用于控制液体电磁阀门的继电器、流量计、以及带显示屏和按键系统的人机对话外设、电源模块部分等。(一)单片机系统介绍AT89C51属于MCS-51系列单片机。在MCS-51系列中,各类单片机是相互兼容的,只是引脚功能略有差异。在器件引脚的封装上,MCS-51系列机通常有两种封装:一种是双列直插式封装,常为HMOS型器件所用;另一种是方形封装,大多数在CHMOS型器件中使用。其中,引脚1和引脚2(方形封装为引脚2和引脚3)的第二功能仅用于8052/8032,NC为空引脚。如下图所示。AT89C51有40条引脚,共分为端口线、电源线和控制线三类。1端口线(4×8=32条)8051共有四个并行I/O端口,每个端口都有八条端口线,用于传送数据/地址。由于每个端口的结构各不相同,因此它们在功能和用途上的差别颇大。现对它们综述如下:P0.7P0.0:这组引脚共有八条,为P0口所专用,其中P0.7为最高位,P0.0为最低位。这八条引脚共有两种不同的功能,分别使用于两种不同的情况之下。第一种情况是AT89C51不带片外存储器,P0口可以作为通用I/O口使用,P0.7P0.0用于传送CPU的输入/输出数据。这时,输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性。第二种情况是AT89C51带片外存储器,P0.7P0.0在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。图3.3最小系统电路图其中,8751的P0口还有第三种功能,即它们可以用来得8751片内EPROM编程或进行编程后的读出校验。这时,P0.7P0.0用于传送EPROM的编程机器码或读出校验码。P1.7P1.0:这八条引脚和P0口的八条引脚类似,P1.7为最高位,P1.0为最低位。当P1口作为通用I/O使用时,P1.7P1.0 的功能和P0口的第一功能相同,也用于传送用户的输入输出数据。8751的P1口还有第二功能,既它在8751编程/校验时用于输入片内EPROM的低8位地址。P2.7P2.0:这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样还可以传送存储器的读写数据。8751的P2.7P2.0还具有第二功能,即它可以配合P1.7P1.0传送片内EPROM12位地址中的高八位地址。P3.7P3.0:这组引脚的第一功能和其余三个端口的第一功能相同。第二功能作控制用,每个引脚并不完全相同,如表1所示。 表1 P3口各位的第二功能P3口的位第二功能 注释P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDT0T1串行数据接收口串行数据发送口外中断0输入外中断1输入计数器0计数输入计数器1计数输入外部RAM写选通信号外部RAM读选通信号2电源线(2条)VCC为+5V电源线,VSS为接地线。3控制线(6条)ALE/:地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/线上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器。以便空出P0.7P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/线上输出频率为fOSC/6的脉冲序列。该脉冲序列可用作外部时钟电源或作为定时脉冲源使用。对于8051,ALE/线还具有第二功能。它可以在对8051片内EPROM编程/校验时传送52ms宽的负脉冲。/VPP:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若=1,则允许使用片内ROM;若=0,则允许使用片外ROM。对8751,/VPP用于在片内EPROM编程/校验时输入21V编程电源。:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在线上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下,线均为高电平封锁状态。RST/VPD:复位/备用电源线,可以时8051处于复位(即初始化)工作状态。通常,8051 的复位有自动上电复位和人工按钮复位两种。RST/VPD的第二功能是作为备用电源输入端。当主电源VCC发生故障而降低到规定低电平时,RST/VPD线上的备用电源自动投入使用,以保证片内RAM中信息不丢失。在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路等也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接8051片内OSC的定时反馈回路。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使MCS-51片内的OSC电路按石英晶振相同频率自激振荡。通常,fOSC的输出时钟频率fOSC为0.5MHz16MHz,典型值为12MHz或11.059MHz。电容C01和C02可以帮助起振,典型值为30pf,调节它们可以达到微调fOSC的目的。MCS-51所需的时钟也可以由外部振荡器提供。外部时钟源应是方波发生器,频率应根据所用MCS-51中的具体机型确定。1.复位方式51单片机的复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现复位电路89C51系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图3.1中所示。图中电容C和电阻R对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R,也能达到上电复位的操作功能,为保险起见,本次复位电路加入电阻R。复位电路如图3.1所示:图3.1复位电路图2.时钟电路单片机工作时,是按拍从ROM中取指令,然后按步执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。AT89C51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为12MHz,则一个机器周期就是1us。而DJNZ指令是双周期指令,所以执行一次要2us。如果该指令需要执行500次,正好1000us,也就是1ms。机器周期不仅对于指令执打有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHz晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。所以,如果最小系统中没有时钟电路,便没有时钟周期,单片机也就无法工作。为此本次设计了由一个12mHZ晶振,两个滤波电容,和一个起振电阻组成的时钟电路来为最小系统中的AT89C51单片机提供时钟脉冲。本次设计始终电路如图3.2所示: 图3.2时钟电路图(二)12864液晶显示电路本次采用的显示屏为12864液晶显示屏,相较于数码管显示电路,12864液晶显示屏具有结构简单,刷新速度快,不包含像数码管外围驱动电路,极大程度降低了故障的发生率,12864液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192 个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等 12864屏幕IO口电路如图3.4所示图3.4 12864屏幕IO口电路图(四) 键盘电路本次设计需要设置灌装规格,容量等,需要使用按键电路来给单片机提供信息,按键开关采用共地方式,即为当按下按键时,引脚输出低电平,当待机状态时,引脚输出高电平键盘电路如图3.5所示:图3.5键盘电路原理图(五)电磁阀控制电路继电器执行模块电路如图3.6所示:图3.6继电器执行模块电路图本次系统设计输出方式为单片机通过继电器驱动电路,从而控制电磁阀门的开闭,因为单片机的IO口输出为带载能力很微弱的电压信号,驱动能力极低,因此需要使用一个S8050NPN三极管来作为继电器的驱动电路,当三极管基极输出为低电平时,三极管的发射极和集电极具有很大阻抗,可以近似看做为断路状态,当基极为高电平时,发射极和集电极导通,这时,发射机为高电平,从而驱动继电器合闸,控制电磁阀门开启。(六)计数单元电路本次设计中使用的计数单元为光电式计数单元。传统机械触碰开关结构复杂,体积大,且无法安装在固定位置,利用光电检测技术是工业光电信息技术的主要方式,随着现代科学技术以及复杂自动控制系统和信息处理技术的提高,它以测量精度高、速度快、非接触、频宽与信息容量极大、信息效率极高及自动化程度高等突出特点发展十分迅速,并推动着信息科学技术的发展。 随着科学技术的发展,光电电子计数器的辅助功能也逐渐增加,现在已经出现了多功能计数器,多功能计数器产品的响应度较高,交直、流电两用、耗能低、价格低、无机械碰撞、无磨损、使用寿命长,既可计数,又可计算,还可实现断线报警;通用光电计数器不仅可测频率、周期还可以测多周期平均、时间间隔、频率比和累计等。本次使用的光电计数器由两部分组成,即为发射部分和接收部分,其中发射部分为LED,可以发出红外光,接收部分为红外接收管,当接收管接收到发射管的红外光时,可以输出高电平,当红外光被容器屏蔽时,可输出低电平,单片机可以根据计数器输出的高低电平来计算容器数。光电计数单元模块电路如图3.7所示:图3.7光电计数模块电路图(七)脉冲流量计的工作原理在管道中心安放一个涡轮,两端由轴承支撑当流体通过管道时,冲击涡轮叶片,对涡轮产生驱动力矩,使涡轮克服摩擦力矩和流体阻力矩而产生旋转在一定的流量范围内,对一定的流体介质粘度,涡轮的旋转角速度与流体流速成正比由此,流体流速可通过涡轮的旋转角速度得到,从而可以计算得到通过管道的流体流量设计中选用的流量计实物图如图3. 8所示:图3.8流量计实物图涡轮的转速通过装在机壳外的传感线圈来检测当涡轮叶片切割由壳体内永久磁钢产生的磁力线时,就会引起传感线圈中的磁通变化传感线圈将检测到的磁通周期变化信号送入前置放大器,对信号进行放大、整形,产生与流速成正比的脉冲信号,送入单位换算与流量积算电路得到并显示累积流量值;同时亦将脉冲信号送入频率电流转换电路,将脉冲信号转换成模拟电流量,进而指示瞬时流量值。(八)电磁阀选择纵观国内外电磁阀,到目前为止,从动作方式上可分为三大类即:直动式、反冲式、先导式,而从阀瓣结构和材料上的不同以及原理上的区别反冲式又可分为:膜片式反冲电磁阀、活塞式反冲电磁阀;先导式又可分为:先导式膜片电磁阀、先导式活塞电磁阀;从阀座及密封材料上分又可分为:软密封电磁阀、钢性密封电磁阀、半钢性密封电磁阀。 一、直动式电磁阀 原理:常闭型直动式电磁阀通电时,电磁线圈产生电磁吸力把阀芯提起,使关闭件离远开阀座密封副打开;断电时,电磁力消失,靠弹簧力把关闭元件压在阀座上阀门关闭。(常开型与此相反)。 特点:在真空、负压、零压差时能正常工作,DN50以下可任意安装,但电磁头体积较大。如我公司引进HERION公司技术生产的直动电磁阀可用于1.33×10-4 Mpa真空。 二、反冲型电磁阀 原理:它的原理是一种直动和先导相结合,通电时,电磁阀先将辅阀打开,主阀下腔压力大于上腔压力而利用压差及电磁阀的同时作用把阀门开启;断电时,辅阀利用弹簧力或介质压力推动关闭件,向下移动便阀门关闭。 特点:在零压差或高压时也能可靠工作,但功率及体积较大,要求竖直安装。 三、先导式电磁阀 原理:通电时,电磁力驱动先导阀打开先导阀,主阀上腔压力迅速下降,在主阀上下腔内形成压差,依靠介质压力推动主阀关闭件上移,阀门开启;断电时,弹簧力把先导阀关闭,入口介质压力通过先导孔迅速进入主阀上腔在上腔内形成压差,从而使主阀关闭。本设计中采用常闭型直动式电磁阀,上电阀开启,实物图如图3.9所示:图3.9所示电磁阀实物图四、软件设计(一)主程序流程图系统上电后显示欢迎使用流量控制系统,过后显示需要的灌装的规格,确认后系统自动保存,系统的软件整体流程图如图4.1所示:开始程序初始化液晶显示初始化设定按键确定灌装规格读取按键结束记录灌装数目图4.1主程序流程图(二)编程环境介绍KEIL C51标准C编译器为8051微控制器的软件开发提供了C语言环境,,本站特地制作了一个相对简单的教程。此软件能嵌入汇编语言保留了汇编代码高效,快速的特点。KEIL C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。  Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。如图5.2为打开界面:图5.2 keil打开界面工程新建后保存即可在打开界面进行编程,如图5.3为编写程序时的界面图。(三)软件程序各模块函数介绍1、 液晶屏初始化函数:void Init_ST7920()主要对12864液晶在显示前进行端口初始化,方便数据到来时的显示。PSB=1; 设置为8BIT并口工作模式RES=0;复位RES=1;复位置高Write_Cmd(0x30);选择基本指令集DelayUs2x(50);延时大于100usWrite_Cmd(0x30);选择8bit数据流DelayUs2x(20);延时大于37usWrite_Cmd(0x0c); 开显示(无游标、不反白)DelayUs2x(50);延时大于100usWrite_Cmd(0x01);清除显示,并且设定地址指针为00HDelayMs(15);延时大于10msWrite_Cmd(0x06);指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位,光标从右向左加1位移动2、计数中断函数:void InitINT(void) 外部中断初始化 EA=1; /全局中断开 EX0=1; /外部中断0开 IT0=1; /边沿触发 EX1=1; /外部中断1开 IT1=1; /IT1=1表示边沿触发 3、主程序void main (void) unsigned char i; InitINT(); Init_ST7920(); /初始化 LCD_PutString(0,2," 欢迎使用"); LCD_PutString(0,3," 流量控制系统"); for(i=0;i<10;i+) DelayMs(200); ClrScreen(); while(S1=0) if(S2=0) DelayMs(20); if(S2=0) while(S2=0); Set_Flag=Set_Flag; if(Set_Flag=0) LCD_PutString(0,0,"灌装嘴1:"); if(S3=0) DelayMs(20); if(S3=0) vol_set1+; if(S4=0) DelayMs(20); if(S4=0) vol_set1-; num0=vol_set1/100; num1=vol_set1%100/10; num2=vol_set1%10; LCD_PutString(0,1,"VOL: mL"); Write_Cmd(0x92);Write_Data(num0);DelayMs(4);Write_Data(num1);DelayMs(4);4、延时函数介绍mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编-*/void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); 五、系统调试结 论本设计基于89C51单片机,实现了基于单片机的流量控制器的设计与实现。功能实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。在做毕业设计期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨大的收获,学会用科学的精神去解决问题。很多事情看起来是很简单的问题,但实际做起来就不简单了。运用科学的方法去解决问题,这是我这次实训给我带来的思想上的改变。学习上,使自已在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对单片机有了进一步的认识。参考文献1 李朝青.单片机原理及接口技术(简明修订版)M.北京:北京航空航天大学出版社,19982 李全利.单片机原理及接口技术M.高等教育出版社,20033 PROTEL99 SE电路设计与制板M.机械工业出版社,20074 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社,20065 Steven F.Barrett.Daneil J.Pack.Embedded SystemM.北京:电子工业出版社,20066 周立功.LPC900系列Flash单片机应用技术J.北京航空航天大学出版社, 20047 黄智伟.全国大学生电子设计竞赛训练教程M.北京:电子工业出版社, 20058 杨欣.电子设计从零开始(第二版).北京:清华大学出版社,20109 梅丽凤.单片机原理及接口技术(第三版)M.北京: 清华大学出版社,2010附录A 硬件电路图附录B 程序源代码#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include <intrins.h>sbit S1= P22;sbit S2= P23;sbit S3= P24;sbit S4= P25;sbit G1= P20;sbit G2= P20;sbit RS = P21;sbit RW = P20;sbit E = P11;sbit RES = P13;/sbit PSB = P21;/sbit PAUSE = P30;#define DataPort P0 /MCU P0<-> LCMunsigned char *mes; unsigned int vol_set1=150,vol_set2=150;unsigned char num4=0,0,0,0;unsigned int count1=0,count2=0,m=0,n=0;unsigned char Set_Flag=0;unsigned char code user16x16= /笑脸图片0x0F,0xF0,0x10,0x08,0x20,0x04,0x40,0x02,0x9C,0x39,0xBE,0x7D,0x80,0x01,0x80,0x01,0x80,0x01,0x88,0x11,0x84,0x21,0x43,0xC2,0x20,0x04,0x10,0x08,0x0F,0xF0,0x00,0x00,;/*- 函数声明-*/void delaynus(unsigned char n) unsigned char i,j; for(i=n;i>0;i-) for(j=1;j>0;j-);void DelayUs2x(unsigned char t) while(-t);/*- mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编-*/void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); /*- 检测忙位-*/void Check_Busy() RS=0; RW=1; E=1; DataPort=0xff; while(DataPort&0x80)=0x80);/忙则等待 E=0;/*- 写命令-

    注意事项

    本文(毕业论文-基于51单片机的流量控制器的设计与实现.doc)为本站会员(爱问知识人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开