电子秒表课程设计报告_第1页
电子秒表课程设计报告_第2页
电子秒表课程设计报告_第3页
电子秒表课程设计报告_第4页
电子秒表课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西安垂E雷孥院控制系统课程设计报告书系部名称:信息与控制系学生姓名:XXX专业名称:测控技术与仪器班级:测控XXXX2010年9月13日 至时间:2010年9月26日电子秒表的设计一、设计要求设计一个电子秒表,与通用秒表功能类似,有启动,暂停、复位等键。计时 长长度为300秒,需显示白分秒。二、设计方案分析1. 方案设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。 本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。本系统采用C51系列单片机为中心器件,利用其定时器/计数器定时和记数 的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些 按键电

2、路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编 语言编写程序,硬件系统利用PROTEU®大的功能来实现,简单切易丁观察,在 仿真中就可以观察到实际的工作状态。本设计利用STC89C52单片机的定时器/计数器定时和计数的原理,使其能 精确计时。利用中断系统使其能实现开始暂停的功能。根据要求知道秒表设计主 要实现的功能是计时和显示。因此设置了两个按键和LCD显示时间,两个按键分别是开始、停止和复位按键。利用这两个建来实现秒表的全部功能,而LCD则能显示最多4.59.99秒的计时。电路原理图设计最基本的要求是正确性,其次 是布局合理,最后在正确性和布局合理的前提下力求美观

3、。硬件电路图按照图 1.1进行设计。图1.1数字秒表硬件电路基本原理图本设计中,数码管显示的数据存放在内存单元 31H 33H中。其中31H存 放分钟变量,32H存放秒钟变量,33H存放10ms计数值,即存放毫秒位数据, 每一地址单元内均为十进制BCD码。由丁采用软件动态扫描实现数据显示功能, 显示用十进制BCD码数据的对应段码存放在 ROM表中。显示时,先取出31H -33H某一地址中的数据,然后查得对应的显示位,并从P1 口输出,就能显示该地址单元的数据值。计时通过INT1中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,

4、达到10次就对十毫秒位进行加一,依次类推,直到 4.59.99秒重新复位。再看按键的处理。这两个键可以采用中断的方法,也可以采用扫描的方法来 识别。复位键主要功能在丁数值复位,对丁时间的要求不是很严格。而开始和停 止键则是用丁对时间的锁定,需要比较准确的控制。因此可以对复位按键采取扫 描的方式。而对开始和停止键采用外部中断的方式。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,显示电路和回零、启动、查看、停表电路等。主控制器采用单片机STC89C52, 显小电路米用LCD显小计时时间,两个按键均米用触点式按键。2. 背景知识介绍2.1单片机相关知识本课题在选取单片机时,充

5、分借鉴了许多成形产品使用单片机的经验,并根 据自己的实际情况,选择了 STC89S51。STC89C52单片机采用40引脚的双列直插封装方式。图1.2为引脚排列图,40条引脚说明如下:王电源引脚Vss和Vcc Vss接地 Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。 当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当 采用外部振荡器时,此引脚接外部振荡源。T2 OT2EX Pl. L P1. 2 P1.3 Fl . 1 F1, 5 F1. 6 F1. 7RST R

6、XD P3-0 TXD. ?3. 1 1=3己2 INTI P3. 3 TO P3. I 1 PS. 5 诙 P3, 6 RD-5. 7 XTALZ X7AL1VSS图1.2 STC89C52 单片机引脚图vcc?C 0 ADO PC. 1 ADI PO. t ADS PO. 3 AD3 FO. 4/AD4 5 AD5PC.6 AD5PD.7 B了EA ALE. PROG PSENP2. 7/Al 5 P2. 6 Al tP2, 5/A13 P2, 4/A12 F 2 :. A 1 1. 2 A10 F2.1控制或与其它电源复用引脚 RST/VPD, ALE/ PROG , PSEN和EA/V

7、pp RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源, 由VPD向内部提供备用电源,以保持内部 RAM中的数据。 ALE/ PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低 字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的1/6)周期性地 发出正脉冲信号。因此,它可用作对外输出的时钟,或用丁定时目的。但要注意, 每当访问外部数据存储器时,将跳过一个 ALE脉冲,ALE端可以驱动(吸收或 输出电流)八个LSTTL电路。对丁 EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(P

8、ROG功能) PSEN卜部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN在每个机器周期内两次有效。PSEN同样可以驱动八LSTTL输入。 EA/Vpp、EA/Vpp为内部程序存储器和外部程序存储器选择端。当EA/Vpp为高电平时,访问内部程序存储器,当 EA/Vpp为低电平时,则访问外 部程序存储器。对丁 EPROM型单片机,在EPROM编程期间,此引脚上加21 伏EPROM编程电源(Vpp)。输入/输出弓I脚 P0.0 - P0.7, P1.0 - P1.7, P2.0 - P2.7, P3.0 - P3.7。 P0 口 (P0.0 - P0刁 是一个8位漏极开路

9、型双向I/O 口,在访问外部存 储器时,它是分时传送的低字节地址和数据总线, P0 口能以吸收电流的方式驱 动八个LSTTL负载。 P1 口 (P1.0 -P1刁 是一个带有内部提升电阻的 8位准双向I/O 口。能 驱动(吸收或输出电流)四个LSTTL负载。 P2 口 (P2.0 - P2刁 是一个带有内部提升电阻的 8位准双向I/O 口,在 访问外部存储器时,它输出高 8位地址。P2 口可以驱动(吸收或输出电流)四个 LSTTL负载。 P3 口 (P3.0 - P3刁 是一个带有内部提升电阻的 8位准双向I/O 口。能 驱动(吸收或输出电流)四个LSTTL负载。AT89C52具有以下标准功能

10、:8k字节Flash, 256字节RAM , 32位I/O 口 线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级 中断结构,全双工申行口,片内晶振及时钟电路。另外,AT89C52可降至0Hz静 态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允 许RAM、定时器/计数器、申口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 CPU是单片机的核心部件。它由运算器和控制器等部件组成。(1)运算器运算器的功能是进行算术运算和逻辑运算。可以对半字节(4位)、单字节等数据进行操作。例如能完成加、

11、减、乘、除、加 1、减1、BCD码十进制调整、 比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存器。89C52运算器还包含有一个布尔处理器,用来处理位操作。它是以进位标志 位C为累加器的,可执行置位、复位、取反、等于 1转移、等于0转移、等于1 转移且活0以及进位标志位与其他可寻址的位之间进行数据传送等位操作, 也能 使进位标志位与其他可移位寻址的位之间进行逻辑与、或操作。(2)程序计数器PC程序计数器PC用来存放即将要执行的指令地址,共 16位,可对64K程序 存储器直接寻址。执行指令时,PC内容的低8位经P0 口输出,高8位经P2 口 输出。(3)令寄存器

12、指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指 令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。本设计采用ATMEL的AT89C52微处理器,主要基于以下几个因素: AT89C52为51内核,仿真调试的软硬件资源丰富。 性价比高,货源充足。 功耗低,功能强,灵活性局。 DIP40封装,体积小,便于产品小型化。 为EEPROM序存储介质,1000次以上擦写周期,便于编程调试。 工作电压范围宽:2.7V 6V,便于交直流供电。2.2 TC1602LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多 垂直和水平的细小电线,透过通电与

13、否来控制杆状水晶分子改变方向, 将光线折 射出来产生画面。比CRT要好的多,但是价钱较其贵。1) LCD的特点低压微功耗平板型结构被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳)显示信息量大(因为像素可以做得很小 )易于彩色化(在色谱上可以非常准确的复现 )无电磁辐射(对人体安全,利于信息保密 )长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背 光寿命有限,不过背光部分可以更换)1602的管脚功能ASSK AV1 I S JPINSYMBOLUSCIION1VssPou CT Suppit2VddPee Supply (i ? )3Vo儿山 L心4RSpMa/I顽ruction

14、 Register Select5R/WRtad-Wriiy6EEnable7-14DUD DIPIXiIj 1xj> Uht15AFover Supply fvr LED BL(+|16KPg cr Supply for LED BL (-)、硬件设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以 及一些按键电路等。1. 单片机简介本系统设计采用C51系列单片机。ST89C5促一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8微处理器。该器件采用ATMEH密度非易失存储器制造技术制造,与工 业标准的MCS-51指令集和输出管脚相兼容(由丁在微机原理

15、中学过C-51的具体 知识,这里不再详细说明)。由丁将多功能8位CPlffi闪烁存储器组合在单个芯 片中,ST89C51是一种高效的微控制器。2. 电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,由丁三端集成 稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐 取代分立元件,在生产中被广泛采用,由丁是小系统,我们采用7809电源提供+5V稳压电压3. 晶体振荡电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振 荡器的输出,该反向放大器可以配置为片内振荡器。这里,我

16、们选用51单片机12MH石勺内部振荡方式,电路如下:电容器 C1, C2起稳定振荡频率,快速起振的作用, C1和C2可在20-100PF之间取,这里取 30P,接线时要使晶体振荡器X1尽可能接近单片机。C1图2晶体振荡电路4. 复位电路采用上电+按键复位电路,上电后,由丁电容充电,使 RST持续一段高电平 时间。当单片机已在运行之中时,按下复位键也能使用使 RST寺续一段时间的高 电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。电路图如下:显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数 码

17、管显示电路。用2个共阳极LED显示,LED七段式显示器,内部有7个条形 发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示 稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的 I/O 口。在设计中,我们采用LE以态显示,用P0 口驱动显示。由丁 P0 口的输出级 是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如下所示:图4显示电路6.键盘电路在按键电路中,我们可以在I/O 口上直接接按键,或者通过I/O 口设计一个 键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/

18、O 口,但编程有些复杂,在这里,由丁我们所用的按键较少,且系统是一个小系统,有 足够的I/O 口可以使用,为了使程序简化,我们采用按键电路,用部分 P3 口做 开关,P3.3为开始停止,P3.4为活零,用外部中断INT1开始,另外用软件法消除抖动。电路图如呐时4,P2.7/A1528P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1110121314_r15 4硬件主电路图设计用pretues画出其硬件主电路图如下:LCD1LM016LC119C270-31R1 10X1CRYSTAL 1822PF22PF C31234XTAL1P0.0/AD0P

19、0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD-U1AT89C515616555D VS R四、软件设计4.1软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一

20、个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利丁程序 的设计和调试,有利丁程序的优化和分工,提高了程序的阅读性和可靠性,使程 序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都 要完成一个明确的任务,实现某个具体的功能,在具体需要时调用相应的模块即 可。功能描述:用LCD1602夜晶显示"秒表",显示时间为0.00.00 4.59.99秒,每秒自动加1; 一个"开始""暂停"键,一个"活零"键。4.2主程序流程图这里采用顺序结构,通过对按键的扫描,判断要实现什

21、么功能。如下所示:五、测试数据及设计结果1、按下INT1管脚的开关时,显示数据,如下图所示LM016LRSTPSENALEEAP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR'P3.7/RD 98765432 12

22、345678 0 1 2 3 4F f -.-|-FRUST COUNT 2TIME 00=69=02=46TRP1660 1 2 3 4 5 6 7E DDDDDDDDF5 6 二7 =8 二9AT89C512、按下T0管脚的开关时,数据活零,如下图所示LCD1LM016LR W D DDDDDDD96SECOND-CLOCK 0 TIRE 00s SStSP0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9PSENP2.2/A10P2.3/A11ALEP2.4/A12EA_P2.5/A1

23、3P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WR.P1.7P3.7/RD U1六、调试中出现的错误及解决方法(1)实验中遇到的问题及解决方法问题:LCD显示模糊原因:VEE接高电平,LCD的对比度太低,从而无法正常显示数据 解决方法:将VEE接地,提高了 LCD的对比度,数据显示活晰。(2)实验心得 XXX接到题目时,发现是关丁电子秒表的设计,先在网上查阅了一些有关电子秒 表设计的材料,熟悉了设计思想与工作原理,并且具体的分析了单片机、数码管

24、显示器的工作过程,从理论上分析了该工作过程。在理解了该系统的工作原理并完成电路图的设计与仿真后,开始焊接电路 板,在焊接时通过查阅,熟悉了各个管角的焊接原则,在焊接过程中,考虑到数 码管布线相对较多,所以换用作 LCD,焊接相对简单。电路板焊接完成后,将程序考入单片机后开始测试,刚开始时LCD显示器无数据显示,经过对电路板各模块的重新测试, 发现并无问题,经过和同学的探 讨,发现LCD的VEE管脚接高电平时,因对比度低,导致 LCD无数据显示; 而当VEE接低电平时,因对比度高,LCD正常显示。通过此次课程设计,熟悉了电子秒表的设计思想,在实践中测试电路、分析 数据、排除故障,最终实现了设计要

25、求。虽然这次课程设计相对简单,但并未一 次性成功,所以同样需要严谨的态度。在整个过程中不但增强了自己的学习能力, 还提高了自己的团队合作能力,这些能力在以后的工作中是很重要的! XXX上周三开始焊接设计好久的电路板, 到今天基本已经完成了主要的焊接,初 步总结一下这几天的心得。1. 焊接cup时,首先要检查cpu的各个管脚,保证没有弯曲或者错位,不 然焊上去之后就比较难搞了。然后将 CUP各个管脚跟pcb板上的焊盘仔细的对 齐(一定要保证顺序,cup右上角。标记顺时针方向的第一个管脚为1),然后用 电烙铁轻轻烫一下管脚,由丁 CPU管脚和焊盘上均有少量的残锡,可以将 CPU 固定住,然后用电烙

26、铁依次将管脚压平。接下来最关键的步骤:补锡。先在 cup 管脚的一端点少量焊锡,然后将一排管脚涂满松香,快速而缓慢的划过管脚.2. 焊接电路要有分块化的思想,首先焊接电源模块,然后测试各个供电电 压;然后焊接CPu模块,最后成功后焊接引出的管脚。3. 晶振(Crystal)IP为石英振荡器,是一种机电器件,是用电损耗很小的石英 晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性, 如果给他通电,他就会产生机械振荡,反之,如果给他机械力,他乂会产生电,这种特性叫机电效应。他们有一个很重要的特点,其振荡频率与他们的形状,材 料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热

27、膨胀系数非常小, 其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密, 因此,其谐振频率 也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路, 即谐振回路。他们的机电效应是机-电-机-电.的不断转换,由电感和电容组成的 谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即 Q值非常高,做振荡器用 时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定和陡削的带通或 带阻曲线。总体来说,这次的电路焊接还是比较顺利的。 因为设计图设计的很好,所以 在焊接结束后,板子的功能也全都如愿的顺利实现了。 XXX这学期的课

28、程设计,是利用单片机设计一些简单控制系统的相关实验,每个班有四个题目,我们分到的题目是:利用STC89C52单片机设计电子秒表,通过 LCD显示器显示白、分、秒,通过按键实现计时、暂停、活零等功能,并且最 大计时时间为300秒(即计时范围为0.00.00-4.59.99。刚刚拿到题目时,就听周围的同学说,这次课设我们的“电子秒表”是最 简单,课程设计的第一天老师就要求每个组必须选一位组长,并且每组组员必须分工合作,我有幸被选为组长。老师讲完后,我就针对每位组员的具体情况进行 工作分配,我负责查资料和电路的设计及部分编程、张雪珍同学负责编程、张辛超同学负责焊电路板、夏沅睿同学负责写实验报告,大家

29、分头行动,气乐融融。在电路设计初期,我对于如何设计“电子秒表”有点困惑,不了解白分秒 的意思,为了让自己心里有个底,我先在图书馆找了相关书籍,并且在网上查了 一些“秒表”的制作实例,在资料查询、分析并请教同学后,我发现直接用 STC89C5 2和液晶显示屏1602设计最简单。确定了用什么器件后,我查了 STC89C52的相关知识,它们的引脚图和各 引脚的功能,以及其相关控制字,尤其是 LCD1602的控制字及其初始化和显示 编程。查活楚了个器件的功能后,我开始设计电路图。电路很简单,最难的是软 件编程部分。硬件焊接方面,我们组的张辛超同学当仁不让,我给他说了我的想 法后,他称焊接没问题,而且通

30、过以前的课程设计我也见识过他的焊功,对他的硬件焊接很有信心。这个问题解决了,在数字的显示方面遇到点麻烦,老师要求 我们用LED显示,但要按老师要求的去做,完全显示就要接5个数码管,这根本在PCD板上会很难焊,后来结合实际情况,我们借了一个LCD液晶显示屏,用个底座就完全OK 了。这样不仅硬件焊接简单,对于编程也简单了许多。硬件电路设计好了,开始软件编程和仿真,软件仿真我是在 Proteus软件 上仿真的。由于我们的编程能力不是很强,我和组员张雪珍一起研究程序, 遇到 不懂、不会的地方就查阅资料,或者请教其他编程能力比较强的同学, 经过三天 的编程调试,最终在周四我们的电路和程序完全没问题,电路

31、也就确定了。周三我和组员张辛超在实验室焊接电路。他焊接电路,我在旁边订正,由于 电路比简单,经过近三个小时的“奋战”终于焊接完工,焊接过程中我、也充分 见识到了张辛超同学的焊接功底。焊接完成,周四开始调试,给 89C51烧进程序,将芯片全部装好,接通 电源发现LCD上什么都不显示,我仔细检查才发现LCD的第3管脚接高电平了, 这导致LCD的对比度太低,无法正常数字,经更正后显示完全正常,正式请老 帅验收、答辩。通过这次课程设计使我懂得,脚踏实地,认真严谨,实事求是的学习态度, 不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对

32、我未来的学习和工作有很 大的帮助。在这次课程设计中也使我和同学关系更进一步了, 同学之间互相帮助, 有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识。通过这次课设更大程度上锻炼了我的团队合作精神和领导能力。对我以后的学习生活有很大的帮助,它使我相信了 “人的潜力是无限的”这句话,也使我懂 得:只要用心,一定会发现每个人身上都有闪光点,只要正确运用,对别人可以 增强他们的自信心,对自己会快速正确的完成任务。总之,对他人和自己都有莫 大的帮助。 XXX :这次课程设计我们组的题目是设计一个电子秒表, 有启动,暂停、复位等键。 计时最长长度为300秒,需显示白分秒。据说是相对简单的题目

33、。分好组后我们每人都有分工,我的主要任务就是完成课程设计报告, 基本算 是后期工作,所以刚开始我们一起查资料讨论方案。在设计电路初期,由于我们 没有设计经验,通过查阅一些资料,我们的设计渐渐有了头绪,基本确立设计方 案和流程图。就是LED显示屏驱动电路的设计是个比较头疼的问题,接线非常复杂,焊电路板就会比较麻烦。后来实验室提供LCD液晶显示屏,就好办了许多, 解决了这个问题。我们很快确定了电路以及需要的器件,然后就是编程和仿真, 开始时也遇到了很多的问题,经过静下心来思考,和同学讨论,理活了思路,慢 慢修改,终于仿真成功了。布线时,对电路的设计、布局要先有一个好的构思,才显得电路板美观、大 方

34、,在张辛超同学的努力下,做得还挺工整。电路板焊好后,检查了没有错误, 将程序考入单片机后开始测试,刚开始时 LCD显示器无数据显示,经过对电路 板各模块的重新测试,发现并无问题,向别的同学请教,发现 LCD的VEE管脚 接高电平时,因对比度低,导致LCD无数据显示;而当VEE接低电平时,因对 比度高,LCD可以活晰显示。通过这次设计,我学到了很多知识,将学习的理论知识通过实验融会贯通, 让我对它的理解更加深刻。由于这次课程设计不仅设计编程方面的知识,还涉及 了其它学科的知识,例如PROTEUS的基本知识。总之,通过这次课程设计,不 仅加深了我对单片机理论方面的理解, 将理论更好的运用的实践方面

35、,而且锻炼 了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,同时也认识到在 团队工作中需要有合作精神,我想这会为今后自己踏上工作岗位、 更好地融入新 的团队打下良好的基础。附录:(程序);定义计时单元地址MINEQU 31H;存放分钟变量;存放秒钟变量;存放10ms计数值SEC EQU 32HDEDA EQU 33H;按键端口状况值K1_N EQU 34H;存放按键当前端口状况值K1_P EQU 35H;存放按键上次端口状况值K1_C EQU 37H;存放按键计数单元XEQU 36H;LCD地址变量;按键引脚定义K1EQU P3.3;按键1引脚定义K2EQU P3.4;按键2引脚定义;

36、LCD引脚定义RSEQU P3.5;LCD RS引脚定义RWEQU P3.6;LCD RW引脚定义EEQU P3.7;LCD RS引脚定义ORG 0000H;程序由地址0开始执行JMP MAINORG 0BH;定时器0中断地址设置JMP T0_INT;主程序MAIN:;开始MOV SP,#60H;堆栈指针指向60HCLR E;E=0,禁止读/写LCDACALL SET_LCD;调LCD控制子程序ACALL INIT;初始化变量MOV K1_P,#01H;按键上次端口设置1ACALL INIT_TIMER;调用初始化定时器ACALL MEU;调用工作菜单子程序LOOP:ACALL CONV;时间

37、计数处理ACALL LOOP1;调用清零键子程序ACALL KEY;判断是否有键按下JZ LOOP;无键按下转LOOPMOV K1_P,K1_N;交换数据ACALL KEY0;调用按键功能子程序JMP LOOP;跳LOOP处循环初始变量清零子程序INIT:;初始变量清零CLR A;A清为零MOVK1_C,A;K1_C初始为0MOVDEDA,A;百分秒DEDA初始为0MOVSEC,A;秒SEC初始为0MOVMIN,A;分MIN初始为0MOVK1_N,A;K1_N初始为0MOVK1_P,A;K1_P初始为0CLRTR0;启动中断RETJ;定时器初始化设置子程序INIT_TIMER:;定时器初始化M

38、OV TMOD,#00000001B;定时器 0 模式 1MOV IE, #10000010B;开通中断MOV TL0,#LOW(65536-10000);定时初值装入低位MOV TH0,#HIGH(65536-10000);定时初值装入高位RET;中断服务程序T0_INT:;定时器T0中断程序PUSH ACC;入栈保护MOV TL0,#LOW(65536-10000);重加载MOV TH0,#HIGH(65536-10000)INCDEDAMOVA,DEDA;10ms计数值加1CJNEA,#100,TTMOVDEDA,#0INCSEC;秒加1MOVA,SECCJNEA,#60,TTINCMI

39、N;分加1MOVSEC,#0MOVA,MINCJNEA,#05,TTMOVDEDA,#0;百、分、秒单元清0MOVSEC,#0MOVMIN,#0TT: POPACC;出栈RETI;中断程序返回;判断键是否按下子程序LOOP1:JB K2,LOOP2;判清零键是否按下JMP MAIN;跳转主程序处LOOP2: RET判断K1键是否按下KEY:CLRA;A清零MOVK1_N,A;A值送入K1_NMOVC,K1;K1值送入CRLCA;同进位标志左移一位ORLK1_N,A;两个位作逻辑OR运算MOVA,K1_N;K1_N值送入AXRLA,K1_P;有键按下,A中内容不为零RET;功能键子程序;K1键第

40、一次按功能子程序KEY0:MOV A, K1_P;K1_P值送入AJB ACC.0,KEY3;A的0位是1,转KEY3INC K1_C;K1_C 加 1MOV A, K1_C;K1_C值送入ACJNE A,#01H,KEY1;K1键是否第一次按?MOV DPTR,#MENU1;是,存入MENU1信息MOV A,#1;设置第一行显示CALL LCD_PRINT;调用显示字符子程序SETB TR0RET;启动中断;K1键第二次按功能子程序KEY1:MOVA,K1_C;K1_C值送入ACJNEA,#02H,KEY2;K1键是否第二次按?MOVDPTR,#MENU2;是,存入 MENU2信息MOVA,

41、#1;设置第一行显示CALLLCD_PRINT;调用显示字符子程序CLRTR0;停止中断RET;K1键第三次按功能子程序KEY2:MOVA, K1_C;K1_C值送入ACJNEA, #03H,KEY3;K1键是否第三次按?MOVDPTR,#MENU3;是,存入 MENU3信息MOVA, #1;设置第一行显示CALLLCD_PRINT;调用显示字符子程序SETBTR0;启动中断RET;K1键第四按功能子程序KEY3:MOV A,K1_C;K1_C值送入ACJNE A,#04H,KEY4;K1键是否第四次按?MOV DPTR,#MENU4;是,存入MENU4信息MOV A,#1;设置第一行显示CA

42、LL LCD_PRINT;调用显示字符子程序CLR TR0;启动中断KEY4:RET;子程序返回;LCD显示;LCD控制子程序SET_LCD:;CLR EACALL INIT_LCD;初始化LCDMOV R5,#10ACALL DELAYMOV DPTR,#LMESS1;指针指到显示消息 1MOV A,#1;显示在第一行ACALL LCD_PRINT;调用显示字符子程序MOV DPTR,#LMESS2 ;指针指到显示消息 2MOV A,#2;显示在第二行ACALL LCD_PRINT;调用显示字符子程序RETLMESS1: DB "",0 ;LCD第一行显示消息LMESS2

43、: DB "TIME",0 ;LCD第二行显示消息;LCD初始化子程序INIT_LCD:MOV A,#38H;设置8位、2行、5x7点阵ACALL WR_COMM;调用写指令子程序ACALL DELAY1;调用延时子程序MOV A,#0CH;开显示,光标不闪烁ACALL WR_COMM;调用写指令子程序ACALL DELAY1;调用延时子程序MOV A,#01H;清除LCD显示屏ACALL WR_COMM;调用写指令子程序:ACALL DELAY1;调用延时子程序RET;写指令子程序WR_COMM:MOV P1,ACLR RS;RS=0,选择指令寄存器CLR RW;RW=0

44、,选择写模式SETB E;E=1,允许读/写LCMACALL DELAY1;调用延时子程序CLR E;E=0,禁止读/写LCMRET;写数据子程序WR_DA TA:MOVP1,ASETBRS;RS=1,选择数据寄存器CLRRW;RW=0,选择写模式SETBE;E=1,允许读/写LCDACALL DE;调用延时子程序CLRE;E=0,禁止读/写LCDACALL DE;调用延时子程序RET;清除该行LCD的字符CLR_LINE:MOVR0,#24CL1: MOVA,#''ACALLWR_DATADJNZR0,CL1RET;LCD存入工作菜单MEU:MOVDPTR,#MENU0;存入工作菜单MOVA,#1;第一行CALL LCD_PRINTRET工作菜单MENU0:DB" SECOND-CLOCK 0 ",0MENU1:DB" BEGIN COUNT 1 ",0MENU2:DB" PAUST COUNT 2 ",0MENU3:DB" BEGIN COUNT 3 ",0MENU4:DB" PAUST COUNT 4 ",0;菜单显示子程序;一行、二行显示字符LCD_PRINT:CJNE A,#1,LINE2;判断是否为第一行LINE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论