设计总说明这次课程设计的任务是是利用MCS51系列单片外加必要的辅助电路从而设计一个带有LCD显示的定时闹钟。该闹钟应具有的功能是:当定时闹钟到了人为设定好的时间后,它就发出声音,并且在LCD显示器上显示出你所设定的闹钟时间以及当前时间,并能够随时调整时间。本课设所用器件有:AT89C52单片机、LCD显示器(LM016L)、上拉电阻(Respack-8)、晶振电路、复位电路(带有复位键)以及四个控制键。1、在控制时分电路设计中,分别设置了四个键:K1键-用来设置当前时间以及在设置中用来设置时钟K2键-显示闹钟时间以及在设置中用来设置分钟K3键-设置闹钟时间K4键-控制闹铃的开关2、在控制时分秒电路的设计中,分别设置了五个键,即在1的基础上增加了一个控制秒的按键。当然本课程设计中所用到的元器件还可以应用其他的一些器件。比如AT89C52完全可以用AT89C51来代替,LM016L型号的LCD显示器可以用LM017L型号的LCD显示器来代替(其他一些显示器也可以用),上来电阻也可以用分电阻来表示。初次做课程设计,肯定会有许多不足之处,希望老师们指点!关键字:AT89C52单片机LCD显示器闹钟共33页第2页目录1、主要内容„„„„„„„„„„„„„„„„„„„„„„„„„„32、目的和意义„„„„„„„„„„„„„„„„„„„„„„„„„33、基本要求„„„„„„„„„„„„„„„„„„„„„„„„„„33.1、显示时-分功能„„„„„„„„„„„„„„„„„„„„„33.2、显示时-分-秒功能„„„„„„„„„„„„„„„„„„„34、系统设计4.1AT89C52单片机简介„„„„„„„„„„„„„„„„„„„44.2电路总体设计„„„„„„„„„„„„„„„„„„„„„„64.3主程序流程图„„„„„„„„„„„„„„„„„„„„„„75、详细设计5.1设计电路图„„„„„„„„„„„„„„„„„„„„„„„75.2程序代码„„„„„„„„„„„„„„„„„„„„„„„„125.2.1时-分程序代码„„„„„„„„„„„„„„„„„„„125.2.2时-分-秒程序代码„„„„„„„„„„„„„„„„„236、结论6.1结果分析„„„„„„„„„„„„„„„„„„„„„„„„336.2心得体会„„„„„„„„„„„„„„„„„„„„„„„„337、设计总结„„„„„„„„„„„„„„„„„„„„„„„„„„348、参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„34共33页第3页1、主要内容:本次课程设计的内容为设计一个以MCS51单片机为核心的带有LCD显示的定时闹钟,完成原理图设计,软件编制及设计报告。设使用AT89C52单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可以使用。2、设计本电子定时闹钟的目的和意义本课程设计的目的和意义在于提高对单片机课程的认识以及对该课程的实践应用能力。通过本次课程设计的实践,了解单片机工作的原理及应用技术,掌握根据硬件电路设计软件的方法,了解设计过程中的各个基本环节,也为今后的实际应用奠定基础3、基本要求:.字符型LCD(16*2)显示器.显示格式“时时:分分:秒秒”。.一旦时间到则发出声响,表示程序开始执行,LCD显示“0000”,按下操作键K1-k4动作如下:3.1、显示时-分功能:(1)K1—设置现在的时间。(2)K2—显示闹铃的时间(3)K3—设置闹铃的时间。。(4)K4—闹铃ON/OFF(即按下k4键可以开启或停止声响)的状态设置,定时“开始”按键,启动定时。(5)K5—复位键设置当前时间或闹铃时间如下:①K1—对时的调整。②K2—对分的调整。③K3—设置完成。3.2、显示时-分-秒功能:(6)K1—设置现在的时间。(7)K2—显示闹铃的时间(8)K3—设置闹铃的时间。。(9)K4—设置完成。(10)K5—闹铃ON/OFF(即按下k4键可以开启或停止声响)的状态设置,定时“开始”按键,启动定时(11)K6—复位键设置当前时间或闹铃时间如下:④K1—对时的调整。⑤K2—对分的调整。⑥K3—对秒的调整。⑦K4—设置完成。4、系统设计共33页第4页4.1AT89C52单片机简介许多由关硬件设计中都使用到单片机AT89C52,其功能比以往的单片机强大的多。AT89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,一个5中断源和两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。引脚说明:·VCC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4图89S52引脚图共33页第5页个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有AT89C52的多种特殊功能,具体如下表1所示:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.20INT(外部中断0)P3.31INT(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器都选通)表1P3口的第二功能·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。·ALE/PROG:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出(PROG)。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。·PSEN:程序存储允许时外部程序存储器的读选通信号。当AT89S52执行外部程序存储器的指令时,每个机器周期PSEN两次有效,除了当访问外部数据存储器时,PSEN将跳过两个信号。·EA/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,EA必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,EA应该接到VCC端。·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。·XTAL2:振荡器反相放大器的输出端。4.2电路总体设计共33页第6页LCD定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用C语言设计的程序来实现的。根据C51单片机的外围接口特点扩展相应的硬件电路,然后根据单片机的指令设计出数字钟相应的软件,再利用软件执行一定的程序来实现数字钟的功能。由于采用集成芯片性的单片机来制作电子钟,这样设计制作简单而且功能多、精确度高,也可方便扩充其他功能,实现也十分简单。本设计是利用AT89C52单片机为主控芯片,由LCD、电阻、电容、按键、蜂鸣器等元件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟4.3主程序流程图NAT89C52震荡电路调时电路蜂鸣器LCD片选代码CPU系统初始化定时器0初始化定时器1初始化串口初始化显示待机指示符设定闹铃时间设置闹铃时间否?显示刷新启动走时有关变量初始化刷新显示判断复位状况秒指示判断时间是否变化闹铃判是否到闹铃时间?延时YYYY共33页第7页5、详细设计5.1硬件电路设计5.1.1所需硬件①主控芯片AT89C52(或AT89C51)单片机②上拉电阻respack-8③液晶显示器(LM016L)LCD1④蜂鸣器speaker5.1.2单片机硬件资源分配1、时-分功能的控制键接口:P1.0连接按键K1P1.2连接按键K2P1.3连接按键K3P1.4连接按键K4RST连接复位键K5P3.4连接蜂鸣器P0.0/AD0~P0.7/AD7依次接LCD1(LM016L)的00~07,为数据线连接2、时-分-秒功能的控制接口:P1.0连接按键K1P1.1连接按键K2P1.2连接按键K3P1.3连接按键K4P1.4连接按键K4RST连接复位键K6P3.4连接蜂鸣器P0.0/AD0~P0.7/AD7依次接LCD1(LM016L)的00~07,为数据线连接5.1.3本LCD电子闹钟的特点和功能介绍数字钟介绍时钟是将小时、分钟、秒显示于人的肉眼的计时装置。而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。而LCD电子定时闹钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期为24小时,另外应有校时功能和闹钟等附加功能。一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”,“星期”计数器、校时电路、报时电路和振共33页第8页荡器组成。目前电子钟广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手。1602LCD液晶显示器介绍为了获得更好的效果,本设计并没有采用常见的LED,而是采用了型号为LM016L(1602)的LCD。LCD有比LED数码显示更好更直观的效果,也更加经久耐用。液晶显示模块体积小、功耗低、显示内容丰富,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件之一了。本LCD是2行16列液晶,可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,E三个控制端口(共14线),工作电压为5V。没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚)。D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。引脚说明,见表3.1。VDD:电源正极,4.5-5.5V,通常使用5V电压;RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0~D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;表3.1LCD1(LM016L)显示屏引脚说明编号符号引脚说明编号符号引脚说明1VSS电源,接地9D2双向数据口2VDD电源,接+5V10D3双向数据口3