论文部分内容阅读
摘要:在当代社会繁忙的工作与生活中,时间与我们每一个人都密切相关,每个人都受到时间的影响,为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时能够了解其他与人类密不可分的信息,比如温度、星期、日期等,电子万年歷诞生了,它集时间、日期、星期于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
该电子万年历以单片机STC89C52为主控制核心,通过单片机控制时钟芯片DS12C887实现时间的读取;温度传感器DS18B20实现温度的采集;蜂鸣器实现闹钟的报时;液晶LCD1602实现时间、星期和温度的显示;独立式按键实现时间和闹铃时间的调整。文章主要介绍了该电子万年历的电路设计和软件设计。
关键词:单片机;万年历;DS12C887;DS18B20;液晶LCD1602
中图分类号:F407.63 文献标识码:A 文章编号:
引言:
电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
1方案的总体设计和论证
1.1 方案的总体设计
本设计采用STC89C52单片机作为主控制模块,芯片DS12C887作为时钟模块,DS18B20作为温度采集模块,LCD1602作为液晶显示模块,以及4个独立式按键,所组成的整体的电子万年历电路。
图2-1 系统设计框图
该设计的主要特点是:
①功能多,能实现年、月、日、星期、时、分、秒、温度的直观显示,而且通过按键能够对时间进行调整。
②功耗低,只需要3节串联的干电池对其进行供电,就能驱动它正常工作很长一段时间。
③实现闹钟定时功能,当时钟时间与设置好的闹铃时间一致时,蜂鸣器发出闹铃音,这是按下任意按键,可终止闹铃。
1.2 方案的设计和论证
1.2.1 时钟模块
方案一:不使用芯片,直接使用单片机的定时计数器
利用单片机芯片的定时计数器提供秒信号,实现年、月、日、时、 分、秒的计数。
此方法可以省去一些外围的芯片,可以节约成本,但这种方法实现的时间误差较大,只适用于一些要求不是十分精确,不做长期保留的场合。
1.2.2 按键调整模块
方案一: 矩阵键盘
编程复杂,但是节省IO口。
不过,目前该方面资料很好查找,所以超过6个以上按键推荐用矩阵方式。
综上,选用独立键盘。
采用4个独立式按键,一个I/O口接一个按键。当电路所需要的按键较少时,可以采用独立式按键,控制程序也较简单,分别实现时间调整,加,减,闹钟时间的设置。
图2-3 轻触开关
1.2.3 显示模块
方案一:LCD12864
LCD12864作为液晶显示最大的特点就是能够实现友好的人机界面, 可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM),但12864体积大,引脚多,不利于仿真界面的显示,且本制作不需要显示汉字,故舍弃。
2硬件电路设计
2.1 电子万年历概述及原理图
硬件电路设计主要由STC89C52单片机,DS12C887时钟芯片,DS18B20温度传感器,LCD1602液晶显示屏,蜂鸣器以及4个独立式按键组成。
2.2 主控制模块
单片机最小系主要由晶振电路和复位电路组成。任何复杂的单片机糸统,都是在单片机最小系统这个基础上通过添加模块设计出来的。
2.2.1复位电路
单片机的引脚9是复位端。单片机糸统在刚上电时,或者是发生故障后,都要进行复位。本设计采用的复位电路,是如图3-2所示的按键手动复位电路。单片机复位的条件是:必须使引脚9上持续两个机器周期(即24个振荡周期)以上的高电平。
2.2.2外部访问允许端
单片机的引脚31,决定是访问内部存储器还是外部存储器。
2.3 时钟模块
1 器件特性
由于 DS12C887 能够自动产生世纪、 年、月、日、时、分、秒等时间信息,其内 部又增加了世纪寄存器,从而利用硬件电路 解决子“千年”问题;DS12C887 中自带有锂电 池,外部掉电时,其内部时间信息还能够保 持 10 年之久;对于一天内的时间记录,有12 小时制和 24 小时制两种模式。
图3-3 DS12C887和单片机的硬件连接电路图
2..4 蜂鸣器闹钟模块
图3-11 蜂鸣器电路图
当P3^7为低电平时,这时蜂鸣器工作,当P3^7为高电平时,这时蜂鸣器停止工作,通过改变P3^7口,高低电平的时间,来改变蜂鸣器的发声音调。
3系统软件设计
3.1 软件的总体流程图
本设计所有的程序都是在Keil C环境下,用C语言完成编写和调试的。对DS1302的时间读取程序,对DS18B20的温度读取程序,对按键的时间调整程序,对LCD1602的显示时间和温度程序,都写成模块的形式,方便调用和调试。
3.2 时间设置子程序流程
通过单片机判断S1按下的次数来设置,由s1num标志位来记录次数,用if语句判断执行命令。当s1=1时进入秒的设置,地址指针指向miao显示位置处,通过两个if语句分别循环控制显示秒数的加和减。当s1=2时, shi显示位置处,变量最大值设为23。当s1=4时,地址指针指向week显示位置处,最大值设为7,1至7分别用MON、TUE、WED、THU 、FRI、SAT、SUN字指向day显示位置,变量最大值为31。当s1=6时,地址指针指向month显示位置,变量最大值为12。当s1=7时,地址指针指向year显示位置,最大值为99。
图4-2 时间设置流程图
3.3 闹钟设置子程序流程图
时间设置程序流程图如图4-3所示。当单片机检测到S4键按下一次时则进入闹钟设置界面,光标并自动跳到秒设置位置,可以对秒进行设置,当S1键依次按下1、2、3次时,则分别进入闹钟的秒、分、时关的设置。
图4-3 闹钟设置流程图
3.4 按键调整流程图
调整时间用到4个按键,按键功能分别是“进入时间调整模式”,“调整位时间加1”,“调整位时间减1”,“闹钟时间调整模式”。按键名称分别定义为“Key1”,“Key2”,“Key3”,“Key4”。按Key1,进入秒调整位,此时秒调整位会闪烁,表示该调整位可以被赋值,接着按Key2或者Key3可对调整位进行加或减。要调整其它调整位,可再按Key1进行选择,时间全部调整好后,按Key1退出设置,按下Key4进入闹钟设置界面。按键调整的流程图,如图4-5所示。
图4-5 按键调整图
4参考文献
[1]王为清,邱文勋.51单片机应用开发例案精选[M].人民邮电出版社,2007.
[2]杨子文.单片机原理应用[M].西安电子科技大学出版社,2006.
[3]刘勇.数字电路[M].电子工业出版社,2004.
[4]张鹏.王雪梅.单片机原理与应用实际教程[M].海洋出版社,2008.
[5]李全利.单片机原理与接口技术[M].高等教育出版社,2009.
[6]马忠梅.单片机的C语言应用设计[M].北京航空航天大学出版社,2008
[7]祝木田.单片机原理应用教程[M].中国财经经济出版社,2005
[8]王静霞.单片机应用技术[M].单子工业出版社,2009
[9]李秀忠.单片机应用技术[M].人民邮电出版社,2007
[10]黄明强.DS12C887在单片机系统中的应用[J].保定师范专科学报,2004:(17-4),30-33
该电子万年历以单片机STC89C52为主控制核心,通过单片机控制时钟芯片DS12C887实现时间的读取;温度传感器DS18B20实现温度的采集;蜂鸣器实现闹钟的报时;液晶LCD1602实现时间、星期和温度的显示;独立式按键实现时间和闹铃时间的调整。文章主要介绍了该电子万年历的电路设计和软件设计。
关键词:单片机;万年历;DS12C887;DS18B20;液晶LCD1602
中图分类号:F407.63 文献标识码:A 文章编号:
引言:
电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
1方案的总体设计和论证
1.1 方案的总体设计
本设计采用STC89C52单片机作为主控制模块,芯片DS12C887作为时钟模块,DS18B20作为温度采集模块,LCD1602作为液晶显示模块,以及4个独立式按键,所组成的整体的电子万年历电路。
图2-1 系统设计框图
该设计的主要特点是:
①功能多,能实现年、月、日、星期、时、分、秒、温度的直观显示,而且通过按键能够对时间进行调整。
②功耗低,只需要3节串联的干电池对其进行供电,就能驱动它正常工作很长一段时间。
③实现闹钟定时功能,当时钟时间与设置好的闹铃时间一致时,蜂鸣器发出闹铃音,这是按下任意按键,可终止闹铃。
1.2 方案的设计和论证
1.2.1 时钟模块
方案一:不使用芯片,直接使用单片机的定时计数器
利用单片机芯片的定时计数器提供秒信号,实现年、月、日、时、 分、秒的计数。
此方法可以省去一些外围的芯片,可以节约成本,但这种方法实现的时间误差较大,只适用于一些要求不是十分精确,不做长期保留的场合。
1.2.2 按键调整模块
方案一: 矩阵键盘
编程复杂,但是节省IO口。
不过,目前该方面资料很好查找,所以超过6个以上按键推荐用矩阵方式。
综上,选用独立键盘。
采用4个独立式按键,一个I/O口接一个按键。当电路所需要的按键较少时,可以采用独立式按键,控制程序也较简单,分别实现时间调整,加,减,闹钟时间的设置。
图2-3 轻触开关
1.2.3 显示模块
方案一:LCD12864
LCD12864作为液晶显示最大的特点就是能够实现友好的人机界面, 可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM),但12864体积大,引脚多,不利于仿真界面的显示,且本制作不需要显示汉字,故舍弃。
2硬件电路设计
2.1 电子万年历概述及原理图
硬件电路设计主要由STC89C52单片机,DS12C887时钟芯片,DS18B20温度传感器,LCD1602液晶显示屏,蜂鸣器以及4个独立式按键组成。
2.2 主控制模块
单片机最小系主要由晶振电路和复位电路组成。任何复杂的单片机糸统,都是在单片机最小系统这个基础上通过添加模块设计出来的。
2.2.1复位电路
单片机的引脚9是复位端。单片机糸统在刚上电时,或者是发生故障后,都要进行复位。本设计采用的复位电路,是如图3-2所示的按键手动复位电路。单片机复位的条件是:必须使引脚9上持续两个机器周期(即24个振荡周期)以上的高电平。
2.2.2外部访问允许端
单片机的引脚31,决定是访问内部存储器还是外部存储器。
2.3 时钟模块
1 器件特性
由于 DS12C887 能够自动产生世纪、 年、月、日、时、分、秒等时间信息,其内 部又增加了世纪寄存器,从而利用硬件电路 解决子“千年”问题;DS12C887 中自带有锂电 池,外部掉电时,其内部时间信息还能够保 持 10 年之久;对于一天内的时间记录,有12 小时制和 24 小时制两种模式。
图3-3 DS12C887和单片机的硬件连接电路图
2..4 蜂鸣器闹钟模块
图3-11 蜂鸣器电路图
当P3^7为低电平时,这时蜂鸣器工作,当P3^7为高电平时,这时蜂鸣器停止工作,通过改变P3^7口,高低电平的时间,来改变蜂鸣器的发声音调。
3系统软件设计
3.1 软件的总体流程图
本设计所有的程序都是在Keil C环境下,用C语言完成编写和调试的。对DS1302的时间读取程序,对DS18B20的温度读取程序,对按键的时间调整程序,对LCD1602的显示时间和温度程序,都写成模块的形式,方便调用和调试。
3.2 时间设置子程序流程
通过单片机判断S1按下的次数来设置,由s1num标志位来记录次数,用if语句判断执行命令。当s1=1时进入秒的设置,地址指针指向miao显示位置处,通过两个if语句分别循环控制显示秒数的加和减。当s1=2时, shi显示位置处,变量最大值设为23。当s1=4时,地址指针指向week显示位置处,最大值设为7,1至7分别用MON、TUE、WED、THU 、FRI、SAT、SUN字指向day显示位置,变量最大值为31。当s1=6时,地址指针指向month显示位置,变量最大值为12。当s1=7时,地址指针指向year显示位置,最大值为99。
图4-2 时间设置流程图
3.3 闹钟设置子程序流程图
时间设置程序流程图如图4-3所示。当单片机检测到S4键按下一次时则进入闹钟设置界面,光标并自动跳到秒设置位置,可以对秒进行设置,当S1键依次按下1、2、3次时,则分别进入闹钟的秒、分、时关的设置。
图4-3 闹钟设置流程图
3.4 按键调整流程图
调整时间用到4个按键,按键功能分别是“进入时间调整模式”,“调整位时间加1”,“调整位时间减1”,“闹钟时间调整模式”。按键名称分别定义为“Key1”,“Key2”,“Key3”,“Key4”。按Key1,进入秒调整位,此时秒调整位会闪烁,表示该调整位可以被赋值,接着按Key2或者Key3可对调整位进行加或减。要调整其它调整位,可再按Key1进行选择,时间全部调整好后,按Key1退出设置,按下Key4进入闹钟设置界面。按键调整的流程图,如图4-5所示。
图4-5 按键调整图
4参考文献
[1]王为清,邱文勋.51单片机应用开发例案精选[M].人民邮电出版社,2007.
[2]杨子文.单片机原理应用[M].西安电子科技大学出版社,2006.
[3]刘勇.数字电路[M].电子工业出版社,2004.
[4]张鹏.王雪梅.单片机原理与应用实际教程[M].海洋出版社,2008.
[5]李全利.单片机原理与接口技术[M].高等教育出版社,2009.
[6]马忠梅.单片机的C语言应用设计[M].北京航空航天大学出版社,2008
[7]祝木田.单片机原理应用教程[M].中国财经经济出版社,2005
[8]王静霞.单片机应用技术[M].单子工业出版社,2009
[9]李秀忠.单片机应用技术[M].人民邮电出版社,2007
[10]黄明强.DS12C887在单片机系统中的应用[J].保定师范专科学报,2004:(17-4),30-33