资源描述:
《LCD12864绘图之KS0108(5)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LCD12864绘图之KS0108(5)Ampire12864显示指针时钟贵州省凯里市第一中等职业技术学校机电部电子应用专业高级教师杨正富仿真局部大图:仿真全图:/***************************************************************************************说明:1、程序共分六部分。一个主C程序,五个头文件程序。2、构成:AT89C52+DS1302+DS18B20+Ampire128x64+Speaker3、显示:日期,星期,时间,气温4、调整:设置三个
2、按键,用于调节日期,星期,时间。5、程序不够完善,请有志者自行修改补充。***************************************************************************************///////////////////////////////////////////////////////////////1//////////////////////////////////////////////////////////////////////////////////C
3、程序:负责调用与整合其他程序模块功能#include"Hzimo.h"//字模头文件#include"DS1302.h"//时钟读写头文件#include"DS18B20.h"//温度传感器操作头文件#include"KS0108.h"//液晶显示操作头文件#include"keyscan.h"//键盘调整操作头文件voidpointer_Update()//指针的绘制与擦除(等比分点){ucharS,M,H;//定义秒分时寄存变量,用于时间判断if(S!=DT[0])//秒时间跳变{CLKpointer_show(31,31,S,2
4、5,0);//秒针线擦除S=DT[0];//指向下一次的时间}CLKpointer_show(31,31,S,25,1);if(M!=DT[1])//分时间跳变{CLKpointer_show(31,31,M,20,0);//分针线擦除M=DT[1];//指向下一次的时间}CLKpointer_show(31,31,M,20,1);if(DT[2]<12)DT[2]=DT[2]*5+DT[1]/12;//用于计算时针的终点坐标else{DT[2]=DT[2]-12;DT[2]=DT[2]*5+DT[1]/12;}if(H!=DT[2]
5、)//时间是否跳变{CLKpointer_show(31,31,H,15,0);//时针线擦除H=DT[2];//指向下一次的时间}CLKpointer_show(31,31,H,15,1);}voidfixed_display()//固定显示(按页,列,字码,字数定位){sz_Disp1(2,0,16,num[11],1);//右屏0页第16列显示'-'sz_Disp1(2,0,40,num[11],1);//右屏0页第40列显示'-'hz_Disp16(2,2,0,HZ[8],2);//右屏2页第0列显示"星期"sz_Disp1(
6、2,2,32,num[10],2);//右屏2页第32列填充黑块"■"2个sz_Disp1(2,4,16,num[12],1);//右屏4页第16列显示':'sz_Disp1(2,4,40,num[12],1);//右屏4页第40列显示':'hz_Disp16(2,6,0,HZ[10],2);//右屏6页第0列显示"气温"hz_Disp16(2,6,48,HZ[0],1);//右屏6页第48列显示"℃"picture_disp12(1,0,0,&clock);//左屏显示表盘与刻度}voiddynamic_display()//动态显
7、示(随时更新的数值){sz_Disp1(2,0,0,num[DT[6]/10],1);//右屏0页第0列显示'年十位'sz_Disp1(2,0,8,num[DT[6]%10],1);//右屏0页第8列显示'年个位'sz_Disp1(2,0,24,num[DT[4]/10],1);//右屏0页第24列显示'月十位'sz_Disp1(2,0,32,num[DT[4]%10],1);//右屏0页第32列显示'月个位'sz_Disp1(2,0,48,num[DT[3]/10],1);//右屏0页第48列显示'日十位'sz_Disp1(2,0,
8、56,num[DT[3]%10],1);//右屏0页第56列显示'日个位'hz_Disp16(2,2,48,HZ[DT[5]],1);//右屏2页第48列显示"星期值"sz_Disp1(2,4,0,num[DT[2]/1