毕业设计(论文)基于AT89C51数码时钟电路的设计

上传人:仙*** 文档编号:34092991 上传时间:2021-10-20 格式:DOC 页数:74 大小:821.03KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于AT89C51数码时钟电路的设计_第1页
第1页 / 共74页
毕业设计(论文)基于AT89C51数码时钟电路的设计_第2页
第2页 / 共74页
毕业设计(论文)基于AT89C51数码时钟电路的设计_第3页
第3页 / 共74页
资源描述:

《毕业设计(论文)基于AT89C51数码时钟电路的设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51数码时钟电路的设计(74页珍藏版)》请在装配图网上搜索。

1、基于AT89C51单片机数码时钟电路的设计2012届 分类号:TM711 单位代码:10452本科专业职业生涯设计基于AT89C51数码时钟电路的设计姓 名 学 号 年 级 2008级 专 业 电气工程及其自动化 系(院) 指导教师 2011年 12 月 20 日诚 信 声 明本人呈交给临沂师范学院的这篇毕业论文,除了所注参考文献和世所公认的文献外,全部是本人在指导老师指导下的设计成果。 学生签名:日 期:经检查该毕业设计(论文)为独立完成,不存在抄袭现象。 指导老师签名:日 期:摘 要本文通过对一个基于单片机的能实现定时,秒表,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数

2、据转换显示,液晶显示原理,键盘扫描原理。从而达到学习、了解单片机相关指令在各方面的应用。系统由AT89C51、温度检测芯片、时钟芯片DS1302、液晶显示器LCD1602等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示和实时温度显示。也具有时钟、日历的校准,定时时间的设定和闹铃等功能。文章后附有电路原理图、PCB板图和程序清单,以供读者参考。因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。关键字:AT89C51;DS1302;LCD1602;时钟AbstractBased on a microcontroller based on the will to achiev

3、e timing, stopwatch, alarm clocks, and other functions of a multi-functional electronic clock design study, in detail, the computer application of data conversion, Principle LCD, keyboard scanning principle. Thereby achieve studying and understanding the relevant directives SCM in all aspects of the

4、 application. By AT89C51 system, temperature detection chip, the clock chipsDS1302, liquid crystal displays of componentsLCD1602, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time temperature display. Also calculated with the calendar and clock, c

5、alendar calibration, regular hours and set the alarm function. The article attached circuit diagram, the PCB plans and procedures checklist for the reference of our readers. Due to limited, and it will inevitably be lighter inadequate, locations will give teachers and students correction and critici

6、sm. Key words: AT89C51;DS1302; LCD1602; alarm clocks 目 录前 言1第1章 总体方案介绍21.1系统设计思想21.2系统框架图2第2章 硬件仿真电路设计32.1 Proteus32.1.1 Proteus简介32.2 AT89C51的电路设计32.2.1 AT89C51简介32.2.2 AT89C51的时钟电路设计62.2.3 AT89C51的复位电路设计62.3 AT89C51液晶显示模块的连接82.3.1液晶显示器LCD1602简介82.3.2 AT89C51与LCD1602的连接122.4 AT89C51与时钟芯片的连接122.4.1时

7、钟芯片DS1302简介122.4.2 AT89C51与时钟芯片DS1302的连接142.5 AT89C51与温度芯片的连接152.5.1温度芯片DS18B20简介152.5.2AT89C51与温度芯片DS18B20的连接162.6 AT89C51与键盘的连接16第3章 系统软件设计183.1程序设计183.1.1主程序模块设计183.1.2液晶显示器LCD1602模块193.1.3时钟芯片DS1302操作模块203.1.4温度芯片DS18B20操作模块223.1.5键盘操作模块23第4章 硬件实现254.1 Protel的硬件电路设计254.1.1 原理图设计254.1.2 报表生成254.1

8、.3 创建PCB文件26第5章 结 论28附 录29参考文献66谢 辞67基于AT89C51单片机数码时钟电路的设计前 言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。本次设计的多功能数字时钟,以AT89C51芯片为核心,辅以必要的电路,通过液晶显示器能够

9、准确显示数字时钟。它也是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。第1章 总体方案介绍整个电子时钟系统电路可分为五大部分:中央处理单元(CPU)、电源电路部分、显示部分、键盘输入部分、温度采集部分。1.1系统设计思想本系统由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。用DS1302产生时钟信号,用温度芯片DS18B20产生温度信号,再由单片机负责接收并且对其进行控制,

10、然后通过编写程序实现具体的功能,如年、月、日、星期、时、分、秒及温度的显示,以及时间的校准、闹钟的设置等。再通过编写液晶器件的驱动程序,使其信息显示在LCD1602液晶显示器上。最后,将设计的硬件电路在Proteus 仿真软件中进行仿真。1.2系统框架图DS1302时钟芯片DS18B20温度芯片AT89C51单片机LCD1602液晶显示器根据上述的系统设计总思想设计出如下总体框架图(图2-1):图1-1系统总体框架图第2章 硬件仿真电路设计在前面的章节给出了系统设计的粗略轮廓,在本章节中,将画出详细的电路仿真原理图,并按照要求仔细地在Proteus中完成硬件的仿真电路。总体上来说,本系统主要由

11、显示电路, 功能控制电路、传感器电路三部分组成。吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了电子时钟的基本功能,而且还可以通过对程序的改变来实现其它方面的开发及学习。2.1 Proteus2.1.1 Proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿

12、真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机

13、和SPICE分析于一身的仿真软件,功能极其强大。2.2 AT89C51的电路设计2.2.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATM

14、EL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-4所示:图2-4 AT89C51 管脚说明:VCC供电电压。GND接地。P0口8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P

15、1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLAS

16、H编程和校验时接收高八位地址信号和控制信号。P3口带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。在编程/校验时,P3口可接收某些控制信号。具体的P3口功能,如表2-1所示。表2-1 P3口的特殊功能引脚 替代功能 说明P3.0 RXD 串行数据接收P3.1 TXD 串行数据发送P3.2 INT0 外部中断0申请P3.3 INT1 外部中断1申请 P3.4 T0 定时器0外部事件计数输入 P3.5 T1 定时器1外部事件计数输入 P3.6 WR 外部

17、RAM写选通 P3.7 RD 外部RAM读选通RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态AL

18、E禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。2.2.2 AT89C51的时钟电路设计时钟电路是产生CPU校准时序

19、,是单片机的控制核心。AT89C51的时钟信号可通过内部振荡方式和外部振荡方式两种方式得到。本次设计使用的是片内振荡方式,通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当使用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,或者XTAL1引脚应悬空,而由XTAL2引脚上的信号驱动。外部振荡器再通过一个2分频的触发器来形成内部时钟所需要的信号。在电容器C1、C2选择时方面,一般选择其值为530pF。本系统中所用的电容值为22pF,

20、具体的电路接法如图2-5所示。图2-5 晶振电路图2.2.3 AT89C51的复位电路设计根据应用的要求,复位操作通常由上电复位和开关复位2种基本形式。本系统使用的复位电路是在基本复位电路的基础上所改进的一种混合方法,使其两种形式巧妙地糅合在一起,即做到了上电复位,又可以在发生预料之外的问题时,随时进行开关复位单片机。具体的电路连接接法如图2-6所示。图2-6复位电路单片机复位后的状态:单片机的复位操作使单片机进入初始化过程,其中包括使程序计数器PC0000H,P0P3FFH,SP07H,其他寄存器处于零。这表明程序从0000H地址单元开始执行。单片机复位后不改变片内RAM区中的内容,21个特

21、殊功能寄存器复位后的状态如表2-2所示。表2-2 8051单片机复位后特殊功能寄存器的初始状态1特殊功能寄存器初始状态特殊功能寄存器初始状态A 00H TMOD 00H B 00H TCON 00H 表2-2续 8051单片机复位后特殊功能寄存器的初始状态1特殊功能寄存器初始状态特殊功能寄存器初始状态PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0P3 FFH SBUF 不定 IP *00000B SCON 00H IE 0*00000B PCON 0*B 注:表中的符号*为随机状态需要指出的是,记住一些特殊功能

22、寄存器复位后的状态,对于熟悉单片机操作,减短应用程序中的初始化部分是十分必要的。2.3 AT89C51液晶显示模块的连接2.3.1液晶显示器LCD1602简介液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。本系统使用是是LCD1602液晶显示器,它可以显示两行,每行16个字符,采用单+5V电源电,外围电路配置简单,价格便宜,具有很高的性价比。LCD1602外观如图2-7所示。图2-7 LCD1602外观LCD1602采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器对比度调整端,接正电源时对比度最

23、弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。LCD1602液晶模块内部的控制器共有11条控制指令,具体的命令见表2-3所示。表2-3 LCD1602控制指令指 令RSR/WD7D6D5D4D3D2D

24、1D01清屏00000000012光标复位000000001*3光标和显示模式设置00000001I/DS4显示开关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址(AGG)8置数据存贮器地址001显示数据存贮器地址(ADD)9读忙标志或地址01BF计数器地址(AC)10写入CGRAM/DDRAM10要写的数11读CGRAM/ DDRAM数11读出的数据1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(1)清屏指令功能:1) 清除液晶显示器,即将DDRAM的内容全部填入“空白”的

25、ASCII码20H;2)光标归位,即将光标撤回液晶显示屏的左上方;3) 将地址计数器(AC)的值设为0;2. 光标复位指令 功能:1) 把光标撤回到显示器的左上方;2)把地址计数器(AC)的值设置为0;3)保持DDRAM的内容不变;(3) 光标和显示模式设置指令 功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况表2-4所示。表2-4 显示模式设置指令参数设定位名设置I/D0=写入新数据后光标左移1=写入新数据后光标右移S0=写入新数据后显示屏不移动1=写入新数据后屏整体右移1个字符(4)显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标

26、是否闪烁。参数设定的情况如表2-5。表2-5 显示开关控制指令参数设定位名设置D0=显示功能关1=显示功能开C0=无光标1=有光标B0=光标闪烁1=光标不闪烁(5)设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏幕移位。参数设定的情况如表2-6。表2-6 设定显示屏或光标移动方向指令参数设定S/CR/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加110显示器上字符全部左移一格,但光标不动11显示器上字符全部右移一格,但光标不动(6)功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如表2-7。表2-7 功能设定指令参数设定位名设置DL0=数据总

27、线为4位1=数据总线为8位N0=显示1行1=显示2行F0=57点阵/每字符1=510点阵/每字符(7)设定CGRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(8)设定DDRAM地址指令功能:设定下一个要存入数据的CGRAM的地址。(9)读取忙信号或AC地址指令功能:1) 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;2)读取地址计数器(AC)的内容。(10)数据写入DDRAM或CGRAM指令一览功能:1) 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;2)将使用者自己设计的

28、图形存入CGRAM;(11)从CGRAM或DDRAM读出数据的指令一览功能:读取DDRAM或CGRAM中的内容。表2-8 基本操作时序命令名输入输出读状态RS=L,RW=H,E=HDB0DB7=状态字写指令RS=L,RW=L,E=下降沿脉冲, DB0DB7=指令码无读数据RS=H,RW=H,E=HDB0DB7=数据写数据RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据无液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-8是1602的内部显示地址。图2-8 16

29、02LCD内部显示地址2.3.2 AT89C51与LCD1602的连接在LCD1602液晶显示模块和单片机AT89C51相连接时需要在液晶显示的数据口加上10K左右的上拉电阻,具体的接法为:将VSS接地,VDD接高电平,VEE接入一个电位器来调整LCD1602的对比度。将RS接到P2.0口,R/W接到P2.1口,E接到P2.2口。D0D7接到P0口来控制命令输入及数据的输入/输出。具体的连接仿真电路可见图2-9所示。图2-9 LCD1602液晶显示模块和单片机AT89C51接口电路2.4 AT89C51与时钟芯片的连接2.4.1时钟芯片DS1302简介DS1302是DALLAS公司推出的涓流充

30、电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线: RES复位线、 I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302器件外观如图3-10所示,DS1302管脚的功能描述可见表3-9所示。图2-10 DS1

31、302器件表2-9 DS1302管脚的功能描述管脚名功能说明X1,X232.768KHz 晶振管脚GND地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚DS1302 的控制字如图3-11所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 1 RAM/CK A4 A3 A2 A1 A0 RAM/K图2-11 DS1302的控制字在控制指令

32、字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2-10所示。表2-10 日历、时间寄存器及其控制字寄存器名称写操作读操作取值范围76 5 43 2 1秒寄存器80H81H0059CH10SECSEC分寄存器82H83H0059010MINMIN时寄存器84H85H002312/2410HRHR日寄存器86H87H013

33、1010DATEDATE月寄存器88H89H011200 10MMONTH周寄存器8AH8BH010700 0 0DAY年寄存器8CH8DH009910YEARYEARDS1302的主要特性:(1)实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力(2)31* 8 位暂存数据存储RAM(3)串行I/O口方式使得管脚数量最少(4)宽范围工作电压:2.0 5.5V(5) 工作电流2.0V时,小于300nA(6) 读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送(字符组方式)(7) 8 脚DIP封装或可选的8脚SOIC封装(根据表面装配)(

34、8) 简单3线接口(9) 与TTL兼容(Vcc=5V)(10)可选工业级温度范围-40 +852.4.2 AT89C51与时钟芯片DS1302的连接在使用DS1302时需加一个供其工作的晶振,一般选值为32768Hz。最好再加一个后备电源使其在断电后断续工作。其与AT89C51的连接如图2-12所示。实际上,在调试程序时可以不加电容器,只加一个32768Hz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。要特别说明的是备用电源BAT1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主

35、板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。图2-12 AT89C51与DS1302的连接2.5 AT89C51与温度芯片的连接2.5.1温度芯片DS18B20简介DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。其实物图如图2-13所示,其引脚的功能描述可见表2-11所示。图2

36、-13 DS18B20表2-11 DS18B20的引脚功能描述引脚功能说明GND地DQ数字输入输出引脚VDD可选的VDD引脚DS18B20的特点: (1)只要求一个端口即可实现通信。 (2)在DS18B20中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在55C到125C之间。 (5)数字温度计的分辨率用户可以从9位到12位选择。 (6)内部有温度上、下限告警设置。 2.5.2AT89C51与温度芯片DS18B20的连接在仿真软件中,可以用DS18B20仿真器上的上、下键来调节温度的高低,以此来检测读、写温度程序是否成功。具体的DS1

37、8B20与AT89C51连接如图2-14所示图2-14 AT89C51与DS18B20的连接2.6 AT89C51与键盘的连接键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。键盘分两大类:编码键盘和非编码键盘。(1)编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。这种键盘易于使用,但硬件比较复杂,对于主机任务比较繁重。(2)非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。

38、键盘电路结构分为两类:独立式按键和矩阵式键盘。(1)独立式按键独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。(2)矩阵式键盘矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上,节省I/O口。为了使设计简洁、易于操作,本系统键盘部分设计使用了非编码、独立式按键了。系统中共有四个独立按键,分别接在P2.3、P2.4、P2.5、P2.6。其中1号键为时间调整时间键,按下此键则进入时间调整状态,然后用2号键(增量键)或3号键(减量键)来

39、完成时间的校准和闹钟的定时。用4号键可以显示闹钟的具体时间。其具体的连接电路如图2-15所示。图2-15 AT89C51与键盘连接第3章 系统软件设计3.1程序设计3.1.1主程序模块设计本系统程序设计采用汇编语言进行编写。开始系统初始化定时是否到?欢迎界面显示主界面闹钟响调整时间是否调时间?查看定时?显示定时是是 主程序设计思路为:先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值

40、。具体的主程序流程如图3-1所示图3-1 主程序流程图主程序源代码:MAIN:LCALL INIT_LCD1602 ;调用显示器LCD1602的初始化LCALL INIT_DS1302 ;调用时钟芯片DS1302的初始化LCALL INIT_TIMER ;调用闹钟初始化LCALL WELCOME ;调用欢迎界面START:LCALL DISPLAY_TIME ;调用时钟显示程序LCALL DISPLAY_TEMP ;调用温度显示程序LCALL TIMER ;调用闹钟判断程序JB SETUP,START_NEXT ;判断是否设置时间LCALL KEY_SELECT START_NEXT:JB T

41、IMERDISPLAY,START ;判断是否查看定点闹钟的具体时间LCALL TIMER_DISPLAYJMP START3.1.2液晶显示器LCD1602模块AT89C51LCD1602先将命令写入LCD1602中,告诉它将做什么如果需要显示数据的话,再将数据送入LCD1602中本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。对LCD1602的具体操作过程如图3-2所示。图3-2对LCD1602的具

42、体操作过程1602LCD的总体操作流程图见图3-3所示。开始LCD初始化延时设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容图3-3 软件流程图LCD初始化程序:INIT_LCD1602:MOV LCD,#01H ;清屏CALL ENABLE_ORDERMOV LCD,#38H ;8位点阵,两行显示CALL ENABLE_ORDERMOV LCD,#0CH ;显示开关为开,光标开关为关,闪烁开关为关CALL ENABLE_ORDERMOV LCD,#80H ;显示的起始位置为第一行的第一位CALL ENABLE_ORDERRET3.1.3时钟芯片DS1302操作模块DS1302 与

43、微处理器进行数据交换过程如图4-4所示,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。AT89C51LCD1602先将命令写入DS1302,告

44、诉它将做什么操作如果是写数据的话,再将数据送入DS1302中如果是读数据的话,直接从DS1302数据口读出读、写DS1302的流程图分别为图3-5,图3-6所示,其源程序见附录代码。开始复位端产生1个高电平将命令字写到变量中向DS1302发送1位数据延时命令字是否传输完准备传输命令字中的下一位将数据写到变量中向DS1302发送1位数据延时数据是否传输完准备传输数据中的下一位结束否否图3-4 DS1302 与微处理器进行数据交换过程图3-5 写DS1302数据流程图开始复位端产生1个高电平将命令字写到变量中向DS1302发送1位数据延时命令字是否传输完准备传输命令字中的下一位将数据写到变量中从D

45、S1302接收 1位数据延时数据是否接收完准备接收数据中的下一位结束否否图3-6 读DS1302数据流程图3.1.4温度芯片DS18B20操作模块DS1302为单线接口且每一个DS18B20都有唯一的系列号,因此多个DS18B20可以存在于同一条单线上工作,但本系统就用了一个DS1302所以对DS18B20的搜索可以用Skip ROM命令跳过搜索,然后再对其进行操作。具体的DS18B20的操作过程如图3-7所示。AT89C51LCD1602跳过搜索先将命令写入DS1302,告诉它将做什么操作向DS18B20发读命令如果是写数据的话,再将数据送入DS1302中读DS18B20的数据如果是读数据的

46、话,直接从DS1302数据口读出图3-7 DS18B20的操作过程开始初始化写命令:跳过读序列号操作(0XCC)写命令:启动温度转换温度转换结束?初始化写命令:读温度寄存器写命令:跳过读序列号操作(0XCC)读出温度,并存储结果结束否读DS18B20的流程图见图3-8所示。其源程序可查阅附录中的源代码部分。图3-8 读DS18B20的流程图3.1.5键盘操作模块键盘操作是本系统软件设计中的难点,也是重点。本次设计我只用了四个键,它人分别是1号键(时间调整时间键),2号键(增量键),3号键(减量键),4号键(显示定时时间键)。当按下1号键后会进入,时间调整程序,在不同的设置时段你可以通过2号键或

47、者3号键来对年、月、日、周、时、分、闹钟的时、闹钟分进行设置。当退出时间调整程序后,按4号键可以查看设置闹钟的时间。键盘操作可以有两个方式分别为中断法和按键扫描法。我选择的后者,因为用四个键如果用中断的话,不容易控制,易出错。而且如果用这种最传统的扫描法,使程序看起来SETUP按下?调整年SETUP按下?调整月SETUP按下?调整日SETUP按下?调整周SETUP按下?调整时SETUP按下?调整分SETUP按下?调整闹钟时SETUP按下?调整闹钟分年否否否否否否否否思路更清晰、更明了、更容易理解。具体软件设计流程图如图3-9所示。图3-9 时间设置过程第4章 硬件实现4.1 Protel的硬件

48、电路设计本系统硬件由控制时钟芯片DS1302、温度芯片DS18B20、AT89C51单片机和字符点阵型LCD1602液晶显示器等器件构成。用DS1302产生时钟信号,用温度芯片DS18B20产生温度信号,由单片机负责接收并且对其进行控制,最后在LCD1602液晶显示器然显时间及温度等信息。首先执行菜单命令“文件” “创建” “项目” “PCB项目”,创建一个新的PCB项目,并命名为“Clock.PrjPCB”,保存该项目到“在D:”下。然后在该项目中添加一个原理图文件,命名为“Clock.SchDoc”并保存在同一目录下。4.1.1 原理图设计单击工作区面板上的“Project”选项卡,从选项

49、卡中选择新建的原理图文件“Clock.SchDoc”,切换到原理图编辑状态界面,按照电路中用到的元件逐个放置,并对元件进行布局。再按照各个元件之间的电气连接属性,对电路进行连接。在连接的过程中,可以根据连接的需要适当调整元件的布局。在连线较复杂的地方可以通过放置网络标签来连接。连接好的电路如图4-3所示。图4-3 系统电路图其中由于DXP中无LCD1602、DS18B20等芯片,而最终设计出的电路板并不会产生电子原器件,只是为芯片留其引脚相应的铜空而矣,所以这些芯片可用与其引脚相同的器件来代替。因此本系统的电路图最终设计成了图4-3所示的样子。4.1.2 报表生成在原理图绘制完成后,就可以编译

50、原理图找出错误的地方进行修改,同时生成所需要的各种报表文档。执行菜单命令“项目管理” “Compile PCB Project Clock.PrjPcb”,对项目进行编译。编译结束后,会弹出“Message”对话框,在该对话框中列出了编译中的错误或者警告等信息。根据编译的信息,仔细检查原理图并修正提示的错误信息。4.1.3 创建PCB文件单击工作区面板的“Project”选项卡,移动光标到项目“Clock.PrjPcb”上,单击鼠标右键,在弹出的快捷菜单中,执行菜单命名“追加新文件到项目中” “PCB”,创建一个新的PCB文件,重新命名为“Clock.PcbDoc”并保存到项目目录下,如图4-

51、4所示。图4-4 追加PCB文件到项目在PCB编辑状态下,执行菜单命令“设计” “Import Changes From Clock.PrjPcb”,系统会弹出“工程变化订单(ECO)”对话框,如图4-5所示。图4-5 工程变化订单单击“使变化生效”按钮,检查有无错误信息,如有错误则修改相应的地方。直到无错误信息为止。然后单击“执行变化” 完成网络表的导入如图4-6所示。图4-6 执行变化状态完成网络表的导入后,单击“工程变化订单(ECO)”对话框中的“关闭”按钮。在PCB编辑状下,可以看到导入网络表后的PCB如图4-7所示。图4-7 完成网络表导入的PCB界面第5章 结 论这次毕业设计项目虽

52、然不是很大,但用的技术和知识一点也不逊色于大点的项目,比如说其中用到了DS18B20中的串行通信技术,AT89C51基本操作知识,汇编语言方面的知识等。这次毕业设计也是一次非常难得的理论和实际相结合的机会,通过这次比较完整系统设计,使我摆脱了以往单纯的理论知识学习状态,并且在和实际设计的结合锻炼了我的综合运用所学的专业基础知识。在设计过程中遇到的问题在老师或同学的帮助下一个一个解决了,这次设计虽然顺利做完了,但还是许多美中不足之处,让我认识到自己对单片机应用方面的知识的贫乏,对于书本上的很多理论知识还不能灵活运用,有很多我们掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。同

53、时还从中学到了一件很重要的东西,那就是如何从理论到实践的转化,怎么样将我所学到的知识运用到我以后的工作中去。此次的毕业设计给我奠定了一个实践基础,我会在以后的学习,生活中磨练自己,使自己适应于以后的竞争。附 录(1)仿真电路图仿真电路图(2)PCB电路图PCB电路图(3):源程序ORG 0000H;DS1602引脚定义RS EQU P2.0 ;RS为寄存器选择RW EQU P2.1 ;RW为读写信号线E EQU P2.2 ;E为使能端,E由高变低进执行命令LCD EQU P0 ;数据总线;DS1302引脚定义RST EQU P1.2 ;复位引脚SCLK EQU P1.3 ;串行时钟IO EQU

54、 P1.4 ;数据输入/输出引脚;DS18B20引脚定义-DQ BIT P1.0;单总线口;键盘引脚定义SETUP EQU P2.7 ;调整时间按键UP EQU P2.6 ;加按键DOWN EQU P2.5 ;减按键TIMERDISPLAY EQU P2.4 ;显示闹钟时间按键;DS1302数据存储单元定义DS1302_INSTRUCTION EQU 20H ;存储DS1302指令的寄存器DS1302_DATA EQU 21H ;存储(读/写)DS1302数据的寄存器YEAR_HH EQU 30H ;年的最高两位YEAR EQU 31H ;年寄存器YEAR_H EQU 32H ;年的十位寄存器

55、YEAR_L EQU 33H ;年的个位寄存器MONTH EQU 34H ;月寄存器MONTH_H EQU 35H ;月的十位寄存器MONTH_LEQU 36H ;月的个位寄存器DAY EQU 37H ;日寄存器DAY_H EQU 38H ;天的十位寄存器DAY_L EQU 39H ;天的个位寄存器WEEK EQU 40H ;周寄存器HOUR EQU 41H;小时寄存器HOUR_H EQU 42H ;小时的十位寄存器HOUR_L EQU 43H ;小时的个位寄存器MINUTE EQU 44H;分钟寄存器MINUTE_H EQU 45H ;分钟的十位寄存器MINUTE_L EQU 46H ;分钟的个位寄存器SECOND EQU 47H;秒寄存器SECOND_H EQU 48H ;秒的十位寄存器SECOND_L EQU 49H ;秒的个位寄存器;DS18B20数据存储单元定义-TEMPER_L EQU 50H ;暂存温度个位TEMPER_H EQU 51H ;暂存温度十位TEMPER_NUM EQU 52H;温度值存储FLAG1 BIT 00H ;DS18B20是否存在标志;闹钟数据定义BELL EQU P2.3 ;铃声输出端TIMER_MINUTE EQU 60H ;闹钟分储存器TIMER_HOUR EQU 61H ;闹钟时储存器;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!