《数字秒表毕业论文--修改完成稿--格式修改完成稿2 - 修改--在修改格式.doc》由会员分享,可在线阅读,更多相关《数字秒表毕业论文--修改完成稿--格式修改完成稿2 - 修改--在修改格式.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数 字 秒 表 设 计第 24 页 共 25 页1引 言11.1秒表及其发展现状11.2设计目的及意义11.3设计内容11.4课题设计要求12 方案论证12.1 显示单元12.2主控制部分22.3 系统方案23 器件的概述及选择33.1单片机的选择33.1.1 AT89C51单片机性能介绍33.1.2单片机最小系统83.2 LCD模块概述93.2.1 LCD的分类93.2.2 LCD模块的引脚93.2.3 寄存器的选择及显示地址103.2.4 LCM控制指令114 硬件设计144.1单片机电路设计144.1.1复位电路144.1.2时钟振荡电路144.2液晶显示模块电路设计154.3报警电路设
2、计154.4系统硬件设计165 软件设计165.1 软件设计环境165.2 LCD液晶模块程序设计186系统调试216.1 测试仪器216.2软件调试216.3硬件测试22结论22致谢23陕西理工学院毕业设计1引 言1.1秒表及其发展现状时间是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量。测量时间的基本方法是使用秒表直接测量。其中秒表的精度是人们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。目前人们所能测量的最小计时单位是毫秒级。1.2设计目的及意义本设计要使时间的测量准确,就必须使系统有更小的计时单位和更灵敏的按键。本设计还加入了报警电路,每次清零
3、都会报警。设计采用的元件功能较强,省去了很多复杂的电路降低了设计成本 1.3设计内容本课题是基于单片机的数字秒表系统设计,其利用单片机作为系统的主要控制器,通过单片机自身的定时计数器溢出标志产生最小计时单元,经过变量的累加和判断后,将数据送入液晶屏显示。在本次毕业设计的过程中们所研究的所研究的主控制和内部的单片机的设计,需要根据一些必要的设计内容进行单片机程序的更改。本设计的单片机选用的是AT89C51,设计的各项功能也是由它来实现。1.4课题设计要求课题需要以MCS-51系列单片机为核心,结合外围电路,制作一款时间参数测量系统。具体要求如下: (1)提出基于单片机的时间测量系统实现方案。 (
4、2)制作完整的硬件电路图并编写完整的源程序,实现时间参数的测量。 (3)误差要求小于1%。2 方案论证时间测量系统主要有两个共同的组成部分:计时最小单位的产生和数据处理及显示。所以显示和主控两个单元的选择和设计就成了该系统设计当中关键的两个部分。2.1 显示单元方案一:此方案采用LCD数码管显示测量结果。LCD数码管显示器由8个发光二极管中的7个长条形二极管(称七笔段)按a、b、c、d、e、f、g顺序组成八字形,另外一个点形的发光二极管dp 放在右下方,用来显示小数点。它具有反映速度慢、能耗高、硬件连接复杂、占用外围空间大、显示内容单一的特点。显示时用扫描每个数码管,同时逐一点亮的方法进行显示
5、。方案二: 此方案测量结果的显示采用LCD的液晶模块。在本次设计中根据需要将单片机与LCD液晶屏连接在一起,并且通过它显示控制的内容。当整个控制部分通电时,LCD就会显示相应的图像。此方案的主要优点是:图片显示的质量高、能量消耗低、体积较小、重量轻等优点。2.2主控制部分方案一:此方案采用数字电路实现。数字电路具有占用硬件电路复杂、只能驱动数码管和其它简单的外围电路、产生的最小计时单元误差大。方案二:本设计所选择的的设计方案,主要是更具单片机的内部设计的功能进行实现。单片机有诸多优点,我们可以利用所学的编程知识,来实现我们所想要的算术的算法和逻辑的控制,且单片机适用大多数编程语言,因而编程的自
6、由度也较大。由于我们所选用的AT89C51单片机已经在工业生产当中得到广泛应用,应用技术相对成熟,能够很好地通过编程技术来实现对外部功能模块的控制。2.3 系统方案综上所述,显示单元以及主控部分都采用第二方案。实际采用电路方框图如图41所示此多点温度测量电路主要由以下几部分组成:控制器单片机AT89C51、显示单元LCD液晶显示器、开关选择电路、报警电路、电源电路等。单机片AT89C51液晶显示器报警电路按键电路图2.1 系统设计方框图3 器件的概述及选择3.1单片机的选择3.1.1 AT89C51单片机性能介绍AT89C51是单片机的一种型号,是带4K字节闪烁可编程可擦除只读存储器(FPER
7、OMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。AT89C51是由ATMEL制成的非常高效的微型控制器件,由于在单个的芯片中,是由闪烁存储器和8位的多功能CPU组合而成。 1所选单片机的主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线5个中断源 可编程的,并且内部的功耗比较低,采用串行通道设计2管脚说明: VCC:供电电压。 GND:接地。 P0口:在进行设计的过程中
8、所选择的扥单片机的PO口有8个,也就是拥有的引脚数目为8。设计的根据设计需要,需要将单片机的P0口定义为数据地址位。 P1口:设计中的P1口的选取也是选择具有8个引脚的单片机。这一选择主要的内部的引脚数目是根据4TTL门电流进行设计,因为它本身可以通过单片机的I/O口进行内部数据的输入输出。 P2口:设计中所选择的P2口的8个引脚,其结构呢是采用双向的输入输出接口,在单片机的内部采用的是上拉电阻的设计,所选择的4个TTL门电流,主要是作为单片机的输入输出口。在设计的这一电路中,选择的P2口,其功能主要是为了输出电流,设计的电路的管脚内部,需要根据实际的电位进行设计,如果设计的内部的电位变化比较
9、大,或者电阻本身的值变高,就需要对P2口进行电路调整。 P3口:在设计的国债中,所选择的P3口,其主要机构就是采用的8个引脚。作为数据的输入输出部分。对于内部所涉及的电阻也是采用双向的输入输出口,所选择的4个TTL门电流,主要是作为单片机的输入输出口。在设计的这一电路中,选择的。在设计时P3口管脚其主要作用就是用于数据输入时,可以将数据写入到内部进行存储。当单片机的P3口为高电平时。P3口的管脚就可以作为数据的输出端。在设计中,所选用的AT89C51单片机,其主要的结构就是P3口的作为数据的输入输出口,并且设计的其本身也具有特殊的功能,具体的功能介绍如下表所示:口管脚 备选功能3.0 RXD(
10、串行输入口)3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(主要的设计进单片机外部的数据存储)P3.7 /RD(其主要作用就是选通外部的数据存储器)RST:复位输入。在设计的过程中,需要根据实际的振荡器的结构进行,单片机的复位,在对其进行操作的过程中,需要对其进行RST引脚的设置。在这两个设计的过程中年就需要对机器保持内部为高电平。 ALE/PROG:在设计中所选的该引脚,其主要的功能就是,对单片机的外部存储器进行操作访问的过程中,可以允许单片机输出相应的电平,
11、其主要的作用就是可以保证单片机的地位字节更好的进行数据的存储。在单片机正常运行时,电路中的ALE引脚的就可以将电路的外部脉冲以及电路的内部的脉冲进行定位。在设计中红ALE引脚自身的频率可以设置为振荡器频率的1/6,根据电路的机构呢不同且输出的正脉冲信号的频率始终保持不变。 /PSEN:在设计中,单片机的引脚还可以作为选通信号主要用于单片机的外部程序进行数据的存储器。在内部的机器周期中,需要对其进行两次/PSEN有效是在外部程序的存储。 /EA/VPP:设计的过程中所选择的/EA的高、低电平也是不同的,需要根据需要对单片机的结构进行调整,设计的单片机的引脚就会发生很大的变化,当设计的电路的设计为
12、高电平时,就需要将单片机的结构设计为内部的架构存储器。 XTAL1:在本设计中所选择的引脚其功能主要是为了更好地保持内部时钟工作电路以及内部的电路可以进行反向振荡放大器的输入。 XTAL2:在设计中这一引脚的作用就是为了更好的进行反向振荡器的输出。 3振荡器的特性: 在本设计中所选的振荡器,其主要的功能就是对电路进行内部输的放大,将所需要的数据进行输入输出,这些功能就是用过XTAL1和XTAL2这两个引脚来实现的。不同的驱动条件,两个引脚接法也略微不同,当由外部时钟源驱动时,XTAL2引脚不接,虽然对该驱动器件脉宽没有要求,但必须保证所要求的脉冲宽度,这是因为有些脉冲将会输入到内部时钟信号,。
13、 4芯片擦除: 需要根据需要将单片机的内部结构,在对单片机的PEROM阵列以及单片机的三个锁定位的过程中,需要将其设置为控制信号的正确组合,还需要保证单片机的LE引脚处于10ms的一直处于低电平。 在掉电的情况下,振荡器就会被冻结,同时RAM当中的内容也会被保存并冻结,其它芯片的功能也会被禁止,纸质下一硬件复位。5.特殊功能寄存器MCS-51单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存和状态寄存器都是以特殊功能寄存器的形式出现的,它们分散地分布在内部RAM地址空间范围,(1)A累加器根据设计的需要,在对单片机的结构惊改进的时候,需要对单片机的特殊功能寄存器进行设置,就像需要选用一
14、些最常用的为累加器,设计中的累加器A. B寄存器,其结构主要是可以运算设置的数据指令,并且根据啥指令进行数据的加减乘等扥操作。(2)B寄存器在对寄存器进行乘、除指令进行操作时,常用的为B寄存器。在操作乘指令时,A、B分别表示两个操作数,最后的结果存于该两个指令AB寄存器对中。在操作除指令时,A为被除数,B为除数,操作完之后,结果的商存于A中,余数存于B中。在其它指令中,B寄存器可作为RAM中的一个单元来使用。(3)程序状态字PSW本设计中程序的状态字被设计为一个8位的数据寄存器,参见图2-8,其中PSW1未用。表3.1 状态字PSWCYACF0RS1RS0OV-P CY(PSW7)进位标志该位
15、被称为位累加器时,是在布尔处理机的情况下。通常在我们进行算术或者逻辑指令时,该位会被一些软硬件清零或者置位,该位的重要性相当于一般中央处理机中的累加器A。 AC(PSW6)辅助进位标志AC之所以被硬件置位,是当我们进行加、减操作指令时,由低4位向高4位进行进位或借位操作时发生的,否则就被清零。AC被用于BCD码调整。详见DA A指令。 F0(PSW5)用户标志位F0是用户定义的一个状态标记,用软件来使它置位或清零。该标志位状态一经设定,可由软件测试F0,以控制程序的流向。 RS1,RS0(PSW4,PSW3)寄存器区选择控制位 OV(PSW2)溢出标志:在设计的过程中,对于单片机的溢出状态需要
16、对其进行行算术指令操作,这些操作指令就需要由硬件置位或清零来实现的。当对单片机的结构进行ADD加法操作过程时,单片机本身的溢出标志0V就需要设计为置位,此时的单片机就需要设置在6位向7进位的状态,根据需要。要保持7位不向CY进位。根据设计的需要,就要对单片机的内部进行DIV除法进行指令操作时,单片机的溢出标志位,就会根据需要向着除数进行操作。当单片机的除数设置为零时,OV=1,否则OV=0。 P(PSW0)主要是指奇偶标志奇偶标志主要是表示累加器A当中1位数的奇偶性,它主要通过硬件的置位或清零来实现的。当P置1时,说明累加器A中1位为奇数,若置0,说明为偶数。奇偶标志主要作用是奇偶校验,这样可
17、以对串行信息中的数据进行检验,这对数据的传输有重要的意义。利用奇偶标志的作用,可以对发送端的数据进行置位或者清零。(4)栈指针栈指针的简称为SP,它是特殊的8位寄存器。它规定内部RAM为出栈顶部的位置。当我们进行系统复位时,栈指针SP的初始化07H单元,但实际上是从08H单元开始的。可是工作寄存器区的单元包括08H-1FH,在我们进行程序设计时会用到这些单元区域,为了避免冲突,尽量把栈指针SP的值改的大写,比如1FH或更大,把SP初值改的小些,这样堆栈深度就会越深,越容易用软件进行改变,这样堆栈内部RAM的位置也会比较灵活。(5)数据指针数据指针可用DPTR来表示,它是一个特殊功能的16位的寄
18、存器,DPTR可以用DPH来表示它的高位字节,用DPL来表示它的地位字节,因而,我们可以它看成DPH和DPL两个8位的独立寄存器;也可以看成为16位的数据指针来处理问题。数据指针DPTR主要作用是存放16位地址,但对64KB外部存储器寻址时,就变为了间址寄存器。MOVX A,DPTR和MOVX DPTR,A这两个指令常用于传送功能。数据指针DPTR用作基址寄存器,是在我们访问程序存储器时发生的。3.1.2单片机最小系统 最小系统就是单片机在发挥具体测控功能时所必须的组成部分。其框图如图3.1所示。微 型单 片机复位电路电源输入输出电路振荡电路图3.1 单片机最小系统框图3.2 LCD模块概述
19、3.2.1 LCD的分类LCD可分为两种类型,一种是字符模式LCD,另一种是图形模式LCD。其中字符模式LCD是点阵型液晶显示器,专门用来显示字母,数字,符号等。由于LCD的控制需要专门的驱动电路,一般不会单独使用,而是将LCD面板、驱动与控制电路组合成LCD模块(Liquid Crystal Display Moulde,简称LCM)一起使用。目前常用的有16字*1行,16字*2行,40字*1行,40字*2行等字符模块。这些LCM虽然显示字数不同,但都有相同的输入/输出界面。3.2.2 LCD模块的引脚下面介绍常用的20字*2行(简称20*2)字符模块。图3.2 LCD模块引脚图表3.2 L
20、CD模块引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据8D1数据16BLK背光源负极6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极3.2.3 寄存器的选择及显示地址1寄存器的选择LCD内部主要有两个寄存器,指令寄存器(IR)和数据寄存器(DR)。微控制器传来的指令代码主要存放指令寄存器(IR)中,而即将要显示的数据主要存放在数据寄存器(DR)中。在本次设计中,还要根据单片机的内部结构,对寄存器的进行选取,在设计中悬着DD
21、 RAM作为本次设计的特殊寄存器,选择的这一寄存器其结构及功能主要是为了更好的显示试验数据。在设计中选择的CG RAM,其主要是为了产生更多的字符,在对 IR进行数据写入的过程中,需要将一些数据预先存储,之后根据需要再将其写入DR,在这一设计中选择的DR自动的将数据送入内部的所对应的DD RAM地址,或者是内部的CG RAM地址内部。当我们选择指令寄存器(IR),RS应为0;当数据寄存器(DR),RS应为1。如果数据写入LCD控制器,则需要R/W=0;如果LCD控制器读取数据时,则需要R/W=1。E:高电位使能信号线。表3.3 LCD指令寄存器和数据寄存器的选择ER/WRS功能说明100写入命
22、令寄存器101写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0XX不动作2.显示器地址表3.4 LCD模块显示地址 1234567891080818283848586878889C0C1C2C3C4C5C6C7C8C9111213141516171819208A8B8C8D8E8F90919293CACBCCCDCECFD0D1D2D33.2.4 LCM控制指令LCM提供了11项指令,如表3.5所示:表3.5 LCM控制指令序号指令RSRWD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001IDS4显示开/关控
23、制0000001DCB5光标或字符移位000001SCRL*6置功能00001DLNF*7置字符将会发生存贮器地址变换1101此刻字符发生存贮器地址8置数据存贮器地址110显示数据存贮器地址9读忙的标志或地址01BF计数器地址10写数进入CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容在本课题中对1602液晶模块指令编程的实现都是通过读写操作、屏幕和光标的操作(说明:0为低电平、1为高电平)指令1:01H为其指令代码,在本设计中,需要根据设计指令功能,设置为显示“清”,需要根据实际的设计及袄需要将光标位置复位到00H。指令2:该指令作用使光标回到地址
24、00H,即光标复位。 指令3:光标和显示模式设置 I/D:当为高电平,光标右移,反之为低电平,光标左移。而屏幕文字的左右移动,当为高电平时才能发生,低电平时无效。 指令4:显示开关的控制。B:光标的闪烁由高低电平决定,高则闪烁,低则不闪烁。C:光标有无的控制也由高低电平决定,高则显示光标,低则没有光标。D:整体显示的开关控制由高低电平决定,高则为开,低则为关。指令5:光标或显示移位 S/C:文字的移动是在高电平时发生的,而光标的移动是在低电平时发生的。 指令6:功能设置命令 DL:在本设计中选用的4位总线是在高电平时,这时候选用的8位总线将会处于高电平。N:根据设计的需要,将系统的屏幕的双行显
25、示设置为高电平,这时候所选的屏幕的单行就会在低电时显示时。本设计中的F:5*10的点阵字符在设计时,需要根据电平显示,对于5*7的点阵字符需要根据实际的情况设置为低电平显示。指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读忙信号BF:忙的情况为高电平,此时指令或者数据不被模块接收,而低电平则为不忙。 指令10:写数据。 指令11:读数据。 4 硬件设计 4.1单片机电路设计4.1.1复位电路考虑到设计要求,本设计中的复位电路集手动复位及上电自动复位于一体。1)实现自动上电复位需要满足三个条件:有外部复位电路、电容C1处于充电状态、电源VCC上升的时间不超过1ms。2
26、)通过复位端用电阻与电源的接通可以实现手动复位的功能。自动上电复位原理图如图3.1所示:图4.1 上电复位原理图4.1.2时钟振荡电路考虑系统运行速度,采用12MHZ的石英晶振,并使用两个小电容作为微调电容。时钟振荡电路图如图3.2所示:图4. 2 时钟振荡电路图4.2液晶显示模块电路设计LCM1602的D0 D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上拉电阻,所以外部另外加上10K的上拉电阻;P2.4P2.6分别接LCD的RS、RW、E三个控制管脚;R2用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。液晶显示模块电路图如图3.3所示:图4
27、.3 液晶显示模块电路图4.3报警电路设计本系统的蜂鸣器报警电路图如图3.4所示,蜂鸣器用一个三极管0913来驱动.单片机引脚P2.0接0913的基极输入端.当P2.0输出高电平1时,三极管导通,蜂鸣器两端获得约+5V的电压而鸣叫;当P2.0输出低电平0时,三极管截止,蜂鸣器停止发声。图4.4 蜂鸣器报警电路图4.4系统硬件设计电路图由单片机AT89C51、LCM1602液晶显示模块、复位电路、振荡电路、报警电路等几部分组成。其中单片机AT89C51是核心,主要功能是产生时钟信号,然后控制显示模块进行显示。硬件的电路图如图3.5所示:图4.5 硬件的电路图5 软件设计5.1 软件设计环境Kei
28、lC51是51系列兼容单片机C语言软件开发系统。 本设计所选用的KeilC51软件不但能够很好的向用户提供更多的,而且非常便于用户进行手工便于操作的Windows用户操作界面,还可以向用户提供更多的库函数和集成开发调试工具。并且该软件所生成的目标代码容易理解,效率非常高等优点。在本次设计中所需选用的汇编语言,其本身就具有执行效率高的优点。在此次毕业设计中我采用汇编语言程序。本课题选用ISIS系统作为单片机软件的仿真,最主要的优点是能够支持单片机,且能够仿真大多数电路和IC,操作方便,简单易学,仿真结果真实可靠。该软件的特点:首先该软件系统能够我们所要仿真的要求,并达到了仿真标准,优点由于其它同
29、类软件。此外,该软件具有多种仿真功能,比如:模拟电路的仿真、数字电路的仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能。而且,该软件能够支持大部分单片机型号,比如: 68000系列、8051系列、AVR系列、PIC12系列、PIC16系列以及各种外围芯片。最后,该软件是一款难得的多功能,分析与仿真于一体的软件。2.十进制计数处理子程序流程图如图5.4所示:设置被除数10开始将数据除以十数据写入屏幕保存余数和商结束图5.4 计数处理子程序流程图程序如下:SKOW_LINE2: MOV B, #10 ;设置被除数 DIV AB
30、;结果A存商数,B存余数 PUSH B ;B压入堆栈暂存 MOV B, X ;设置LCD显示的位置 ACALL LCDP2 ;由LCD显示出来 POP B ;出栈 MOV A, B ;B为个数位 INC X ;LCD显示位置加MOV B, X ;设置LCD显示的位置 ACALL LCDP2 ;由LCD显示出来 RET5.2 LCD液晶模块程序设计1.LCD液晶模块初始化流程图如图5.5所示:设置功能八位两列初始化开显示屏光标显示设置模式结束图5.5 LCD液晶模块初始化流程图INIT_LCD: MOV A,#38H ;设置8行,2行,5*7点阵 ACALL WR_COMM ;调用写指令子程序
31、ACALL DELAY1 ;调用延时子程序 MOV A,#0CH ;开显示,光标不闪烁 ACALL WR_COMM ;调用写指令子程序 ACALL DELAY1 ;调用延时子程序 MOV A, #01H ;清除LCD显示屏 ACALL WR_COMM ;调用写指令子程序 ACALL DELAY1 ;调用延时子程序 RET2.写指令流程图如图5.6所示:NYRS=0 RW=0 E=0WR_COMME=1结束忙碌?图5.6 写指令流程图WR_COMM: MOV P1, A ; CLR RS ;RS=0,选择指令寄存器 CLR RW ;RW=0,选择写模式 STEB E ;E=1,允许读或写LCM
32、ACALL DELAY1 ;调用延时子程序 CLR E ;E=0,禁止读或写LCM RET3.写数据流程图如图5.7所示:NYRS=1 RW=0 E=0WR_DATAE=1结束忙碌?图5.7 写数据流程图WR_DATA: MOV P1, A SETB RS ;RS=1,选择数据寄存器 CLR RW ;RW=0,选择写模式 SETB E ;E=1,允许读或写LCM ACALL DE ;调用延时子程序 CLR E ;E=0,禁止读或写LCM ACALL DE ;调用延时子程序 RET4.判断忙碌程序流程图如图5.8所示:NLCD=FFHCHECK_BFRS=0 RW=1 E=0Y忙碌?E=1结束图
33、5.8 判断忙碌程序流程图程序如下:CHECK_BF: MOV LCD, #OFFH ;此时不接受外来命令 CLR RS ;选择指令寄存器 CRL RW ;选择读写寄存器 CLR E ;禁止读写 NOP ;延迟1ms STEB E ;允许读写 JB LCD.7,CHECK_BF ;忙碌循环等待 RET6系统调试6.1 测试仪器DS5102CA 100MHZ 双信道数字示波器一台DF17351SB5AB直流电源一台奔四3.0计算机一台万用表一块6.2软件调试本课题,通过软件的调试,即用软件的仿真功能对所编写程序实现的结果进行判断,及时的发现错误或硬件故障,并进行纠正,使最终结果趋于理论分析的结果
34、。我们对所编写的程序应逐个模块进行调试,首先对某个模块编写的程序进行单独调试,检查最后的结果是否达到所预期的功能,并检查连入电路中的接口是否正确。最后再总体模块考虑进行调试。当我们进行软件程序的编写和调试时,应该注意:1.子程序的名称不能一致;2.进行程序编写的语句中间的标点符号应在英文欢迎下输入,中文环境下的标点Keiil uVsion3编译软件不识别,会出现一些不易查找的问题,这一点需特别注意;三、当子程序间有值传递时,必须注意实参和形参的类型;四、程序要有尽量详细的注释,以便问题的查找和增强程序的易读性。我首先将编好的程序在Keiil uVsion3环境之中进行编译,第一次未通过,经过错
35、误提示我发现是几处标点的格式为中文格式导致编译软件不能识别,还有一处丢掉了一个分号,改正之后就运行正常,最终生产了HEX文件。程序编写完毕,就可开始系统的仿真调试,应该先采取软件仿真,确保整个程序无语法错误,排除逻辑错误及其他错误,然后开始硬件调试。软件仿真主要采用Keil和Proteus相结合的方式。在Proteus的库中将所需的元件调出按照硬件设计原理图将其连接好,将已生成的HEX文件加载入AT89C51之中,运行之后显示出了秒表的功能。6.3硬件测试先分别调试各功能单元模块,调通后再进行整机调试,以提高调试效率。调试过程如下:1AT89C51 这部分电路是系统的主要部分,接上电源后先用万
36、用表测量单片机的20引脚是否为低电平,再测量40引脚和31引脚是否为高电平,正常后用示波器测量30引脚,看是否输出2M的方波信号,正常后说明单片机已起振。2显示部分调试 执行液晶清屏和全部点亮等简单的操作,当调试成功后,再进行查表操作,往液晶里写数字和汉字,都成功后说明液晶部分已经可以控制。 3整机调试 各个部分都调通后,将各部分连起来调,检查是否能满足基本功能,这部分工作量较大,要注意软件上各个部分的衔接,是否有互相影响的因素,由于程序中用到了中断,要注意对现场的保护,还要考虑开关消抖时间是否合理。这时候硬件电路出错的可能已经比较小,但是也要注意各部分是否有互相影响的地方,要注意防止外界的干
37、扰。4问题的出现和解决 当我把一切都调试好后,发现液晶屏还是没有信号的显示。经过查阅资料和请叫其他同学后,知道是没有给单片机连向液晶屏的端口接上拉电阻。补上后显示正常。结论本课题所设计的基于单片机的数字秒表论文,硬件控制电路简单,能达到所预期要求的结果。选用AT89C51单片机,利用LCD液晶屏来进行显示。之所以选用本单片机,是因为其可靠性、稳定性、体积小、维护方便等优点。在设计的数字电路中采用定时器中断的计时,减小计时误差。本设计通过proteus软件进行设计调试和仿真,该软件能够满足电路的需求、仿真结果精确、调试方便,实现了电路与处理器仿真的结合,可以在大多数单片机和嵌入式系统中应用。虽然
38、本设计基本上实现了预期的理论要求,但自身仍需要改进。比如:存储后的计时结果,没办法都区之后再进行显示;计时结果的精确度还不够高,存有一些误差;功能单一,浪费硬件资源。通过本次毕业设计,不仅让我学到了许多理论只是,在实际操作中,与理论知识相结合,对我所学到的知识更加深刻。主要体现在以下四个方面: 1、通过本次设计让我对所学到的理论知识有了更好地理解,同时让我明白了仅仅有好的理论知识是远远不够的,还用通过实际的操作,来知晓理论知识在实际中实现的方法。并通过软硬件系统,对自己所编写的程序进行调试和仿真,及时发现错误,对自己所掌握理论知识有很大的检测作用。2、学会了要独立的通过查阅资料、运用所有工具对
39、所要探索问题积极解决,明白了科学来不得半点马虎,一点的错误都会导致结果与预期结果的差异,对我以后的工作和生活也有很深的教育意义。3、失败并不可怕,只要顽强的站起来,不放弃,希望定会给你招手。本次毕业设计的成功,也是对自己四年来所学知识的肯定,也是对自己最好的毕业礼物。使我明白了只要努力学习和探索,最终的结果肯定会令你满意。4、通过这次毕业设计,我学到了很多,同时也明白了很多,有时候做系统设计一个人的力量是远远不够的,还需要很多同学之间相互帮助,相互学习,大家团结一致才会将整个的系统搭建完成,有时候会因为一点的小误差都会导致很多的不必要的错误出现。经过这次的学习,以及论文写作,我更加清楚的认识到了自己的实力,在今后的学习和工作过程中,如果遇到类似的问题,我相信我经过努力也一定可以好好的解决,经过此次毕业设计,我可以韩快的适应今后的工作和以及未来激烈的社会竞争。致谢我的这篇论文是在我的导师郑争兵老师的精心指导完成的。在我写作这篇论文的过程中,无论是在论文的额整体内容布局设计,