基于嵌入式系统的LCD电子时钟设计

合集下载

嵌入式课程设计-- 基于LCD的电子时钟实验

嵌入式课程设计-- 基于LCD的电子时钟实验

课程设计报告题目嵌入式系统项目设计课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容学习LCD与ARM的LCD的控制器的接口原理,掌握内置LCD控制器驱动编写方法和RTC控制方法,在可行性分析的基础上实现以下功能:1、编写程序实现电子时钟功能,通过实验系统的LCD将时间显示出来;2、仿照给定图形在LCD上显示类似的时钟界面;3、动态显示当前的时间,包括:年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间。

一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生的编程能力、用计算机解决实际问题的能力。

3、培养学生遇到问题,解决问题的能力。

二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、实验设备有L-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆;3、PC操作系统WIN98或WIN2000或WINXP,ARM SDT2.5或ADS1.2集成开发环境,仿真器驱动程序;4、本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

三、课程设计预期效果1、完成实验环境搭建;2、分模块调试和编译;3、组合并完善程序;4、联合仿真软件运行程序;5、液晶显示器显示时钟图样,时,分,秒能指向正确的时间。

学生姓名:严维锋专业年级:自动化2008级目录前言 (3)第一章系统设计 (4)第一节课题目标及总体方案 (4)第二节原理框图 (5)第三节程序和芯片的初始化 (5)第四节构建功能模块 (7)第五节 MAIN函数的局部原理分析 (8)第二章实验(测试)结果及讨论 (13)第一节 ADS1.2软件的编译,连接和运行 (13)第二节程序调试 (14)第三章结论 (14)心得体会 (15)参考文献 (16)附录 (17)源程序 (17)前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,其强大的控制能力和专业性在通讯、网络、工控、电子等领域发挥着越来越重要的作用。

嵌入式电子闹钟课程设计方案

嵌入式电子闹钟课程设计方案

嵌入式系统综合实验题目基于嵌入式的数字闹钟系统设计学生姓名秦乙学号20071309087学院电子与信息工程学院专业信息工程二O一O年十二月二十七日目录论文标题.................................................... 错误!未定义书签。

摘要和关键词................................................ 错误!未定义书签。

1 绪论 (2)1.1 在信息产业中EDA产生的影响 (2)1.2 中国国内EDA发展情况 (2)2 FPGA简介 (2)2.1 FPGA概述 (2)2.2 FPGA基本结构 (3)2.3 FPGA编程原理 (3)3 设计的总体方案 (4)3.1流程图 (4)3.2模块组成 (4)3.3数字闹钟工作原理 (4)4设计的详细原理 (5)4.1主要模块 (5)4.2功能概述 (5)5设计的步骤和过程 (6)5.1计时模块 (6)5.2校时模块 (7)5.3设定闹钟模块 (8)5.4显示模块设计 (9)5.5蜂鸣器模块设计..................................... 错误!未定义书签。

2 6设计的仿真和结果......................................... 错误!未定义书签。

2 7总结..................................................... 错误!未定义书签。

5 参考文献................................................... 错误!未定义书签。

5基于嵌入式的数字闹钟系统设计秦乙南京信息工程大学电子与信息工程学院信息工程系,南京210044 摘要:随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。

为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子数字钟诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

嵌入式课程设计-- 基于LCD的电子时钟实验

嵌入式课程设计-- 基于LCD的电子时钟实验

课程设计报告题目嵌入式系统项目设计课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容学习LCD与ARM的LCD的控制器的接口原理,掌握内置LCD控制器驱动编写方法和RTC控制方法,在可行性分析的基础上实现以下功能:1、编写程序实现电子时钟功能,通过实验系统的LCD将时间显示出来;2、仿照给定图形在LCD上显示类似的时钟界面;3、动态显示当前的时间,包括:年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间。

一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、培养学生的编程能力、用计算机解决实际问题的能力。

3、培养学生遇到问题,解决问题的能力。

二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、实验设备有L-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆;3、PC操作系统WIN98或WIN2000或WINXP,ARM SDT2.5或ADS1.2集成开发环境,仿真器驱动程序;4、本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

三、课程设计预期效果1、完成实验环境搭建;2、分模块调试和编译;3、组合并完善程序;4、联合仿真软件运行程序;5、液晶显示器显示时钟图样,时,分,秒能指向正确的时间。

学生姓名:严维锋专业年级:自动化2008级目录前言 (3)第一章系统设计 (4)第一节课题目标及总体方案 (4)第二节原理框图 (5)第三节程序和芯片的初始化 (5)第四节构建功能模块 (7)第五节 MAIN函数的局部原理分析 (8)第二章实验(测试)结果及讨论 (13)第一节 ADS1.2软件的编译,连接和运行 (13)第二节程序调试 (14)第三章结论 (14)心得体会 (15)参考文献 (16)附录 (17)源程序 (17)前言近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,其强大的控制能力和专业性在通讯、网络、工控、电子等领域发挥着越来越重要的作用。

基于LCD1602电子时钟

基于LCD1602电子时钟

信息与电子工程学院课程设计报告录目一、课程设计概述 (3)1.1 课程设计背景 (3)1.2 课程设计内容 (3)1.3 课程设计技术指标 (3)二、方案的选择及确定 (3)2.1 单片机芯片的选择 (3)2.2 显示模块的选择 (4)2.3 实时时间计算模块的选择.42.4 实时环境温度采集模块选择 (4)2.5 电路设计最终方案决定 (5)三、系统硬件设计 (5)3.1 主控模块 (5)3.2LCD显示模块设计 (6)3.3 时间计算模块设计 (6)3.4 实时环境温度检测模块 (7)3.5 报警模块 (7)3.6 设置模块 (8)3.7 电源接口部分 (8)四、系统软件设计 (8)4.1 主函数 (8)4.2 设置模块 (9)4.31602 液晶屏 (10)4.4 软件原理图 (11)五、系统调试过程 (11)5.1 软件调试 (11)5.2 硬件调试 (12)六、结论 ..................................12七、遇到的问题及解决方法和总结 (12)7.1 硬件方面 (12)7.2 软件方面 (13)7.3 总结 (13)1八、参考文献 (13)九、附录 (14)课程设计概述1.1 课程设计背景随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。

单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。

因为它有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。

而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。

1.2 课程设计内容利用单片机、时钟芯片DS1302温度传感器DS18B20 16O2液晶屏等实现日期、时间、温度的显示,即是一个电子时钟。

嵌入式课程设计——基于DS1302数字钟

嵌入式课程设计——基于DS1302数字钟

嵌入式课程设计报告题目:基于DS1302数字钟姓名:学号:班级:电子101专业:电子信息工程指导老师:提交时间: 2013-12-13组员:目录摘要................................................. - 1 -1.引言............................................... - 3 -2.硬件电路设计:..................................... - 4 - 2.1 DS1302 ........................................ - 4 - 2. 2 AT89C52 ...................................... - 6 - 2. 3 LCD1602 ...................................... - 7 -2. 4 设计方案 ..................................... - 8 -3.软件程序设计....................................... - 9 - 3.1主程序.......................................... - 9 - 3.2 LCD1602程序:................................. - 10 -3.3 DS1302应用程序:.............................. - 13 -4.课设的心得体会.................................... - 17 - 参考文献............................................ - 20 -摘要本设计选取串行接口时钟芯片 DS1302 与单片机同步通信构成数字时钟电路并用LCD1602显示。

课程设计---基于LCD的电子时钟设计

课程设计---基于LCD的电子时钟设计

课程设计报告题目基于LCD的电子时钟设计专业、学号授课班号学生姓名指导教师完成时间课程设计(报告)任务书(理工科类)Ⅰ、课程设计(报告)题目:基于LCD的电子时钟设计Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、掌握嵌入式系统设计基本原理、培养嵌入式系统设计能力;二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、使用实验箱上的S3C44BOX芯片系统和LCD作为硬件基础;3、使用ADS1.2及H-JTAG对源程序进行编译、仿真、调试,下载到芯片中实现LCD电子时钟功能。

三、课程设计预期效果1、完成实验环境搭建:学习LCD与ARM的LCD的控制器的接口原理;掌握内置LCD控制器驱动编写方法;2、设计完成电子时钟源程序;3、源程序编译、调试通过,下载到实验箱中,实现电子时钟功能,并在LCD上显示类似的时钟界面,动态显示当前的时间,包括:年、月、日、时、分、秒,时针,分针、秒针必须为动态实时指示当前的时间。

学生姓名:专业年级:目录前言 (2)第一章系统设计 (3)第一节课题目标及总体方案 (3)第二节硬件平台简介 (3)一、 S3C44B0X简介 (3)二、S3C44B0X与LCD连接 (5)第二节软件系统设计 (5)一、μC/OS-II系统模块设计 (5)二、LCD初始化模块设计 (5)三、时钟应用系统模块设计 (5)第二章实验结果及讨论 (7)第一节ADS1.2集成开发环境简介 (7)第二节调试结果与分析 (9)第三章结论 (10)心得体会 (11)参考文献 (12)附录 (13)源程序 (13)前言随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在多媒体手机、袖珍电脑、掌上电脑、车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。

嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成;本文介绍基于ARM7的嵌入式微处理器S3C44BOX和LCD显示器的电子时钟的设计,实现电子时钟的功能,并在LCD 上显示类似的时钟界面;动态显示当前的时间,包括:年、月、日、时、分、秒,时针。

基于单片机的LCD数字电子钟

基于单片机的LCD数字电子钟

长春工业大学智能仪表综合训练设计说明书题目:基于单片机的LCD数字电子钟学生姓名:学号:专业:测控技术与仪器班级:指导教师:摘要数字电子钟是采用电子电路实现对年、月、日、时、分、秒数字显示的计时装置,由于数字集成电路的发展和石英晶体震荡器的广泛应用,使得数字电子钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,成为人们日常生活中不可缺少的必需品。

本文介绍了基于单片机的多功能数字电子钟设计。

系统以STC89C52RC为核心,具有时间和日期的显示及设置功能。

硬件电路包括STC89C52RC单片机小系统电路、数字显示电路、时钟日期电路几部分模块。

再通过C语言编程对各模块进行调试,最后达到设计要求的效果。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间和日期精度高,操作简单,编程容易。

关键词:STC89C52RC单片机;LCD1602液晶显示器;时间设置;日期设置目录第1章前言 (4)1.1课题研究的现实性意义 (4)1.2国内外研究现状 (4)1.3课题基本要求 (5)第2章总体方案设计 (6)2.1方案原理 (6)2.2 硬件选择 (6)2.2.1单片机选择 (6)2.2.2显示器选择 (6)2.2.3晶振的选择 (7)第3章硬件设计 (8)3.1键盘电路 (8)3.2复位电路 (8)3.3晶振电路 (9)3.4 LCD显示电路 (10)第4章软件设计 (11)4.1 Protel 99SE (11)4.2程序主流程图 (11)4.3初始化流程图 (12)4.4延时中断子程序 (12)4.5时间设置子程序 (13)总结 (14)参考文献 (15)附录A:数字电子钟硬件原理图 (16)附录B :C语言源程序 (17)第1章前言1.1课题研究的现实性意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

基于单片机的LCD电子时钟设计

基于单片机的LCD电子时钟设计

基于单片机的LCD电子时钟设计随着科技的不断发展,单片机已经成为现代电子设备中的重要组成部分。

其中,LCD电子时钟的设计与应用更是受到广泛。

基于单片机的LCD电子时钟设计具有精度高、稳定性好、体积小、耗电量低等优点,被广泛应用于家居、办公、交通运输等领域。

一、设计原理基于单片机的LCD电子时钟设计主要由单片机、时钟电路和LCD显示模块组成。

其中,单片机作为主控制器,负责读取时钟信号并控制LCD显示模块。

时钟电路则产生一个高精度的实时时钟信号,LCD显示模块则负责将时间信息显示出来。

二、硬件设计1、单片机选择:单片机是整个系统的核心,负责读取时钟信号、处理数据并控制LCD显示模块。

常见的单片机型号包括STM32、PIC、AVR等。

根据实际需求,选择合适的单片机型号。

2、时钟电路:时钟电路是整个系统的核心部分,它产生高精度的实时时钟信号。

常见的时钟电路包括石英晶体振荡器、GPS模块等。

根据实际需求,选择合适的时钟电路。

3、LCD显示模块:LCD显示模块负责将时间信息显示出来。

常见的LCD显示模块包括字符型LCD和图形型LCD。

根据实际需求,选择合适的LCD显示模块。

三、软件设计软件设计是整个系统的重要组成部分,它需要实现读取时钟信号、处理数据并控制LCD显示模块的功能。

具体的软件设计流程如下:1、初始化:初始化单片机、时钟电路和LCD显示模块。

2、读取时钟信号:通过时钟电路读取实时时钟信号。

3、处理数据:对读取的时钟信号进行处理,提取出年、月、日、时、分、秒等信息。

4、控制LCD显示模块:将处理后的时间信息通过LCD显示模块显示出来。

5、循环执行:重复执行上述步骤,实现LCD电子时钟的实时更新。

四、调试与优化完成硬件和软件设计后,需要对系统进行调试和优化。

具体的调试和优化步骤如下:1、通电测试:将系统通电,检查各部分是否正常工作。

2、精度测试:检查时钟电路的精度是否满足要求。

3、LCD显示测试:检查LCD显示模块是否能正确显示时间信息。

LCD电子定时闹钟的设计及制作

LCD电子定时闹钟的设计及制作

摘要时间是现代社会中不可缺少的一项参数,无论是平时生活还是社会生产都需要对时间进行控制,有的场合对其精确性还有很高的要求。

本设计采用单片机芯片进行计时,由于AT89C51系列单片机的体积小,成本低,控制器运算能力强,处理速度快,可以精确计时,对于社会生产有着十分重要的作用。

在此次设计中,AT89C51单片机芯片是主要的元器件,通过它来控制电路的LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元件组成的硬件电路,再利用软件来执行一定的程序来实现LCD电子定时闹钟计时功能和定时闹铃的设置和控制。

由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。

关键词:单片机计时AT89C51ABSTRACTTime is the indispensable in the modern society, whether a parameter normally live or social production all need to control over time, some occasions to its accuracy and high requirements. This design USES the monolithic integrated circuit chips for timing, due to the volume of the series microcontroller AT89C51 is small, low cost, operation ability, controller processing speed, can accurate timing for social production, plays a very important role.In this design, AT89C51 chip is the main components, by which it can control circuit of LCD, crystals, resistor, capacitor, light-emitting diodes, switch, loudspeaker elements such as hardware circuit, reuse of software to perform certain procedures to achieve LCD electronic timing alarm clock function and regular alarm Settings and control. Because the system which is less, SCM used components is occupied I/O mouth not much, so system has certain expansibility.Key word:SCM Timing AT89C51目录1 引言 (1)1.1 LCD电子定时闹钟研究现状和发展趋势 (1)1.2 设计本电子定时闹钟的目的和意义 (1)1.3 本LCD电子闹钟的特点和功能介绍 (2)1.3.1 数字钟介绍 (2)1.3.2 本电子钟设计特点 (2)1.3.3 本电子钟的主要功能 (2)2 总体方案设计 (3)2.1 总体设计方案 (3)2.2 AT89C51芯片介绍 (3)2.2.1 单片机介绍 (3)2.2.2 MCS–51单片机内部总体结构 (6)2.2.3 MCS-51单片机的引脚 (6)3 硬件设计 (17)3.1 主控芯片AT89C51的设计 (17)3.2 时钟电路部分设计 (18)3.3 LCD显示电路部分 (19)3.4 喇叭部分的电路 (20)4 软件设计 (23)4.1 软件设计概述 (23)4.2 主函数的设计 (23)4.3 部分设计思想的说明 (25)4.3.1 程序初始化 (25)4.3.2 闹钟的实现 (25)4.3.3 显示程序 (26)结束语 (27)致谢 (28)参考文献 (29)附录 (30)1 引言1.1 LCD电子定时闹钟研究现状和发展趋势现在是一个高度发达的高科技的时代,目前单片机正朝向高性能和多品种方向发展,而且进一步向低功耗,小体积,大容量,高性能,低价格和外围电路内装化等几个方向发展。

嵌入式闹钟课程设计报告

嵌入式闹钟课程设计报告

嵌入式闹钟课程设计报告一、课程目标知识目标:1. 理解嵌入式闹钟的基本原理,掌握其核心组件的功能与作用。

2. 学会使用编程语言(如C语言)编写嵌入式闹钟程序,实现对时间的显示、设置和闹钟提醒功能。

3. 了解嵌入式系统的基本概念,掌握常见的输入输出接口及其应用。

技能目标:1. 能够运用所学知识设计和制作一个具有实际功能的嵌入式闹钟。

2. 培养学生的动手操作能力,学会使用相关工具和仪器进行硬件焊接、调试和程序下载。

3. 提高学生的团队协作能力,学会在项目过程中进行有效沟通和分工合作。

情感态度价值观目标:1. 培养学生对嵌入式系统的兴趣,激发学生学习编程和电子技术的热情。

2. 培养学生的创新精神和实践能力,鼓励学生勇于尝试、不断探索。

3. 增强学生的自信心和责任感,使学生在面对挑战时保持积极的态度。

课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,培养学生的动手能力和创新能力。

学生特点:初中生,具备一定的电子和编程基础,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:注重理论与实践相结合,强调学生的主动参与和动手实践,关注个体差异,提高学生的综合素质。

通过本课程的学习,使学生能够掌握嵌入式闹钟的制作方法,培养其创新意识和团队协作能力。

教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 嵌入式系统基本概念:介绍嵌入式系统的定义、组成及应用领域,使学生了解嵌入式系统的基本知识。

- 教材章节:第1章 嵌入式系统概述2. 嵌入式闹钟硬件设计:讲解闹钟所需的主要硬件组件,如微控制器、时钟芯片、显示屏、按键等,并介绍硬件电路的搭建方法。

- 教材章节:第2章 嵌入式系统硬件设计3. 嵌入式编程基础:教授C语言编程基础,包括变量、数据类型、运算符、控制语句等,为编写嵌入式闹钟程序打下基础。

- 教材章节:第3章 嵌入式编程基础4. 时间显示与设置:讲解时间的表示方法、时间设置与显示的实现,使学生掌握闹钟时间调整与显示功能的设计。

数字时钟的嵌入式系统的设计

数字时钟的嵌入式系统的设计

基于嵌入式操作系统的数字电子钟系统设计一.嵌入式背景介绍随着信息化、智能化、网络化的发展以及计算机技术的发展,嵌入式技术也获得了广阔的发展空间,嵌入式技术目前已成为通信和消费类产品的共同发展方向。

嵌入式技术的应用到处可见,应用十分广泛。

如家庭中的数字电视、机顶盒、DVD、超级VCD智能手机等;办公室中的复印机、打印机、扫描仪、键盘灯;手持设备也用到了嵌入式技术,包括MP3、GPS手机、数码相机、数码摄像机等;汽车电子产品:电子地图、导航、车载GPS等。

其他领域,如通信、机器人等都应用到了嵌入式技术,由此可以看出,嵌入式系统的发展已日趋成熟了。

嵌入式系统被定义为:以应用为中心,以计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统是现代多学科互相融合的产物,嵌入式系统无多余软件,并且以固态化出现,硬件亦无多余存储器,有可靠性高、成本低、体积小、功耗少等特点。

嵌入式系统又是知识密集,投资规模大,产品更新换代快,且具有不断创新特征、不断发展的系统。

嵌入式系统主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,它是集软硬件于一体的可独立工作的“器件”。

嵌入式处理器主要由一个单片机或微控制器组成。

而这些嵌入式微处理器目前多是8位、16位和32位的,与64位的高性能处理器相比,具有很强的经济性。

相关支撑硬件包括显示卡、存储介质、通讯设备、IC卡或信用卡的读取设备等。

嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用闪存作为存储介质。

嵌入式软件包括与硬件相关的底层软件、操作系统、图形界面、通讯协议、数据库系统等、标准化浏览器和应用软件等。

随着计算机技术、信息技术和网络技术以及其他技术的发展,嵌入式系统将向着更加小、更快速、功耗更低以及互联网的方向发展。

本系统的功能是可调数字时钟,LED显示时间,通过键盘和触摸屏均可以校对时钟。

基于单片机的lcd1602电子时钟设计说明

基于单片机的lcd1602电子时钟设计说明

基于单片机的LCD1602电子时钟设计一、设计任务和目的1.1、设计任务(1):用单片机设计基于LCD1602的电子时钟,显示时间和日期;(2):误差精度控制在1s/天;(3):具有时间和日期的校准功能;(4):能区分某年是闰年或平年,并对应显示2月份的天数;(5):根据月份的不同显示不同的最大日数;(6):搭建仿真电路图,模拟单片机要实现的功能;(7):焊接单片机开发板;(8):编写程序,下载并调试,实现要求的功能。

1.2、设计目的(1):熟练掌握KEIL软件的使用方法;(2):熟练掌握PROTEUS软件的使用方法;(3):掌握单片机I/O接口的工作原理;(4):掌握LCD显示器的工作原理及编程方法;(5):掌握独立式键盘的工作原理及编程使用方法;(6):掌握单片机的下载使用方法。

二、设计思路和方案论证2.1、设计思路电路总体上分为控制和显示部分。

以单片机最小系统作为核心控制电路,控制LCD显示,具体显示容及方式由软件来完成;由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、减1键三个按键完成,共需四个按键;计时功能由固定频率的晶振完成(采用11.0592MHz);显示部分主要采用LCD1602作为显示。

2.2、方案论证(1):时钟芯片的选择和论证方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V围,功耗也较低,但价格比较贵。

方案二:直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、月、年计数。

采用此方案实现虽然有一定的时间误差,但可减少芯片的使用,节约成本,易于实现,符合现实选用,所以采用此种作为时钟信号发生器。

(2):显示模块选择方案和论证:方案一:采用点阵式图形LCD12864液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用点阵式图形LCD12864液晶显示屏。

基于LCD的数字电子时钟设计

基于LCD的数字电子时钟设计

分类号编号*******大学毕业设计题目基于LCD的数字电子时钟学院电力学院专业自动化姓名***学号***指导教师#####年月日摘要多功能数字钟的应用非常普遍,由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时、定时等功能。

输出设备显示器可以用液晶显示技术和数码管来显示技术。

本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机STC89C52为核心元件同时采用LCD液晶显示器动态显示“时”,“分”,“秒”的现代计时装置。

另外具有校时功能,秒表功能,和定时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

简要介绍了LCD显示的发展状况和其所特有的优势,简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。

整个设计采用界面化的设计方法,使用者在使用的过程中会非常方便,但这也花费了编程人员的大量精力。

模块化的设计和调试方法在整个课题研究过程中至关重要,事实上在任何设计中也同样关键和有效。

【关键词】:数字钟、单片机、LCD液晶显示器AbstractMulti-function digital clock in the application is already very common. SCM as a digital clock from the core controller, it can achieve the clock signal timing, its time data by the MCU output, use of monitors displayed. Keyboard can be carried out at the school, timing, and other functions. Output devices can be used liquid crystal display monitors and digital technology to display the technology.The system uses MCU with time, the school features such as the digital clock, SCM STC89C51 is also used as the core components of the LCD digital display dynamic display "when" and "points" and "seconds" of the modern time device .In addition a school function, stopwatch function, and the timer function to achieve MCU use of the digital clock with programming flexibility to facilitate the expansion of functional advantages.This paper gives a general description of development situation of LCD display and advantages of LCD products as display .It also introduces the basic functions of some relative vital chips briefly. Solutions of the key parts are also introduced with particular description. The design of the interface design method in use process, the user will be very convenient, but it also spent a lot of programmers. Modularized design and debug are most important in the whole course of the topic research. In fact, it is as well as vital and effective in any other design course.[keywords]:Digital clock、SCM、LCD Monitor目录摘要 (II)Abstract (III)目录 (IV)前言 (1)第一章绪论 (2)1.1 集成电路 (2)1.1.1 集成电路概述 (2)1.1.2 集成电路的发展历史 (2)1.1.3 集成电路的发展趋势 (2)1.2 单片机 (3)1.2.1 单片机概述 (3)1.2.2 单片机的发展历史 (3)1.2.3 单片机的应用范围 (4)1.2.4 我对单片机的体会 (5)1.3 液晶显示器 (6)1.3.1 选用液晶显示器 (6)1.3.2 液晶显示器概述 (7)1.3.2.1 液晶显示器的分类 (7)1.3.2.2 液晶显示各种图形的显示原理 (7)1.4 DS18B20概述 (8)第二章单片机 (10)2.1 单片机选型 (10)2.2STC89C516RD+的电路特性和管脚信息 (10)2.3 STC89C516RD+的中断系统 (12)2.3.1 STC89C516RD+的中断源 (13)2.3.2 中断控制 (13)2.4 STC89C516RD+的定时系统 (14)2.4.1 定时器的结构 (14)2.4.2 定时器的工作方式 (14)2.5 定时器相关的程序 (15)第三章 1602 (20)3.1 1602LCD的主要技术参数 (20)3.2 1602LCD的引脚 (20)3.3 1602LCD的指令 (21)3.4 1602LCD的操作时序 (22)3.5 1602LCD的RAM地址映射 (23)3.6 1602液晶显示器的相关程序 (25)3.71602LCD的封装 (26)第四章 DS18B20 (27)4.1 温度计算 (27)4.2 DS18B20的工作过程 (27)4.3 DS18B20的工作时序 (28)4.3.1 初始化 (28)4.3.2 写时间隙 (28)4.3.3 读时间隙 (29)4.5 DS18B20的多路测量 (29)4.6 DS18B20的相关程序 (29)第五章总结 (32)5.1 遇到的问题 (32)5.2 感言 (33)参考文献 (34)附录1 原理图 (35)附录2 流程图 (36)附录3 翻译(中) (37)附录4 翻译(英) (40)附录5 程序 (44)前言随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。

基于LCD的电子时钟系统嵌入式课程设计

基于LCD的电子时钟系统嵌入式课程设计

目录一、需求分析 (2)二、概要设计 (2)2.1 开发环境 (2)2.2 系统结构 (3)三、详细设计 (4)3.1 ARM Linux的建立 (4)3.1.1 建立交叉编译环境 (4)3.1.2 生成并配置根文件系统 (5)3.2 BootLoader的移植 (7)3.3 基于S3CC400的嵌入式Web服务器Boa移植 (7)3.3.1 配置开发板网络 (7)四.编码 (8)五.调试分析 (11)六.测试结果及运行效果 (12)6.1 Boa 服务器和 cgic 库移植 (12)6.2 Web静态网页制作 (13)6.3 CGI程序login.c程序。

(13)七.系统开发所用到的技术 (16)一、需求分析随着计算机迅猛发展,WWW 的技术也有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为Internet 上最为流行的信息传播方式。

现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。

可以说,Web 为 Internet 的普及迈出了开创性的-步,是近年来 Internet 上取得的最激动人心的成就。

在嵌入式Linux系统中,常用的Web Server有Boa、httpd、thttpd和mini-httpd等。

其中Boa是-个运行在类Unix系统中的小型Web Server,适合嵌入式环境。

在Boa中若两个用户同时访问,则其中的-个必须等待,它产生独立进程来处理CGI(通用网关接口)程序,因此占用较少的资源,其体系结构如图1所示。

Boa的优点在于其快速可靠性。

它与其它服务器的区别:没有为CGI程序设置REMOTE_HOST环境变量;没有Server-Side Include(SSI)项,要产生动态网页只能通过CGI:没有设置进入控制,而是根据Linux的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。

课程设计(论文)基于lcd液晶显示的多功能数字钟的设计(附pcb图及电路原理图)

课程设计(论文)基于lcd液晶显示的多功能数字钟的设计(附pcb图及电路原理图)

目录1前言 (1)2总体方案设计 (2)2.1设计内容 (2)2.2设计内容 (2)2.3方案论证 (3)2.4方案选择 (4)3单元模块设计 (5)3.1各单元模块功能介绍及电路设计 (5)3.1.1 温度采集电路 (5)3.1.2 DS1302时钟电路 (5)3.1.3 串行通信接口电路 (6)3.1.4 USB连接电路 (6)3.1.5 按键电路 (7)3.1.6液晶显示显示电路 (7)3.2特殊器件介绍 (7)3.2.1 STC89C52单片机芯片 (7)3.2.2 DS1302介绍 (8)3.2.3 温度传感器DS18B20 (9)3.2.4 液晶显示LCD1602 (9)4软件设计 (10)4.1软件选择 (10)4.2软件设计流程 (10)4.2.1 温度采集流程 (11)4.2.2 日期数据处理流程 (12)5系统的仿真及调试 (13)5.1系统仿真 (13)5.2硬件调试 (13)5.3软件调试 (14)6结论 (16)7总结与体会 (17)7.1设计小结 (17)7.2设计收获及改进 (17)7.3致谢 (17)8参考文献 (18)附录: (19)1前言单片机是指一个集成在一块芯片上的完整计算机系统。

尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。

同时集成诸如通讯接口、定时器,实时时钟等外围设备。

而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

单片机也被称为微控制器(Microcontroller),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。

STC单片机完全兼容51单片机,并有其独到之处,其抗干扰性强,加密性强,超低功耗,可以远程升级,内部有专用复位电路,价格也较便宜,由于这些特点使得 STC 系列单片机的应用日趋广泛。

《嵌入式系统》课程设计电子时钟系统设计

《嵌入式系统》课程设计电子时钟系统设计

《嵌入式系统》课程设计说明书电子时钟系统设计学院:学生姓名:指导教师:职称专业:班级:学号:完成时间:湖南工学院嵌入式系统课程设计课题任务书指导教师学生姓名罗朗课题名称电子时钟系统设计内容及任务一、目标在GEC210开发板上设计一个基于QT的电子时钟系统来显示当前的系统时间。

二、任务根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识,进行电子时钟系统原理设计、硬件系统设计、软件系统设计、创新设计,提高理论知识工程应用能力、系统调试能力、分析问题与解决问题的能力。

主要内容包括:1.嵌入式交叉开发环境搭建。

2.Linux操作系统的移植。

3.根据需求确定外围模块设计并完成相应驱动开发。

4.应用程序原理及框架设计。

5.Linux下应用程序编写及移植。

6.系统总体功能调试。

7.编写设计说明书。

三、要求1.本系统显示结果示例如下:摘要本次课设是基于ARM嵌入式开发板设计一个具有模拟表盘与数字显示的电子时钟,与传统的机械钟相比,它具有走时准确、显示直观,无机械转动装置等优点。

该电子时钟系统首先是在QT上通过API函数和C语言进行设计,然后将嵌入式Linux程序下载到开发板上,这样就能够实现简单的计时,并且时间与系统时间一致。

关键词:ARM嵌入式电子时钟 QT 计时目录1 绪论...................................................... 错误!未定义书签。

1.1 电子时钟的简介............................. 错误!未定义书签。

1.2 设计背景................................... 错误!未定义书签。

1.3 设计目的及意义............................. 错误!未定义书签。

2 嵌入式Linux和QT系统............................ 错误!未定义书签。

《嵌入式技术应用开发项目教程》项目8 按键设置液晶显示电子钟设计

《嵌入式技术应用开发项目教程》项目8 按键设置液晶显示电子钟设计
移植工程模板
01
任务21 按键设置液晶显示电子钟设计
任务21 按键设置液晶显示电子钟设计
01
编写按键设备文件
02
任务21 按键设置液晶显示电子钟设计
01
编写按键设备文件
02
添加设备驱动文件到HARDWARE组
任务21 按键设置液晶显示电子钟设计
工程编译
03
1.把Project Targets栏下的LCD12864不用修改
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
LCD12864点阵型液晶显示模块
任务20 液晶显示电子钟设计
1. 培养严谨细致的工程思维和能力2. 弘扬工匠精神、科学精神、爱国情怀
按键设置液晶显示电子钟设计
LCD12864点阵型液晶显示模块
按键设置液晶显示电子钟设计
LCD12864点阵型液晶显示模块
按键设置液晶显示电子钟设计
LCD12864点阵型液晶显示模块
LCD12864是一种图形点阵LCD。它主要由行驱动器/列驱动器和128×64全点阵液晶显示器组成。可完成图形显示,可显示8×4个汉字(16×16点阵)或16×4个ASCII码(8×16点阵)。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点 阵的汉字,也可完成图形显示,低电压、低功耗是其又一显著特点。目前,我们常用的LCD12864液晶模块内部常采用ST7920控制/驱动芯片驱动点阵LCD。本次实验将采用串行方式来控制LCD进行显示。

基于LCD1602电子时钟课程设计报告

基于LCD1602电子时钟课程设计报告

信息与电子工程学院课程设计报告课程单片机技术应用设计题目基于LCD1602电子时钟专业班级姓名学号分工成绩成员指导老师答辩日期目录一、课程设计概述 (3)1.1课程设计背景 (3)1.2课程设计内容 (3)1.3课程设计技术指标 (3)二、方案的选择及确定 (3)2.1单片机芯片的选择 (3)2.2显示模块的选择 (4)2.3实时时间计算模块的选择 (4)2.4实时环境温度采集模块选择 (4)2.5电路设计最终方案决定 (5)三、系统硬件设计 (5)3.1主控模块 (5)3.2LCD显示模块设计 (6)3.3时间计算模块设计 (6)3.4实时环境温度检测模块 (7)3.5报警模块 (7)3.6设置模块 (8)3.7电源接口部分 (8)四、系统软件设计 (8)4.1主函数 (8)4.2设置模块 (9)4.31602液晶屏 (10)4.4软件原理图 (11)五、系统调试过程 (11)5.1软件调试 (11)5.2硬件调试 (12)六、结论 (12)七、遇到的问题及解决方法和总结 (12)7.1硬件方面 (12)7.2软件方面 (13)7.3总结 (13)八、参考文献 (13)九、附录 (14)一、课程设计概述1.1 课程设计背景随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。

单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。

因为它有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。

而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。

1.2 课程设计内容利用单片机、时钟芯片DS1302、温度传感器DS18B20、1602液晶屏等实现日期、时间、温度的显示,即是一个电子时钟。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录前言 (1)第一章课题目标及总体方案 (2)第二章系统设计 (3)1、系统结构原理 (3)2、硬件组成与设计 (4)3、软件组成与设计 (4)第三章实验结果 (5)心得体会 (5)参考文献 (5)附录 (6)前言嵌入式系统反映了当代最新的技术水平。

嵌入式系统不仅和一般的PC机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。

嵌入式系统一般功能单一,简单而且兼容性方面要求不高,但是在大小和成本方面限制较多。

在本实验中以arm7处理器S3C44B0X和液晶显示屏LRH9J515XA STN/BW为基础,设计实现了带农历的实时时钟电路。

当有外部中断产生时,串口与S3C44B0X进行通信,实现更改时钟时间,且应用公历转农历的算法,实现将农历时间实时显示在LCD上。

另外还具有闹铃、星期提示功能,基本上能够满足人们的需求。

关键字:arm7 S3C44B0X LCD 农历串口第一章课题目标及总体方案一、目的●了解实时时钟的硬件控制原理及设计方法。

●掌握S3C44B0X处理器的RTC模块程序设计方法。

●初步掌握液晶显示屏的使用及其电路设计方法。

●掌握S3C44B0X处理器的LCD控制器的使用。

●通过实验掌握液晶显示文本和图形的方法以及程序设计的方法。

二、设备1. 硬件:Embest EDUKIT —Ⅱ/Ⅲ实验平台,Embest ARM标准/增强型仿真器套件,PC机。

2. 软件:Embest IDE Pro 2004集成开发环境,Windows98/2000/NT/XP操作系统。

三、内容通过运用S3C44B0X的RTC模块、串口模块和LCD模块,编写应用程序,在LCD上实时显示当前时间及农历时间。

四、研究方法1. 将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务。

2. 连接PC和Embest EDUKIT —Ⅱ/Ⅲ实验箱,进行整个实验环境搭建。

第二章系统设计1、系统结构原理图本实验电子时钟的设计主要是将RTC模块中的时间传到LCD上进行实时显示;此外,通过串口与PC机通信,设置RTC模块中当前时间及报警时间,并把当前公历时间转换为农历时间一起在LCD上进行显示,其结构框图如右图所示:PC 串口RTC模块LCD显示2、硬件组成与设计2.1 实时时钟RTC模块S3C44B0X实时时钟单元是处理器集成的片内外设,由开发板上的后备电池供电,可以在系统电源关闭的情况下运行,RTC发送8位BCD码数据到CPU。

传送的数据包括秒、分、时、星期、日期、月份和年份。

RTC单元时钟源频率由外部32.768 kHz晶振提供,可以实现闹钟(报警)功能及时间片中断、置0计数功能。

2.2 串口通信模块S3C44B0X串行通信单元UART提供2个独立的异步串行通信口,皆可工作于中断和DMA模式。

最高波特率达115200b/s。

每个UART单元包含一个16字节FIFO,用于数据接收和发送。

此外,每个UART模块还包含可编程波特率、红外发送/接收、1个或2个停止位、5/6/7/8位数据宽度和奇偶校验。

通过初始化好串口,与RTC进行通信,来设置RTC当前时间及报警时间。

2.3 液晶显示LCD模块S3C44B0X处理器集成了LCD控制器,支持4位单扫描、4位双扫描和8位单扫描工作方式。

处理器使用内部RAM区作为显示缓存,并支持屏幕水平和垂直滚动显示。

数据的传送采用DMA(直接内存访问)方式,以达到最小延迟。

根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程,以支持多种类型的显示屏。

LCD控制器主要液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。

3、软件组成与设计3.1 读写RTC模块S3C44B0X内部集成了RTC模块,通过读取RTC模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON 和BCDYEAR的值得到当前的相应的时间值。

还可以往这些寄存器里写值以设置当前的时间值。

3.2 串口通信UART模块采用S3C44B0X的UART模块,利用PC机进行当前时钟时间和时钟报警时间的设置。

其通信协议如下:首先S3C44B0X发送字符串命令询问是否要设置报警时间值,若回复'y'或'Y',则从PC机上的键盘上发送报警时间值传递给报警寄存器ALMYEAR、ALMMON、ALMDAY、ALMHOUR、ALMMIN、ALMSEC;然后,S3C44B0X发送命令询问是否要重新设置当着时间,若回复'y'或'Y',则发送新的时间值到BCDYEAR、BCDMON、BCDDAY、BCDHOUR、BCDMIN、BCDSEC,从而实现对报警时间及当前时钟时间的设置。

程序流程图如下:3.3 农历显示设计S3C44B0X中RTC模块中没有提供农历的时间信息,因此采用公历转农历的方式来显示农历信息。

公历转农历的算法是:首先建立公历年对应的农历数据,将其存入数组中,然后查找数组,实现公历到农历的转换并在LCD上显示。

公历转农历算法框图如下所示:3.4 液晶屏LCD显示设计使用液晶屏显示最基本的是像素控制数据的使用。

像素控制数据的存放与传送形式决定了显示的效果。

图形显示可以直接使用像素控制函数实现。

把像素控制数据按一定形式存入即可实现字符显示。

本项目通过调用字符显示函数,将读取的实时时钟显示在LCD屏幕上。

第三章实验结果心得体会通过本次的实验操作,不仅使我深刻体会打了嵌入式系统的广阔的应用前景,而且也是我对课本知识的一次较深的回顾与体悟。

温故而知新,只有通过自己动手操作才能掌握真正的技术。

在有限的课时内我们掌握的知识也是相当有限的,我们对嵌入式系统的硬件和软件的基本原理,特点有了更深的认识。

这些知识对于本次实验是不够的。

我自己查找了许多资料,同时也参考了过去的课题,取长补短。

经过不断的努力,在老师和同学们的帮助之下,我顺利的完成了课程设计,对嵌入式系统的硬件/软件有了更深的了解,也深入掌握了嵌入式系统设计的基本方法,达到了预期的目的。

不仅这一次,以后我要更加努力的学习嵌入式系统,以期能够有更大的进步。

参考文献1. 林志琦ARM微控制器与液晶屏接口的研究[J]. 长春大学学报,2010,20(2):71-74.2. 耿辉.S3C44B0X数据手册,2006.3. 田泽ARM7嵌入式开发实验与实践北京:北京航空航天大学出版社20104. 郑丽丽, 谢磊, 李清宝. 一种公历到农历日期转换算法的实现[ J]. 微计算机信息, 2005, 21( 2): 74- 76.5. 石熊基于ARM9的带农历实时时钟LCD显示设计[ D] 陕西西安电子科技大学20116.EL-ARM-830 实验系统的资源介绍,2000.附录1.电路原理图S3C44B0X处理器的LCD控制器框图2.主要程序代码/******************************************************************** ************************ File:lcd.c* Author: embest* Desc:LCD control and display functions* History:********************************************************************* ************************/#include "lcd.h"#include "bmp.h"#include "44b.h"#define XWIDTH 6#define LCD_STN256_COLOR#define ASCII6x8UINT32T g_unLcdActiveBuffer[LCD_YSIZE][LCD_XSIZE/4]; volatile extern int data[]={0x2012,0x12,0x17,0x2,0x12,0x30,0x00}; volatile extern char *f_szdate[8] = {"","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Satu rday"};extern UINT8T g_ucAscii8x16[];extern const UINT8T g_ucHZK16[];void lcd_init(void) //LCD初始化函数{rDITHMODE = 0x12210;rDP1_2 = 0xa5a5;rDP4_7 = 0xba5da65;rDP3_5 = 0xa5a5f;rDP2_3 = 0xd6b;rDP5_7 = 0xeb7b5ed;rDP3_4 = 0x7dbe;rDP4_5 = 0x7ebdf;rDP6_7 = 0x7fdfbfe;rLCDCON1 =(0x0)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_C OLOR<<12);rLCDCON2 = (LINEVAL)|(HOZVAL_COLOR<<10)|(10<<21);rLCDCON3 = 0;rLCDSADDR1 = (0x3<<27) | ( ((unsignedint)g_unLcdActiveBuffer>>22)<<21 ) | M5D((unsignedint)g_unLcdActiveBuffer>>1);rLCDSADDR2 = M5D((((unsignedint)g_unLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE))>>1)) | (MVAL<<21);rLCDSADDR3 = (LCD_XSIZE/2) |( ((SCR_XSIZE-LCD_XSIZE)/2)<<9 );rREDLUT =0xfdb96420; // 1111 1101 1011 1001 0110 0100 0010 0000rGREENLUT=0xfdb96420; // 1111 1101 1011 1001 0110 0100 0010 0000rBLUELUT =0xfb40; // 1111 1011 0100 0000rLCDCON1=(0x1)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<1 0)|(CLKVAL_COLOR<<12);rPDATE=rPDATE&0x0e;lcd_clr();}void lcd_clr(void){UINT32T i;UINT32T *pDisp = (UINT32T*)g_unLcdActiveBuffer;for (i = 0; i < (SCR_XSIZE * SCR_YSIZE / 4); i++){*pDisp++ = ALLWHITE;}}void lcd_disp_ascii8x16(UINT16T x0, UINT16T y0, UINT8T ForeColor, UINT8T * s) //字符串显示函数{UINT16T i,j,k,x,y,xx;UINT8T qm;UINT32T ulOffset;INT8T ywbuf[16],temp[2];for( i = 0; i < strlen((const char *)s); i++ ){if( (UINT8T)*(s+i) >= 161 ){temp[0] = *(s + i);temp[1] = '\0';return;}else{qm = *(s+i);ulOffset = (UINT32T)(qm) * 16; //Here to be changed tomorrowfor( j = 0; j < 16; j ++ ){ywbuf[j] = g_ucAscii8x16[ulOffset + j];}for( y = 0; y < 16; y++ ){for( x = 0; x < 8; x++ ){k = x % 8;if( ywbuf[y] & (0x80 >> k) ){xx = x0 + x + i*8;LCD_PutPixel(xx, y + y0, (UINT8T)ForeColor);}}}}}}void lcd_disp_hz16(UINT16T x0, UINT16T y0, UINT8T ForeColor, UINT8T *s) //汉字显示函数{UINT16T i,j,k,x,y,xx;UINT8T qm,wm;UINT32T ulOffset;INT8T hzbuf[32],temp[2];for( i = 0; i < strlen((const char*)s); i++ ){if( ((UINT8T)(*(s+i))) < 161 ){temp[0] = *(s+i);temp[1] = '\0';break;}else{qm = *(s+i) - 161;wm = *(s + i + 1) - 161;ulOffset = (UINT32T)(qm * 94 + wm) * 32;for( j = 0; j < 32; j ++ ){hzbuf[j] = g_ucHZK16[ulOffset + j];}for( y = 0; y < 16; y++ ){for( x = 0; x < 16; x++ ){k = x % 8;if( hzbuf[y * 2 + x / 8] & (0x80 >> k) ){xx = x0 + x + i * 8;LCD_PutPixel( xx, y + y0, (UINT8T)ForeColor);}}}i++;}}}void rtc_init(void) //时钟模块RTC初始化函数{rRTCCON = 0x01; // R/W enable, 1/32768, Normal(merge), No reset// set the default data for RTCrBCDYEAR = data[0];rBCDMON = data[1];rBCDDAY = data[2]; // SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7rBCDDATE = data[3];rBCDHOUR = data[4];rBCDMIN = data[5];rBCDSEC = data[6];// set the test data for RTCrALMYEAR = 0x12;rALMMON = 0x12;rALMDAY = 0x17;rALMHOUR = 0x12;rALMMIN = 0x32 ;rALMSEC = 0x00+1;rRTCCON = 0x0; // R/W disable, 1/32768, Normal(merge), No reset}void rtc_read(void) //读当前时间函数{while(1){// read the data from RTC registersif(rBCDYEAR == 0x99)data[0] = 0x1999;elsedata[0] = 0x2000 + rBCDYEAR;data[1] = rBCDMON;data[2] = rBCDDAY;data[3] = rBCDDATE;data[4] = rBCDHOUR;data[5] = rBCDMIN;data[6] = rBCDSEC;// display the default timeuart_printf("\r Set Default Timeat %02x-%02x-%02x %s",data[0],data[1],data[2],f_szdate[data[3]]);uart_printf(" %02x:%02x:%02x\n\r",data[4],data[5],data[6]);}}int BCDToD(int a) //将BCD码转换为十进制数据{int b=0;b+=((a>>12)*1000+((a>>8)&0x0f)*100+((a&0xf0)>>4)*10+(a&0x0f) );return b;}void rtc_tick_test(void) //设置RTC时间片中断{// enable rtc_tick interruptrRTCALM = 0x7f;pISR_RTC = (unsigned int) rtc_int;rINTMSK = ~(BIT_GLOBAL|BIT_RTC);pISR_TICK = (unsigned)rtc_tick;rINTMSK = ~(BIT_GLOBAL|BIT_TICK);rTICINT = 127+(1<<7); // START}void rtc_tick(void) //RTC时间片中断函数{rI_ISPC = BIT_TICK;rtc_read();}void rtc_int(void) //RTC报警中断函数{UINT8T i;rI_ISPC = BIT_RTC;for(i=0;i<25;i++){beep(1);delay(100);beep(0);}}/******************************************************************** ************************** File:main.c* Author: embest* Desc: c main entry* History:********************************************************************* ************************/#include "lcd.h"#include "bmp.h"extern void lcd_test();void Main(void);void lcd_test(void);volatile int data[];volatile char *f_szdate[];typedef struct _hjz{ //带有年、月、日的结构体int year;int month;int day;int reserved;} hjz;unsigned int lunar200y[199] = { //与阳历对应的农历时间信息0x04AE53,0x0A5748,0x5526BD,0x0D2650,0x0D9544,0x46AAB9,0x056A4D,0x09AD42,0x24AEB6,0x04AE4A,/*1901-1910*/0x6A4DBE,0x0A4D52,0x0D2546,0x5D52BA,0x0B544E,0x0D6A43,0x296 D37,0x095B4B,0x749BC1,0x049754,/*1911-1920*/0x0A4B48,0x5B25BC,0x06A550,0x06D445,0x4ADAB8,0x02B64D,0x0957 42,0x2497B7,0x04974A,0x664B3E,/*1921-1930*/0x0D4A51,0x0EA546,0x56D4BA,0x05AD4E,0x02B644,0x393738,0x092E4 B,0x7C96BF,0x0C9553,0x0D4A48,/*1931-1940*/0x6DA53B,0x0B554F,0x056A45,0x4AADB9,0x025D4D,0x092D42,0x2C95 B6,0x0A954A,0x7B4ABD,0x06CA51,/*1941-1950*/0x0B5546,0x555ABB,0x04DA4E,0x0A5B43,0x352BB8,0x052B4C,0x8A953 F,0x0E9552,0x06AA48,0x6AD53C,/*1951-1960*/0x0AB54F,0x04B645,0x4A5739,0x0A574D,0x052642,0x3E9335,0x0D9549, 0x75AABE,0x056A51,0x096D46,/*1961-1970*/0x54AEBB,0x04AD4F,0x0A4D43,0x4D26B7,0x0D254B,0x8D52BF,0x0B5 452,0x0B6A47,0x696D3C,0x095B50,/*1971-1980*/0x049B45,0x4A4BB9,0x0A4B4D,0xAB25C2,0x06A554,0x06D449,0x6ADA 3D,0x0AB651,0x093746,0x5497BB,/*1981-1990*/0x04974F,0x064B44,0x36A537,0x0EA54A,0x86B2BF,0x05AC53,0x0AB64 7,0x5936BC,0x092E50,0x0C9645,/*1991-2000*/0x4D4AB8,0x0D4A4C,0x0DA541,0x25AAB6,0x056A49,0x7AADBD,0x02 5D52,0x092D47,0x5C95BA,0x0A954E,/*2001-2010*/0x0B4A43,0x4B5537,0x0AD54A,0x955ABF,0x04BA53,0x0A5B48,0x652B BC,0x052B50,0x0A9345,0x474AB9,/*2011-2020*/0x06AA4C,0x0AD541,0x24DAB6,0x04B64A,0x69573D,0x0A4E51,0x0D26 46,0x5E933A,0x0D534D,0x05AA43,/*2021-2030*/0x36B537,0x096D4B,0xB4AEBF,0x04AD53,0x0A4D48,0x6D25BC,0x0D2 54F,0x0D5244,0x5DAA38,0x0B5A4C,/*2031-2040*/0x056D41,0x24ADB6,0x049B4A,0x7A4BBE,0x0A4B51,0x0AA546,0x5B52 BA,0x06D24E,0x0ADA42,0x355B37,/*2041-2050*/0x09374B,0x8497C1,0x049753,0x064B48,0x66A53C,0x0EA54F,0x06B244,0 x4AB638,0x0AAE4C,0x092E42,/*2051-2060*/0x3C9735,0x0C9649,0x7D4ABD,0x0D4A51,0x0DA545,0x55AABA,0x056 A4E,0x0A6D43,0x452EB7,0x052D4B,/*2061-2070*/0x8A95BF,0x0A9553,0x0B4A47,0x6B553B,0x0AD54F,0x055A45,0x4A5D3 8,0x0A5B4C,0x052B42,0x3A93B6,/*2071-2080*/0x069349,0x7729BD,0x06AA51,0x0AD546,0x54DABA,0x04B64E,0x0A57 43,0x452738,0x0D264A,0x8E933E,/*2081-2090*/0x0D5252,0x0DAA47,0x66B53B,0x056D4F,0x04AE45,0x4A4EB9,0x0A4 D4C,0x0D1541,0x2D92B5 /*2091-2099*/};int monthTotal[13] = {0,31,59,90,120,151,181,212,243,273,304,334,365}; hjz toLunar(hjz solar){ //将阳历转换为农历函数int year = solar.year,month = solar.month,day = solar.day;int bySpring,bySolar,daysPerMonth;int index,flag;hjz lunar;if( ((lunar200y[year-1901] & 0x0060) >> 5) == 1)bySpring = (lunar200y[year-1901] & 0x001F) - 1;elsebySpring = (lunar200y[year-1901] & 0x001F) - 1 + 31;bySolar = monthTotal[month-1] + day - 1;if( (!(year % 4)) && (month > 2))bySolar++;if (bySolar >= bySpring) {//阳历日在春节后(含春节那天)bySolar -= bySpring;month = 1;index = 1;flag = 0;if( ( lunar200y[year - 1901] & (0x80000 >> (index-1)) ) ==0)daysPerMonth = 29;elsedaysPerMonth = 30;while(bySolar >= daysPerMonth) {bySolar -= daysPerMonth;index++;if(month == ((lunar200y[year - 1901] & 0xF00000) >> 20) ) {flag = ~flag;if(flag == 0)month++;}elsemonth++;if( ( lunar200y[year - 1901] & (0x80000 >> (index-1)) ) ==0)daysPerMonth=29;elsedaysPerMonth=30;}day = bySolar + 1;}else {//阳历日在春节前bySpring -= bySolar;year--;month = 12;if ( ((lunar200y[year - 1901] & 0xF00000) >> 20) == 0)index = 12;elseindex = 13;flag = 0;if( ( lunar200y[year - 1901] & (0x80000 >> (index-1)) ) ==0)daysPerMonth = 29;elsedaysPerMonth = 30;while(bySpring > daysPerMonth) {bySpring -= daysPerMonth;index--;if(flag == 0)month--;if(month == ((lunar200y[year - 1901] & 0xF00000) >> 20))flag = ~flag;if( ( lunar200y[year - 1901] & (0x80000 >> (index-1)) )==0)daysPerMonth = 29;elsedaysPerMonth = 30;}day = daysPerMonth - bySpring + 1;}lunar.day = day;lunar.month = month;lunar.year = year;if(month == ((lunar200y[year - 1901] & 0xF00000) >> 20)) lunar.reserved = 1;elselunar.reserved = 0;return lunar;}void Main(void){sys_init(); /* Initial 44B0X's Interrupt,Port and UART */ uart_printf("\n\rLCD display Test Example(please look at LCD screen)\n");lcd_show();while(1);}void lcd_show(void){lcd_init();rtc_init();while (1){lcd_clr();rtc_tick_test();chardate[]={BCDToD(data[0])/1000+48,BCDToD(data[0])/100%10+48,BCDToD(data[0])/10%10+48,BCDToD(data[0])%10+48,'-', BCDToD(data[1])/10%10+48,BCDToD(data[1])%10+48,'-',BCDToD(data[2])/10%10+48,BCDToD(data[2])%10+48,' ','\0'};chartime[]={BCDToD(data[4])/10%10+48,BCDToD(data[4])%10+48,':', BCDToD(data[5])/10%10+48,BCDToD(data[5])%10+48,':',BCDToD(data[6])/10%10+48,BCDToD(data[6])%10+48,'\0'};hjz solar={BCDToD(data[0]),BCDToD(data[1]),BCDToD(data[2])};hjz lunar=toLunar(solar);char Lunardate[]={(lunar.year)/1000+48,(lunar.year)/100%10+48,(lunar.year)/10%10+48,(lunar.year)%10+48,'-',(lunar.month)/10%10+48,(lunar.month)%10+48,'-',(lunar.day)/10%10+48,(lunar.day)%10+48,' ','\0'};lcd_disp_hz16(20,10,BLUE,"LCD电子时钟实验");lcd_disp_hz16(90,35,BLUE,"北京时间:");//lcd_disp_ascii8x16(10,24,GREEN-55,"ShenZhen Embest Info&Tech Co.,LTD");lcd_disp_ascii8x16(90,60,BLUE,date);lcd_disp_ascii8x16(180,60,BLUE,f_szdate[data[3]]);lcd_disp_ascii8x16(90,85,BLUE,time);lcd_disp_hz16(90,110,BLUE,"农历");lcd_disp_ascii8x16(90,135,BLUE,Lunardate);LCD_D_ON;delay(3000);}}31。

相关文档
最新文档