毕业设计(论文)基于单片机的计数器设计.doc

上传人:文库蛋蛋多 文档编号:3981163 上传时间:2023-03-30 格式:DOC 页数:52 大小:880KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的计数器设计.doc_第1页
第1页 / 共52页
毕业设计(论文)基于单片机的计数器设计.doc_第2页
第2页 / 共52页
毕业设计(论文)基于单片机的计数器设计.doc_第3页
第3页 / 共52页
毕业设计(论文)基于单片机的计数器设计.doc_第4页
第4页 / 共52页
毕业设计(论文)基于单片机的计数器设计.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的计数器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的计数器设计.doc(52页珍藏版)》请在三一办公上搜索。

1、本科毕业论文(设计)题 目 基于单片机的计数系统设计 学 院: 机电与信息工程学院 专 业: 电子信息工程 年 级: 2011 级 学 号: 2011114083 姓 名: 指 导 教 师: 成 绩: 年 月 日 目 录摘要1关键字1Abstract1Key Words11 绪论21.1 前言21.2 背景与意义22 系统的方案设计与论证32.1 单片机芯片设计与论证42.2 按键控制模块设计与论证42.3 时钟模块设计与论证42.4 脉冲采集模块设计与论证52.5 显示模块模块设计与论证53 系统硬件的设计63.1 MCS-51系列单片机的内部功能的介绍63.1.1 中断系统63.1.2 单

2、片机的定时/计数器83.2 单片机的最小系统123.2.1晶振电路123.2.2 复位电路143.3 数据采集电路143.4 液晶显示器电路153.5 键盘电路173.6电路总原理图174 程序模块化设计184.1程序编程的思想184.1.1 面向过程的编程思想194.1.2 面向对象的编程思想194.2程序设计方法194.2.1 “自上而下”设计194.2.2 模块化设计204.2.3 结构化设计215.系统的软件设计235.1 软件的整体设计235.2主程序流程图的设计245.3 时间读写子程序设计265.4 脉冲计数程序设计275.5 LCD1602的子显示程序285.6 软件仿真286

3、.焊接与功能调试306.1系统性能测试与功能说明306.2软件调试问题及解决306.3 调试效果30结 论31参考文献32致 谢33附录A34附录B36附录C45附录D46基于单片机的计数系统设计摘要:随着当今社会的飞速发展,越来越多的流水线上的产品和各种公共场所需要进行自动计数。基于单片机构成的产品自动计数器有直观和计数精确的优点,目前已在各种行业中得到广泛应用。数字计数器有多种形式,总体来说有接触式和非接触式两种,在科技发展的今天,非接触式红外计数器得到了广泛的应用。但出于设计成本的考虑,本设计采用关电开关为计数器的信号检测头,具有价格低廉,抗干扰性好,结构简单,操作方便等特点。 指导思想

4、是利用关电开关输出高低电平,同时对在由输出由高电平转化为低电平的那个信号进行处理,并由单片机进行控制计数,并且使LCD1602显示数值。这样就得到要统计的人或物的数量。关键字:STC89C52 关电开关 LCD1602 C语言 Abstract:with the rapid development of modern society, more and more products on the assembly line and various public places need for automatic counting. Based on single-chip computers.t

5、he product automatic counter has the advantages of intuitive and accurate count, at present, has been widely used in various industries. Digital counter has many forms, are generally of contact type and non-contact type two kinds, in the development of science and technology today, non contact infra

6、red counter has been widely applied. This design uses to turn off the electric switch signal detection head for the counter, with the advantages of low price, good anti-jamming performance, simple structure, convenient operation etc.The guiding ideology of using photoelectricity switch output level,

7、 at the same time for processing in the signal from the output from the high level into a low level, and the control count by the microcontroller, and the LCD1602 display numerical. The number of people or things that get to the statistics of the.Key Words:STC89C52 , photoelectric switch, LCD1602, C

8、 program1 绪论1.1 前言今年来,高速公路的建设步伐很快,对高速公路进行科学管理势在必行,如对车辆的流量统计和分析,可以实现高速公路载荷的邮箱控制与管理。目前,高速公路上对车辆的计数方法有的是使用环形感应线圈检测器,检测系统检测送出的信号脉冲电平比较高,很容易放大和滤波,但是信号很容易受到电磁干扰,而且这种系统比较庞大,制造成本高;也有采用红外线热释放电传感器的单车道车辆计数器,计数器用中规模IC构成,具体结构简单等特点,但仅仅适用于单车道且技术的数据不能长期保存,也无法与大型机之间实现通信;而采用基于单片机的关电开关车辆计数器,系统简单,制造成本也低,数据可以长期保存,还可搭建必要

9、的通信结构用于单片机与PC机的连接。为此设计了一种基于单片机的关电开关的车辆计数系统。1.2 背景与意义电子计数器到目前为止已有30 多年的发展史。早期,设计师们追求的目标主要是扩展计数范围,提高计数精度、稳定度等,这些也是人们衡量电子计数器的技术水平,决定电子计数器价格高低的主要依据。目前这些基本技术日臻完善,应用现代技术可以轻松地将电子计数器的计数上限扩展到无限大。当今,单片微型计算机技术迅速发展,基于单片机技术开发的计数设备广泛应用到各个领域,单片机技术产品促进了生产技术水平的提高,企业迫切需要大量熟练掌握单片机技术并能开发、应用和维护管理这些智能化产品的高级工程技术人才.单片机以体积小

10、、功能强、可靠性高、性能价格比高等特点,已成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段。已经实现或者部分实现,但要真正完美的实现这些目标,对于设计者来说,还有许多工作要做,而不是表面看来似乎发展到头了.电子计数器是一种多功能的电子测量仪器。它利用电子学的方法测出一定时间内输入的脉冲数目,并对脉冲数目进行处理,而将结果以数字形式显示出来。2 系统的方案设计与论证单片机计数器的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较

11、低的功耗以及低廉的成本。系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用单片机内部定时/计数器做一个内部时间,RESPACK-8对单片机STC89C52进行供电,数据采集器关电开关连接单片机STC89C52。从而实现计数的功能。按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块和数据采集模块共五个模块组成,电路系统构成框图如图2.1所示。图2.1 硬件电路框图2.1 单片机芯片设计与论证方案一: 采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片

12、机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用STC89C52芯片作为硬件核心,采用Flash ROM,能以3V的超低电压工作,而且与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间。同样具有STC89C52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。由于STC89C52内部具有8KBROM存储芯片并且支持ISP在线

13、编程,因此采用STC89C52作为主控芯片。2.2 按键控制模块设计与论证方案一:采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。方案二:采用独立按键,查询简单,程序处理简单,可节省CPU资源。因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。2.3 时钟模块设计与论证方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.方案二:直接采用单片机

14、定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案不但提高了对芯片的使用率,还节约成本。由于直接采用单片机定时计数器提供秒信号可以节约成本,而且闰年补偿功能可以用代码实现,故采用方案二。2.4 脉冲采集模块设计与论证方案一:采用红外线传感器,数据采集后还得再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。方案二:采用关电开关,由于其输出为高低电平信号,故无需再经AD转换得到数字信号,就可直接用于单片机操作。因为用关电开关,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。2.5 显示模块模块设计与论证方案一:采用数码管静态显示方法,

15、静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。方案二:采用数码管动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。方案三:采用LCD1602的方法, 由于目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。显示内容多,功耗小,成本低等优点,采用LCD的缺点是亮度不够。比较以上三种方案:方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小

16、;方案三硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。3 系统硬件的设计根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。3.1 MCS-51系列单片机的内部功能的介绍MCS-51具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程F

17、lash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。本设计主要用到了单片机的中断系统和定时/计数器,下面着重介绍这2个功能。3.1.1 中断系统中断就是通过硬件改变CPU的程序运行方向,计算机在执行程序的过程中,一旦外部发生突发事件,立即中断当前的程序运行,转到处理外部事件的子程序,等子程序执行完了再返回原程序执行。中断之后所执行的处理程序通常称作中断服务或中断子程序,原来运行的程序称为主程序,主

18、程序被断开的位置(程序地址)称为断点,能发出中断申请的外部事件的设备称为中断源,中断源要求服务的请求陈伟中断请求或申请。MSC-51单片机有5个中断源,提供两个中断优先级,即可以实现二级中断服务程序嵌套1。每个中断源都可以设置为高优先级或低优先级。与中断系统有关的专用寄存器有:中断优先级控制寄存器IP;中断允许控制寄存器IE;中断源寄存器TCON、SCON的相关位,另外还涉及到程序存储中5个有关中断入口地址。MCS-51中断系统的结构如图3.1所示。图3.1 8051的中断系统1.中断源及中断入口MSC-51的中断源通常有三类,共5个中断源,即外部中断、定时中断和串行口中断,现在分别介绍如下。

19、INT0:外部中断0请求,由引脚P3.2输入。IT0(TCON.0)决定是低电平有效还是下跳变有效。一旦输入信号有效,即向CPU申请中断,并且使IE0=1。TF0:定时器T0溢出中断请求。当定时器T0溢出时,将中断请求标志位TF0置1,请求中断。当某个中断源的中断申请被CPU响应后,CPU会自动跳到此中断源的入口地址,用户在此存放一条绝对跳转指令,跳转到相应的中断子程去执行。在C语言中,中断子程序的定义就已经确定了CPU响应中断,应该往哪里跳转,所以无需担心5个中断源的入口地址的分配情况。2. 外部中断请求标志 在中断请求被响应前,中断请求是由CPU锁存在特殊功能寄存器TCON和SCON的相应

20、标志位中。(1) TCON中的中断标志TCON是定时器T0和T1的控制寄存器,同时也锁存T0和T1的溢出中断标志及外部中断INT0和INT1的中断标志。与中断有关的如下所述。TF0:TCON.5位,T0溢出中断标志,T0被启动计数后,从初值开始加1计数,计满溢出由硬件自动将TF0置1,并向CPU申请中断,此标志位一直保持到CPU响应中断后,才由硬件自动清0.也可由软件查询该标志位,并由软件清0。IE0:TOCN.1,INT0外部中断0标志。IE0=1,表示外部中断1向CPU申请中断。IT0:TCON.0,外部中断0触发方式控制位,当IT0=0,外部中断0为电平触发方式。CPU在没一个机器周期S

21、5P2期间采样INT0(P3.2)引脚,若采到低电平,则认为有中断申请,即将IE0置0,若为高电平,则认为无中断申请或中断申请已撤除,随机清除IE0标志。在电平触发方式下,CPU响应中断后不能自动清除IE0标志,也不能由软件清除,所以在中断返回前,必须撤销INT0引脚上的低电平,否则将再次响应中断造成出错.TCONDB7DB6DB5DB4DB3DB2DB1DB088HTF1TF0IE1IT1IE0IT0(2) SCON的中断标志,本设计没用上串行通信,这里就不对SCON做详细介绍了。3 中断允许控制MSC-51单片机中专用寄存器IE为中断允许寄存器,它控制CPU对中断源的开放或屏蔽,以及每个中

22、断源是否允许中断1,其格式为:位符号IEEA-ET2ESET1EX1ET0EX0位地址AFH-ADHACHABHAAHA9HA8H3.1.2 单片机的定时/计数器在测量和控制系统中,常需要定时以及对外部事件计数等,8051内部有两个定时/计数器具有这种功能。8051单片机内部的两个定时器T0、T1都是16位的定时器。本章主要介绍这两个定时/计数器的结构、原理、工作方式1。1.定时/计数器的结构定时/计数器的结构如图3.2所示。下面介绍定时/计数器和特殊功能寄存器的基本原理。图3.2 TMOD、TCON与T0、T1的结构框图2. 定时/计数器的原理由图3.2可见,定时计数器的核心是一个16位的定

23、时/计数器,它是一个加1计数器,计数脉冲来源有两个,一个是由系统振荡器的12分频产生,一个是来自外部的脉冲信号。当定时/计数器工作在定时器方式时,即,计数器输入被切换到12分频的输出端,也就是计数器的加1信号为机器周期,即每经过一个机器周期计数器加1,一直到计数满溢出为止。从开始计数到计数满所用的时间为定时时间,显然定时时间与振荡器的频率有关。图3.3 定时/计数器的结构框图当定时/计数器为计数工作方式时,即,计数输入被切换到外部脉冲输入T0或T1,当外部脉冲每出现一次从01的跳变时,计数器加1,在每个机器周期的S5P2期间计数器采样引脚输入电平。若一个机器周期采到一个高电平,下一个机器周期采

24、到一低电平,则计数器加1。新的计数值是在紧接着下一个机器周期的S3P1期间装入计数器的。由于识别一个从01的跳变要用两个机器周期(24个振荡周期),所以外部脉冲的最高计数频率为振荡频率的1/24。另外,为了确保某个电平至少被采样一次,因此要求每一个电平或低电平的保持时间至少为一个完整的机器周期。根据以上的介绍可以看出,定时/计数器的工作受特殊功能寄存器的某些位控制的,在工作之前,CPU必需将命令写入寄存器,并要给计数器置初值。下面将详细介绍这些控制字的格式和各位的功能。(1)定时/计数器方式寄存器TMOD TMOD格式如下:D7D6D5D4D3D2D1D0GATEM1M0GATEM1M0下面说

25、明各位的功能。M1和M0方式1选择位。定义如表3.1所示。表3.1 方式选择位意义M1 M0工作方式功能说明0 1方式116位计数器:功能选择位。当,为定时方式;当时,为计数方式。GATE:门控制。当GATE=0时,允许软件控制位TR0或者TR1启动定时器开始工作;当GATE=1是,允许外中断引脚启动定时器(当中断引脚一旦为高电平时计数器就开始计数),即由INT0(P3.2)或INT(P3.3)引脚分别控制T0或T1.TMOD只能字节寻址不能位寻址,也就是只能用字节指令设置定时器工作方式。TMOD的低4位为定义定时器0。复位时,TMOD各位均为0。(2)定时控制寄存器TCON定时器控制字TCO

26、N的格式如下:8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0TF0:定时器0溢出标志位。定时器0溢出时硬件自动将此位置1,并申请中断。进入中断服务程序后,硬件会自动将此位清0,在查询方式下用软件清0。TR0:定时器0运行控制位。由软件置1或清0来启动或关闭定时器1。IT0:外中断0触发方式选择位。IT0=0,为低电平触发:IT0=1,为下降沿触发。由软件置1或清0。IE0:外部中断0请求标志。当检测到INT0引脚上有由1到0的电平跳变,且IT0=1时,由硬件将此位置1,并请求中断。进入中断服务程序后,由硬件自动将此位清0。复位时,TCON的各位

27、均为0。3.工作方式1的工作原理从上一节可知,通过对M1M0的设置,可选择定时/计数器的4种工作方式,而本设计用的主要是方式1,下面就着重介绍下方式1。当M1M0两位为01时,定时/计数器被选为工作方式1,其逻辑结构如图5-3所示。方式1为16位的定时/计数器,TH0的8位作为16位计数器的高8位,TL0的低8位为16位计数器的低8位。当TL0的低8位计数满溢出时即向TH0进位,而TH0计数满溢出时向中断标志位TF0进位(陈硬件置位TF0),并申请中断。计数溢出与否可通过查询TF0是否置位,来判断是否产生定时器1中断。图3.4 T0(或T1)方式1结构当GATE=0时,不管引脚INT0电位高低

28、,或门输出一定为1,而与门的输出就决定TR0,即由TR0控制定时器的开启和关断2。当时,多路开关连接振荡器的12分频输出,T0对机器周期计数,这就是定时器工作方式,其定时时间为:T=(65536-T0初值)时钟周期12 该系统实现时钟模块用的就是利用的定时/计数中断。在T0工作在方式1的情况下,初始化T0定时为50ms,设计计数变量count,每定时到了进中断一次count累加1,加到20次时就是1S了。此时的定时时间为:TH0=(65536-50000)/256; /高8位的输送值TL0=(65536-50000)%256; /低8位的输送值3.2 单片机的最小系统图3.5 单片机最小系统的

29、结构图单片机的最小系统是由电源电路、复位电路、晶振电路组成,下面介绍每个组成部分。3.2.1晶振电路单片机是一种时序电路必须提供脉冲信号才能正常工作。因此,需要有个专门的时钟电路。时钟电路相当去单片机的心脏,它的每一次跳动(振荡节拍)都控制着电平机的工作节奏。振荡得慢时,系统工作速度就慢;振荡得快时,系统工作速度就快(当让功耗也会有所增加)。但振荡频率也不能太高,一旦超过CPU工作频率的极限指标,CPU就会被烧掉。因此,在能够完成任务的前提下,选择尽可能低的系统工作频率。常见的时钟电路有以下两种:外置晶振+内置振荡器。这种电路的频率误差一般在百万分之几,适合于需要做实时时钟或精准定时的系统。由

30、于该产品对实时性要求比较很高,就选用的外置晶振+内置振荡器。如图3.6所示。图3.6晶振连接的外部方式图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈组件的片外晶体谐振

31、器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为20pF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.2.2 复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,52芯片便循环复位。复位后P0P3口均置1

32、引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。本设计采用的复位电路就是按键复位电路就是由两个电阻、一个按键和一个电容构成的。在按键按下是时,电容被短路,由于R1大于R2,RESET得到高电平,系统复位,系统复位结束后,开始正常工作。因此,复位电平的宽度(持续时间)是由按键按下的时间决定的3。图3.7为常见复位电路图。图3.7 MCS常见复位电

33、路(高电平有效)3.3 数据采集电路1.漫反射关电开关的原理图3.8 漫反射关电开关的结构图当开关发射光束时,目标产生漫反射,发射器和接收器构成单个的标准部件,当有足够的组合光返回接收器时,开关状态发生变化,作用距离的典型值一直到3米。特征:有效作用距离是由目标的反射能力决定,由目标表面性质和和颜色决定;较小的装配开支,当开关由单个组件组成时,通常是可以达到粗定位;采用背景抑制作用调节测量距离;对目标上的灰尘敏感和对目标变化了的反射性能敏感。 2.漫反射关电开关的特点(1)检测距离长和接近开关等比较,光电开关的检测距离非常长,且是无接触式的,所以不会损伤检测物体,也不受检测物体的影响。(2)几

34、乎不受检测物体的制约由于是采用对检测对象的表面进行反射及光透过方式,不像接近开关只能对金属,还能对玻璃、塑料、木制物体、液体等各种物质进行检测。(3)响应速度快和接近开关同样,由于无机械运动,所以能对高速运动的物体进行检测。(4)镜头容易受有机尘土等的影响镜头免受污染后,光会散射或被遮光,所以在有活水蒸汽、尘土等较多的环境下使用的场合,需施加适当的保护装置。(5)受环境强光的影响几乎不受一般照明光的影响,但像太阳光那样的强光直接照射受光体时,会造成误动作或损坏。漫反射关电开关作为数据采集端,传输数据时与单片机的I/O口(P3.2)连接。3.4 液晶显示器电路1602液晶显示器采用标准的16脚接

35、口,其中:第1脚:VSS为地电源;第2脚:VDD接5V正电源;第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;第714脚:D0D7为8位双向数据线;

36、第1516脚:空脚。LCD1602液晶显示器数据端与单片机的I/O口(P0口)连接,RS、E、RW分别与单片机的I/O口(P2.3、P2.4、P2.5)连接。具体硬件连接如图3.9。图3.9 LCD1602电路图3.5 键盘电路系统中设计了3个按键分别是位置更改按键、时间减少和时间增加。其中S1作为位置更改键与单片机的P2.0连接,S2作为时间减少键与单片机的P2.1连接,S3作为时间增加键与单片机的P2.2连接。具体硬件电路如图3.11所示。图3.10 按键电路图3.6电路总原理图综合各部分电路,得到总电路原理图。如图3.11所示。图3.11 电路总原理图4 程序模块化设计系统的软件设计也是

37、工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。4.1程序编程的思想思想是

38、隐藏在灵魂深处的东西,它对外的展现也许有种观点,也许是种方法,也许是种技巧,但更多时候,思想也许只是个一闪即逝的灵感,划过脑际不留痕迹。思想是活的精灵,就像流水千回万转、奔流不息,而当人们想去捧起它时,那水却悄悄从指缝里流走。思想就是这么不可捕捉、没有常形,而一旦被捕捉到了,那思想便也就从那一刻开始定格、僵化、失去活力、成为一潭死水,语言文字也许可以表述编程的思路,但由于它的局限性,却很难传递编程的思想。编程思想有时只能意会,不能言传。程序编程的思想,在实际编程的过程中需要常常去思索才能真正有所体会。目前常用的程序编程思想主要有两种:面向过程的编程思想和面向对象的编程思想。面向过程其实是最为实

39、际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化设计的思想方法.对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来.4.1.1 面向过程的编程思想“面向过程”是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,

40、他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。4.1.2 面向对象的编程思想 “面向对象”是一种以事物为中心的编程思想。 面向对象的程序设计比如以银行的ATM而言。不是关心有人操作时,机子该有些什么动作,而关心的是该机子应该有什么样的功能给予人们操作。4.2程序设计方法 常用的软件设计方法有下列三种:“自上而下”的设计、模块化的设计和结构化的设计。在实际进行软件设计的过程中,通常都会用到这三种方法,但是又很难把它们完全分开来,这需要时间的历练。4.

41、2.1 “自上而下”设计 研制软件有两种截然不同的方式:一种叫做“自上而下”法;另一种叫做“自下而上”法。“自上而下”法,概括地说就是从整体到局部,最后到细节。即先考虑整体目标、明确整体任务分成一个个子任务,子任务再分成子任务,同时分析各子任务之间的关系,最后拟定各子任务的细节。这就犹如在该设计中,先确定大体的几个模块(显示模块、时间按键模块和传感器模块)。“自下而上”法就是先解决细节问题,再把各个细节结合起来,这样就完成了整体任务。这就犹如在该设计中先确定好了各个模块,再在各个模块中设计具体的实现一样。“自下而上”是传统的程序设计方法,这种方法有严重的缺点。由于是从某个细节开始,这种方法对整

42、个任务没有透彻的分析与了解,因而在设计某个模块程序时,很可能会出现原来没有预料到的新情况,以至要求修改或重新设计已经设计好的程序模块,造成时间的浪费。目前,设计人员都趋向于采用“自上而下”的设计方法。但事情不是绝对的,不少程序设计者认为,这两种方法应该结合起来使用(在拥有了任务的全局走向后,再进行设计是比较好的)。一开始在比较“自上”的时候,应该采用“自上而下”法;但“向下”到一定的程度,有时需要采用“自下而上”法。4.2.2 模块化设计在软件设计中,通常把整个程序分成若干个具有明确任务的程序模块,分别编制、调试后再把它们连接在一起,形成以个完整的程序。这种程序设计方法称为模块化设计。模块化设

43、计的主要优点如下:(1)各模块相对独立、功能核心单一、结构清晰、接口简单(2)控制了程序设计的复杂性(3)提高组件的可靠性(4)缩短开发周期(5)避免程序开发的重复劳动(6)易于维护和功能扩充模块化程序设计的关键是模块的划分,由于模块划分非常灵活,所以至今尚无公认的准则。大多数人是凭直觉、经验,凭借一些特殊的方法来构成模块,下面列出一些原则对编程会有所帮助。(1)模块长度需适中。程序块过大会失去模块化的特点,且编写和连接时可能会遇到麻烦;程序块过小则会增加连接、通信的工作量,同时也可能让程序员失去对代码的控制。通常认为2050行的程序段是长度比较适合的模块。(2)模块之间的控制耦合应尽可能简单

44、。不但应尽量避免从多个入口点进入模块或从多个出口点退出,也就是说,一个模块应该只是有一个入口点和一个出口点,还应该尽量避免声明全局变量,全局变量虽然可以给编程带来方便,但同时也会让模块之间的联系变的失控。只有尽量避免这些,才能使一个模块内部的更改不影响其他模块。(3)对每一个模块做出具体定义,定义应包块解决某问题的算法,允许的输入/输出值范围以及副作用。(4)当系统需要进行多种判定时,最好在以个模块中集中这些判定,这样在某些判定条件改变时,只需修改这个模块即可。4.2.3 结构化设计 结构化设计的思想是:程序的设计,编写和测试采用一种规定的组织方式进行,在这种程序中只使用基本的逻辑结构,整个程

45、序是各种基本结构的组合。结构化程序设计要求每个程序模块只能有一个出口。这样一来,各个程序模块可分别设计,然后用最小的接口组合起来,控制明确地从一个程序模块转移到下一个模块,使程序的调试、修改和维护易于实现。大的复杂程序可由这些具有一个入口和一个出口的简单结构组成。在结构化程序设计中有下列三种基本结构:(1)顺序结构顺序结构是最简单、最基本的程序结构,它的特点是按照程序编写的顺序依次执行,程序流向不变。顺序结构程序是所有复杂程序的基本组成部分,其结构流程如图4.1所示。在这种结构中,微处理器按顺序先执行P1,然后执行P2,最后执行P3。其中P1、P2、P3可以是不产生转移的指令,也可以是由三种基

46、本结构之一组成的程序。图4.1 顺序结构流程图(2)条件结构条件结构流程如图4.2所示。在这种结构中,微处理器根据给定的条件是否满足决定程序流向。如果满足执行P1,否则执行P2。条件结构程序的特点是程序中含有转移指令,程序执行结果与入口条件相关。对整个条件结构而言,只有一个入口和一个出口。图4.2 条件结构流程图(3)循环结构常见的循环结构有两种,如图4.3所示。图4.3(a)所示的循环结构为“直到型”循环。微处理器先执行循环操作P,然后再判断给定的条件是否满足。若条件满足,程序继续进行;若条件不满足,则停止循环。而图4.3(b)所示的循环结构称为“当型”循环。微处理器先执行条件判别语句,只有在条件满足的情况下才执行循环操作P。在程序设计中应注意这两种循环结构的区别,在设置循环参数初值时尤其应加以注意4。图4.3 循环结构流程图在该设计中,首先以“自上而下”的设计为大宗旨,找出该设计的应有的几个模块,以模块设计的思想,规划处各个模块之间的关系,并避免全局变量和文件的包含会带来的问题,以结构化设计的思想,设计出各个文件下面的子函数的具

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号