论文部分内容阅读
【摘要】LCD12864是基于点阵式的,像素为128×64的液晶显示屏,基本满足指针式时钟的显示要求。本系统采用时钟芯片DS1302、单片机、12864设计一款可以切换数字式和指针式显示的电子时钟。
【关键词】指针式时钟;LCD12864;DS1302
The Design of a Point Clock Based on 12864
MENGMing-ming
(Computer Science and Technology School, China University of Mining and TechnologyJiangSuXuzhou221000)
【Abstract】 The 12864 is a liquid crystal display of 128×64 dots, which can be used to display a point clock. In this paper, the design takes a sort of clock chip named DS1302 and 12864 to make a clock that can switch between point display and digital display.
【Key words】Key Words: Point Clock; LCD12864;DS1302
采用单片机与时钟芯片DS1302设计电子时钟时,通常是数字显示,这是由于选用数码管和1602等器件的显示能力有限。而12864是基于点阵式的液晶屏,其像素点为128×64,基本达到指针式时钟显示要求。本系统在时钟表盘、指针绘制及时钟走时和时间的准确性方面都基本实现要求。虽然12864自身像素较低,使其显示指针式时钟效果远低于大屏幕LED,但两者所基于的原理相同,对于点阵设计的学习有较大帮助。
1.12864介绍
液晶显示的驱动电路比较复杂,通常用户使用的液晶模块都封装了控制芯片和电路。12864点阵图形液晶模块的最小操作单位为单个像素点,像素总量为128×64,用户就像是对一块无需驱动的128×64点阵模块进行操作。有些模块内置存入8192个16×16点汉字的中文字库,可显示8列×4行汉字,并可完成图形显示,构成良好的人机交互界面。液晶模块多采用并行连接,常以I/O口方式进行读写访问,接口由8根数据线和3~4根片选/控制线构成。其有两个控制芯片,分别控制左右半屏。12864功耗低,仅为普通LED的1/5~1/10,以及高寿命的特性使其广泛应用在各种系统设计中。
2.系统硬件设计
系统选用时钟芯片DS1302、按键作为输入设备,AT89s52单片机作为主控和处理设备,LCD12864和蜂鸣器作为输出设备。
3.系统软件设计
软件部分包括时钟数据读入、键盘扫描、控制器处理和LCD显示等,本文主要介绍如何实现在12864上显示时间。
3.1时钟表盘、表针绘制
在12864上画图的基础操作是实现画点和画线功能,如本程序使用的函数DrawPoint(x, y, type)、DrawLine(x1, y1, x2, y2, type),x, y 表示显示屏上某点坐标,type表示所画点和线的类型,如传递参数Graphic_Draw、Graphic_Clear即可实现相应的画和擦除功能。
绘制表盘外圆的程序如下:
for(sta=0; sta<=2*PI; sta+=2*PI/60)
{
x=sin(sta);y=cos(sta);
DrawPoint(a+r*x, b+r*y, Graphic_Draw);
}
即表示以(a,b)为圆心,逆时针旋转,每隔6°画点,每个点至(a,b)的距离为半径r。绘制刻度0~12的原理相同,区别是每隔30°画点,共12个点。
绘制表针的函数如下:
void clock_show(uchar name, L, type)
{
float x, y;
x=sin(name*2*PI/60); y= cos(name*2*PI/60);
DrawLine(a, b, a+L*x, b-L*y, type);
}
”name”表示”hour”、”min”、”sec”参量,”L”表示时分秒指针各自的长度,”-”表示指针走时是顺时针旋转。
3.2时钟走时部分
时钟走时函数的原型为void clock(hou,min,sec),即从所传入的时间数据hou、min、sec开始走时。指针行走的原理是模仿现实中的时钟,即秒针走60格,分针走一格,分针走12格,时针走一格,min、sec自增至60后归0,hou自增至12后归0。以秒针走时为例,由于液晶屏显示的记忆性,在显示当前这一秒时,需要擦除上一秒显示留下的痕迹,此时只需在clock_show函数中,为参数type赋值为Graphic_Draw 或Graphic_Clear。
此外,时钟指针式显示是一次性传入时间数据,在表针走动时不读入DS1302数据, 而是通过软件产生1秒延时,容易导致时间不准确。因此,为了保证时间的准确性,每隔一段时间,系统进入数字式显示,在此期间读入时钟芯片的精确数据,可以通过自动定时和手动按键来切换显示模式,然后重新进入指针式显示模式。
4.结论
本文采用LCD12864作为显示器件,DS1302产生时钟数据,设计了一款可以切换显示模式的电子时钟。通过对12864的操作实现了表盘、表针的设计和表针走动,虽然最终效果远低于大屏幕LED,但为12864又提供了更广泛的应用空间。■
【参考文献】
[1]王守中.51单片机开发入门与典型实例[M].北京:人民邮电出版社.2007.
[2]戴仙金.51单片机及其C语言程序开发实例[M].北京:清华大学出版社.2008.
[3]陈涛.单片机应用及C51程序设计[M].北京:机械工业出版社.2008.
【关键词】指针式时钟;LCD12864;DS1302
The Design of a Point Clock Based on 12864
MENGMing-ming
(Computer Science and Technology School, China University of Mining and TechnologyJiangSuXuzhou221000)
【Abstract】 The 12864 is a liquid crystal display of 128×64 dots, which can be used to display a point clock. In this paper, the design takes a sort of clock chip named DS1302 and 12864 to make a clock that can switch between point display and digital display.
【Key words】Key Words: Point Clock; LCD12864;DS1302
采用单片机与时钟芯片DS1302设计电子时钟时,通常是数字显示,这是由于选用数码管和1602等器件的显示能力有限。而12864是基于点阵式的液晶屏,其像素点为128×64,基本达到指针式时钟显示要求。本系统在时钟表盘、指针绘制及时钟走时和时间的准确性方面都基本实现要求。虽然12864自身像素较低,使其显示指针式时钟效果远低于大屏幕LED,但两者所基于的原理相同,对于点阵设计的学习有较大帮助。
1.12864介绍
液晶显示的驱动电路比较复杂,通常用户使用的液晶模块都封装了控制芯片和电路。12864点阵图形液晶模块的最小操作单位为单个像素点,像素总量为128×64,用户就像是对一块无需驱动的128×64点阵模块进行操作。有些模块内置存入8192个16×16点汉字的中文字库,可显示8列×4行汉字,并可完成图形显示,构成良好的人机交互界面。液晶模块多采用并行连接,常以I/O口方式进行读写访问,接口由8根数据线和3~4根片选/控制线构成。其有两个控制芯片,分别控制左右半屏。12864功耗低,仅为普通LED的1/5~1/10,以及高寿命的特性使其广泛应用在各种系统设计中。
2.系统硬件设计
系统选用时钟芯片DS1302、按键作为输入设备,AT89s52单片机作为主控和处理设备,LCD12864和蜂鸣器作为输出设备。
3.系统软件设计
软件部分包括时钟数据读入、键盘扫描、控制器处理和LCD显示等,本文主要介绍如何实现在12864上显示时间。
3.1时钟表盘、表针绘制
在12864上画图的基础操作是实现画点和画线功能,如本程序使用的函数DrawPoint(x, y, type)、DrawLine(x1, y1, x2, y2, type),x, y 表示显示屏上某点坐标,type表示所画点和线的类型,如传递参数Graphic_Draw、Graphic_Clear即可实现相应的画和擦除功能。
绘制表盘外圆的程序如下:
for(sta=0; sta<=2*PI; sta+=2*PI/60)
{
x=sin(sta);y=cos(sta);
DrawPoint(a+r*x, b+r*y, Graphic_Draw);
}
即表示以(a,b)为圆心,逆时针旋转,每隔6°画点,每个点至(a,b)的距离为半径r。绘制刻度0~12的原理相同,区别是每隔30°画点,共12个点。
绘制表针的函数如下:
void clock_show(uchar name, L, type)
{
float x, y;
x=sin(name*2*PI/60); y= cos(name*2*PI/60);
DrawLine(a, b, a+L*x, b-L*y, type);
}
”name”表示”hour”、”min”、”sec”参量,”L”表示时分秒指针各自的长度,”-”表示指针走时是顺时针旋转。
3.2时钟走时部分
时钟走时函数的原型为void clock(hou,min,sec),即从所传入的时间数据hou、min、sec开始走时。指针行走的原理是模仿现实中的时钟,即秒针走60格,分针走一格,分针走12格,时针走一格,min、sec自增至60后归0,hou自增至12后归0。以秒针走时为例,由于液晶屏显示的记忆性,在显示当前这一秒时,需要擦除上一秒显示留下的痕迹,此时只需在clock_show函数中,为参数type赋值为Graphic_Draw 或Graphic_Clear。
此外,时钟指针式显示是一次性传入时间数据,在表针走动时不读入DS1302数据, 而是通过软件产生1秒延时,容易导致时间不准确。因此,为了保证时间的准确性,每隔一段时间,系统进入数字式显示,在此期间读入时钟芯片的精确数据,可以通过自动定时和手动按键来切换显示模式,然后重新进入指针式显示模式。
4.结论
本文采用LCD12864作为显示器件,DS1302产生时钟数据,设计了一款可以切换显示模式的电子时钟。通过对12864的操作实现了表盘、表针的设计和表针走动,虽然最终效果远低于大屏幕LED,但为12864又提供了更广泛的应用空间。■
【参考文献】
[1]王守中.51单片机开发入门与典型实例[M].北京:人民邮电出版社.2007.
[2]戴仙金.51单片机及其C语言程序开发实例[M].北京:清华大学出版社.2008.
[3]陈涛.单片机应用及C51程序设计[M].北京:机械工业出版社.2008.