目前基于单片机控制技术的微电子技术得到空前的发展。广泛应用于各种控制领域、智能领域、仿真领域。控制领域里的定时计时控制、温度控制,在生产、生活等领域已经得到了广泛的应用。液晶显示模块在各种测量仪器、测量装置、显示仪表等日用电子产品中的应用越来越广泛,并且对器件的测量精度和显示精度的要求也越来越高,尤其是对时间的测量不但要求准确,而且需要读取数值更直观更方便。本文以AT89S52单片机为主控芯片,以DALLAS公司推出的实时时钟芯片DS1302为时钟控制芯片,以1602液晶显示模块为显示器,进行电子万年历系统的设计。本系统可同屏显示年、月、日、星期、温度以及闹钟设置等功能。
1 系统总体设计
本系统以STC89S52单片机为核心,结合时钟芯片DSl302,温度采集芯片DS18B20等外围器件,实现了万年历等一系列功能,并通过液晶屏和按键控制完成人机交互的功能。其系统总体设计框图如图1所示。
[page]
2 系统硬件设计
2.1 单片机最小系统
本系统设计中使用的单片机为AT89S52,其内部是8位的CPU,8 KB片内ROM以及256 B的可使用的片内RAM,32根并行I/O接口,两个16位的定时/计数器,五个中断源,两个中断优先级的内部结构。单片机的最小系统如图2所示,单片机的复位电路和晶振电路如图3所示。
2.2 时钟电路
其次还用到美国DALLAS公司推出的高性能、低功耗、带RAM的实时时钟电路DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302的驱动电路如图4所示。
2.3 温度传感器驱动电路
系统的温度传感器采用DS18B20单线数字式温度传感器。该温度传感器适用电压为3~5 V(与单片机5 V电源供电可以适用同一电源),可测温度范围为-55~+125 ℃(完全可以满足本系统),而且它只需单总线进行信息交互,即只需占用单片机的一个I/O口,而且基本不需要外部原件。温度传感器电路原理图如图5所示。
2.4 液晶显示驱动电路
本系统里用1602LCD显示模块来显示万年历的年月日、星期及时间信息,该液晶模块5 V电压驱动,带有背光,对比度可调;内建复位电路,有80 B显示数据存储器DDRAM,有160个5×7点阵的字型的字符发生器CGROM,8个可由用户自定义的5×7点阵的字型的字符发生器CGRAM;与外部CPU接口采用并行或者串行两种控制方式。
[page]
单片机控制液晶显示模块的接口方式主要有两种:直接访问方式和间接访问方式。直接访问方式是把液晶显示模块作为存储器或I/O设备直接连接到单片机总线上;而间接访问方式是把液晶显示模块作为终端与单片机的并行接口连接,而单片机通过对该并行接口的操作实现对液晶显示。一般在进行液晶显示模块的控制时,采用间接访问方式。如图6所示为液晶屏驱动电路。
3 系统软件设计
本系统选用适时性强与透明度高的C语言作为编程语言,系统软件的开发全部采用Keil μVision 3进行。系统程序的开发,采用了流行的模块化设计方法。在程序设计中,可根据系统功能,将整个软件系统划分为若干个功能相对独立易于解决的模块,每个模块是一个结构完整、相对独立的程序段,能完成某一规定的任务,实现某个具体的功能。
系统软件的设计,主要由如下程序模块组成:DS1302时钟控制,DS18B20温度采集、1602液晶显示驱动等。整个系统的主程序如图7所示。
时间调整:在正常走时状态下,按Set键进入时间调整界面,可以依次调节年、月、日、星期、时、分等信息,按Out键退出当前的调整状态,恢复正常走时。
闹钟调整:在正常走时状态下,连按Set键两次进入闹钟设置界面,可以依次调节闹钟小时、分、闹钟开启和闹钟关闭。当设置闹钟时间后,按Set键即可退出闹钟设定界面,闹钟设置完成。若不想使用闹钟,就按Out键则闹钟被关闭。
4 结语
本系统利用AT89S52单片机进行可编程控制,结合外围温度传感器、液晶屏等,通过DS1302的使用可以降低编写程序的复杂程度。Keil C编译软件实现单片机控制液晶显示模块的万年历设计,可以达到比较好的没计效果。系统硬件电路采用成熟的电路设计,元件选用成本较低的器件,电路稳定,扩干扰力强,性价比较高。软件开发用C语言,采用模块式结构,系统功能易于扩展。
关键字:电子万年历 单片机编程 温度传感器 液晶显示
引用地址:
基于AT89S52单片机的电子万年历系统设计
推荐阅读最新更新时间:2024-03-16 13:09
武林教你学PIC32(十五)液晶显示实时时钟
春节过后,很多内容都忘记了,好在以前整理了一些子函数,子模块。今天就用子函数模块化编写,液晶LCD1602实时显示时钟。 用到这样几个文件: delay.c采用定时器延时函数,里面有延时毫秒和微秒的函数。 lcd1602.c液晶显示函数 rtc.c实时时钟函数 采用模块化编程好处就是简单方便,便于移植,主函数内容不会过于庞大,也方便阅读。 main.c的内容为: #include lcd1602.h #include delay.h #include rtc.h #include led.h int main(void) { LED_INIT(); //LED初始化 initLCD(); //初始化LCD1602 putsL
[单片机]
如何区分液晶显示器和液晶电视 ?
电脑发烧友们都知道,液晶显示器比之纯平显示器虽然具有亮度高、无辐射的优点,但是在玩电脑游戏的时候会出现图像移动速度慢的现象、高速图像还会出现“拖尾”。相比之下,液晶电视则不会出现类似现象。 能看电视的液晶显示器与液晶电视的区别? 一般,电视信号由声音、亮度和色彩组成。这三组号码在电视内部被处理后,我们才能欣赏到逼真的画面和声音。即使是采用性能相近的液晶面板,也会在各自的信号优化上有所不同,最明显的地方就是液晶电视会为成像方面投入较大的优化方案,因为大家都有这样的感觉,在液晶显示器上看电视,因为面积较小,我们要在不足一米的距离甚至是半米不到的距离去看,那样的话图像很微小的不清晰都会造成视觉上感觉出的“图像模糊”,所以要获得好的成
[嵌入式]
TSic系列高精度温度传感器的应用
引言 TSic是IST(Innovative Sensor Technology)公司单总线温度传感器IC的注册商标。TSic产品系列由集成芯片和已校准的温度传感器组成,内部集成了用于模拟或数字信号输出的信号转换器。TSic系列的测量精度为±0.5~±0.07℃,是目前精度极高的数字温度传感器IC,优于DIN Y(1/3 DIN B)铂传感器的精度。信号分辨率为0.1~0.004℃。TSic不仅有出色的精度,而且具有长期稳定性。IST公司还提供TSic的精度范嗣偏移定制校准服务。 TSic系列有标准0~1 V模拟电压输出、比例10%~90%V+电压输出和11位数字信号输出3种方式,用户可根据自己的需求选择适用的型号。
[嵌入式]
纳芯微借助模拟输出温度传感器,实现主流输出接口全覆盖
信号链芯片及其解决方案提供商苏州纳芯微电子股份有限公司(以下简称“纳芯微”)借助NST20/235/86/60系列精密 CMOS 集成电路线性模拟输出温度传感器,已实现对温度传感器主流输出接口的全覆盖。NST20/235/86/60系列产品精度高、功耗低、驱动能力强、响应快,可直接连接到模数转换器的输入端,且极具成本优势,是无源热敏电阻的极佳替代方案。NST20/235/86/60系列产品帮助纳芯微温度传感器产品形成了对包括脉冲计数、单总线、I2C及模拟电压等接口的全覆盖,助力为客户提供丰富的产品选型。 在通信设备、电源管理、安防监控、数据中心与智能制造等应用中,环境温度监测非常重要,这些应用通过温度传感器来实现对环境温度的精
[传感器]
STM32的内部温度传感器
1、STM32的内部温度传感器 STM32内部温度传感器与ADC的通道16相连,与ADC配 合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃ 操作流程: 1)、设置ADC相关参数 // ADC1 configuration ----------------------------- ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_Init
[单片机]
集成温度传感器的产品分类
1、模拟集成温度传感器 集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世,它是将温度传感器集成在一个芯片上,可完成温度测量及模拟信号输出功能的功能的专用IC。模拟集成温度的主要特点是功能单一(仅测量温度)测温误差小,价格低,响应速度快,传输距离远,体积小,微功耗,适合远距离测温,不需要进行非线性校准。外围电路简单,它是目前在国内外应用最为普遍的一种集成传感器。典型产品有AD590,AD592,TMP17,LM135等。 2、 模拟集成温度控制器 模拟集成温度控制器主要包括温控开关,可编程温度控制器,典型产品有LM56,AD22105和MAX6509
[模拟电子]
MSP430单片机编程思想总结(一)
1.主函数main()中;只调用初始化函数和执行后台程序; 2.中断服务子程序函数中不要去写“实质性”的代码。只调用事件检测函数,提高程序的可读性 3.WDT 可以作为节拍定时器 在单片机编程中具有重要意义;定时扫描轮询方法可以解决大量CPU阻塞问题 4.事件函数对于理解程序意图非常重要;集中放置“事件检测/处理”而不是跟着满世界“乱蹦的”中断去找事件函数,是十分高效的。 5.全局变量的使用要非常谨慎,全局变量往往是联系各关键函数的纽带,因此集中放置全局变量也是增加程序可读性的常用做法。 6.除了读写寄存器(包括改写IO输出),数学和逻辑运算外,CPU干其他的事例如长延时,死循环类型的查询属于阻塞CPU的行为,应该坚决避免 7.当
[单片机]
我的12864学习笔记_3---控制12864液晶显示曲线
三,液晶显示曲线 要想使用12864实现曲线的显示,必须先实现能够自由控制12864中的任意一个像素点的亮灭,而不能影响到相邻其他点的状态。 因为对12874液晶进行写操作的话,写入数据的最小单位也是一个16进制数,是8位的,能够控制8个像素点,所以,对液晶进行操作时,能够一次控制液晶的最少像素点数为8个。 所以要想控制液晶中的某一个点的亮灭,必须找到一种办法,使这一个点的数据的写入由写入这个16进制数来实现,而基本原则是不能影响其他7位数据的状态。所以要想实现控制某一个像素点,必须先知道目前液晶中在这个像素点左右其他7位的目前数据,然后把该点的数据按位加到这个数据上,而不能影响其他7位数据的状态。 实现知道目前显示的
[单片机]