C51单片机驱动1602 LCD实现电子时钟与闹钟功能设计

版权申诉
5星 · 超过95%的资源 0 下载量 146 浏览量 更新于2024-06-27 收藏 842KB DOC 举报
本资源是一份关于C51单片机LCD电子时钟的课程设计文档,由中南大学的《自动化工程实践》项目组完成,设计时间为2016年9月。设计目标是开发一个能够实时显示当前时间并具有闹钟功能的系统,通过AT89C51单片机为核心,利用LCD1602液晶显示器进行时间和日期的显示,以及通过按键操作进行时间设置和闹钟调整。 设计过程包括以下几个关键部分: 1. 设计要求分析:设计的核心需求是实现一个既能实时显示时间又能设置闹钟的系统,闹钟采用蜂鸣器以5秒鸣响的形式提醒。液晶显示电子时钟原理图展示了系统的整体结构。 2. 电路构成: - 复位电路:采用按钮复位,确保系统可靠启动。 - 晶振电路:选用12MHz的晶振,并配合22pF电容,为单片机提供稳定的时钟信号。 - 键盘控制体系:设计了4个按键,分别用于调整时间、增加时间、减少时间和闹钟设置。 - 闹钟部分:由蜂鸣器、三极管和电阻组成,通过单片机的P1^5接口控制蜂鸣器的开关。 3. 软件设计:软件部分至关重要,包括主程序、初始化子程序、延时中断子程序和时间设置子程序。利用单片机的I/O口与LCD1602进行通信,通过指令编程实现显示和操作控制。 4. 系统测试:对整个系统进行了测试,包括测试方法、测试结果和结果分析,确保功能的正确性和稳定性。 5. 源程序:提供了完整的源代码,供学习者参考和进一步研究。 这份文档详细描述了从需求分析到实际操作的全过程,对于学习和理解C51单片机及其应用的学生来说,具有很高的参考价值。
2023-02-27 上传
一、设计要求 1、准确计时,以数字形式显示时、分、秒地时间. 2、小时以24小时计时形式,分秒计时为60进位. 3、校正时间功能,即能随意设定走时时间. 4、闹钟功能,一旦走时到该时间,能以声或光地形式告警提示. 5、设计5V直流电源,系统时钟电路、复位电路. 6、能指示秒节奏,即秒提示. 7、可采用交直流供电电源,且能自动切换. 二、设计方案和论证 本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且 省去了很多复杂地线路,使得电路简明易懂,使用键盘键上地按键来调整时钟地时、分 、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得 编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求 . 2.1、总设计原理框图 如下图所示: 2.2、设计方案地选择 1.计时方案 方案1:采用实时时钟芯片 现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等.这些实时 时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据地更新每 秒自动进行一次,不需要程序干预.因此,在工业实时测控系统中多采用这一类专用 芯片来实现实时时钟功能. 方案2:使用单片机内部地可编程定时器. 利用单片机内部地定时计数器进行中端定时,配合软件延时实现时、分、秒地计 时.该方案节省硬件成本,但程序设计较为复杂. 2.显示方案 对于实时时钟而言,显示显然是另一个重要地环节.通常LED显示有两种方式:动 态显示和静态显示. 静态显示地优点是程序简单、显示亮度有保证、单片机CPU地开销小,节约CPU地 工作时间.但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂 .需要几个LED就必须占有几个并行口,比较适用于LED数量较少地场合.当然当LED数 量较多地时候,可以使用单片机地串行口通过移位寄存器地方式加以解决,但程序编 写比较麻烦. LED动态显示硬件连接简单,但动态扫描地显示方式需要占有CPU较多地时间,在 单片机没有太多实时测控任务地情况下可以采用. 本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本 系统选择动态显示方式. 2.3硬件部分 1、STC89C51单片机介绍 STC89C51单片机是由深圳宏晶公司代理销售地一款MCU,是由美国设计生产地一 种低电压、高性能CMOS 8位单片机,片内含8kbytes地可反复写地FlashROM和128bytes地RAM,2个16位定时计 数器[5]. STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地 址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、 定时器/计数器、串行I/O接口以及定时控制逻辑电路等.这些部件通过内部总线联接 起来,构成一个完整地微型计算机.其管脚图如图所示. STC89C51单片机管脚结构图 VCC:电源. GND:接地. P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口地管脚第 一次写1时,被定义为高阻输入.P0能够用于外部程 序数据存储器,它可以被定义为数据/地址地第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高. P1口:P1口是一个内部提供上拉电阻地8位双向I/O口,P1口缓冲器能接收输出4TTL门电 流.P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉地缘故.在FLASH编 程和校验时,P1口作为第八位地址接收. P2口:P2口为一个内部上拉电阻地8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电 流,当P2口被写"1"时,其管脚被内部上拉电阻 拉高,且作为输入.并因此作为输入时,P2口地管脚被外部拉低,将输出电流.这是由于 内部上拉地缘故.P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址地高八位.在给出地址"1"时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 地内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号. P3口:P3口管脚是8个带内部上拉电阻地双向I/O口,可接收输出4个TTL门电流.当P3口写 入"1"后,它们被内部上拉为高电平,并用作输入.作为输入,由于外部下拉为低电平, P3口将输出电流(ILL)这是由于上拉地缘故. P3口也可作为AT89C51地一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中
2023-02-27 上传
目 录 第一部分 设计任务和要求 1. 单片机课程设计内容…………………………………………………2 2. 单片机课程设计要求…………………………………………………2 3. 系统运行流程…………………………………………………………2 第二部分 设计方案 2.1 总体设计方案说明……………………………………………………2 2.2 系统方框图……………………………………………………………3 2.3 系统流程图……………………………………………………………3 第三部分 主要器材及基本简介 3.1 主要器材………………………………………………………………4 3.2 主要器材简介…………………………………………………………4 第四部分 系统硬件设计 4.1 最小系统………………………………………………………………6 4.2 LCD显示电路…………………………………………………………6 4.3 键盘输入电路…………………………………………………………7 4.4 蜂鸣器和LED灯电路…………………………………………………7 第五部分 仿真电路图与仿真结果………………………………………………8 第六部分 课程设计总结…………………………………………………………8 第七部分 参考文献………………………………………………………………9 附录A 实物图 附录B 系统源程序 第一部分 设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小 时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程 序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下 则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时 的进位和星期、年、月、日的进位。调时闪烁中断服务程序用于被调单元的闪烁显示。 调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程 序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调 整是靠对功能键的判断来实现的。 第二部分 设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序, 并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。 3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图 2.2 单片机系统流程图 主流程图 键盘扫描流程图 时钟流程图 第三部分 主要器件及简介 3.1 主要器件 1. STC89C51单片机; 2.LCD1602液晶显示屏; 3.2 主要器件简介 1.STC89C51单片机简介 STC89C51是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS- 51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程 序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。 2.LCD1602液晶显示屏简介 LCD1602可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工 作电压为5V,并且带有字符对比度调节和背光。 LCD1602引脚说明如下表所示: LCD液晶显示器各引脚功能及结构 "编号 "符号 "引脚说明 "编号 "符号 "引脚说明 " "1 "VSS "电源地 "9 "D2 "双向数据口" "2 "VDD "电源正极 "10 "D3 "双向数据口" "3 "VL "对比度调节"11 "D4 "双向数据口" "4 "RS "数据/命令 "12 "D5 "双向数据口" " " "选择 " " " " "5 "R/W "读写/选择 "13 "D6 "双向数据口" "6 "E "模块使能端"14 "D7 "双向数据口" "7 "D0 "双向数据口"15 "BLK "背光源地 " "8 "D1 "双向数据口"16 "BLA "背光源正极" VDD:电源正极,4.5V—5.5V,通常使用5V电压; VL:LCD对比度调节端,电压调节范围为0—5V。接正极时对比度最