当前位置:文档之家› LCD12864指针式模拟时钟(基于51)

LCD12864指针式模拟时钟(基于51)


#define LCD_data P0 //数据口
sbit LCD_RS = P2^6; //寄存器选择输入
sbit LCD_RW = P2^5; //液晶读/写控制
sbit LCD_EN = P2^7; //液晶使能控制
sbit LCD_PSB = P3^2; //串/并方式控制
sbit LCD_RST = P3^7; //液晶复位端口
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; void delay(int ms); //void delay1(int ms);//延时函数 void Delay_S(void); //延时 1s 误差 0us //bit lcd_busy();//lcd 测忙函数 //void lcd_wcmd(uchar cmd);//写命令函数 //void lcd_wdat(uchar dat);//写数据函数 //uchar lcd_rdat();//读数据函数 void lcd_init();//lcd 初始化函数 //void lcd_pos(uchar X,uchar Y);//确定坐标函数 //void lcdflag(); //闪烁函数 //void photodisplay(uchar *bmp);//显示图片函数*/ //void DrawPoint(unsigned char x,unsigned char y,unsigned char color);//打点函数 void line(unsigned char x0,unsigned char y0, unsigned char x1,unsigned char y1,unsigned char color);//画直线函数 //void rect(int x0, int y0, int x1, int y1); //画矩形函数 //void rectfill(int x0, int y0, int x1, int y1);//画实心矩形函数 void circle(int x1, int y1, unsigned int r);//画圆函数 //void circlefill(int x1, int y1, unsigned int r,unsigned char color);//画实心圆函数
/************************************************************
* 描述:
*
* 12864 标准字库液晶演示 数据 p0,控制 p2
*
************************************************************/
/*******************************************************************/
#ifndef LCD12864_BSP_H_ #define LCD12864_BSP_H_
#define uchar unsigned char #define uint unsigned int
#define pi 3.1412926
//定义π
/************* 12864LCD 引脚定义 *************/
void DISPd(char x0,char y0,char R,char Time,char step,char color);//画时钟指针函数 void clr_screen();//清屏函数
#endif
/**************************************************************************/ /********************第一版,功能正常,待修改完善**************************/ /********************作者:WHJWNAVY*************************************/ /********************QQ:805400349******************************************/ /********************请尊重作者劳动成果!**********************************/ /********************时间:2012.07.14***************************************/ /********************文件名:lcd12864_bsp.c*********************************/ /********************作用:相关函数定义及硬件驱动程序**********************/ /*************************************************************************/ #include <reg51.h> #include <intrins.h> #include<stdlib.h> #include<math.h> #include "lcd12864_bsp.h"
基于 51 单片机的 12864 指针式模拟时钟
效果图:
/****************************************************************************/ /******************第一版,功能正常,待修改完善******************************/ /******************作者:WHJWNAVY****************************************/ /******************QQ:805400349*********************************************/ /******************请尊重作者劳动成果!**************************************/ /******************时间:2012.07.14******************************************/ /*******************文件名:lcd12864_ZZZMB.c********************************/ /*******************作用:主函数,时间处理及指针显示*************************/ /****************************************************************************/
DrawHand(x0,y0,15,k,6,0);//消除原来的时针位置 k++; if(k==60)k=0; DrawHand(x0,y0,15,k,6,1);//显示新的时针位置 } } Delay_S(); //“一秒”的长度 DrawHand(x0,y0,25,i,6,0); // 消除秒针位置 if((i==j)||(i==k)||(j==k)) //处理指针相遇 { DrawHand(x0,y0,20,j,6,1); //显示分针 DrawHand(x0,y0,15,k,6,1); //显示时针 } } } }
i=0;j=0;k=45;
delay(100);
//上电,等待稳定
lcd_init();
//初始化 LCD
clr_screen(); //清屏 DISP_BP(); //画表盘 DrawHand(x0,y0,25,i,6,1); //显示秒针 DrawHand(x0,y0,20,j,6,1); //显示分针 DrawHand(x0,y0,15,k,6,1); //显示时针 while(1) { for(i=0;i<60;i++) //秒 {
/*********************************************************
*
*
* 主函数
*
*
*
*********************************************************/
void main()
{
uchar i,j,k;
DrawHand(x0,y0,25,i,6,1); //显示秒针位置 if(i==0) //分 { DrawHand(x0,y0,20,j,6,0); //消除原来分针位置 j++; if(j==60)j=0; DrawHand(x0,y0,20,j,6,1); //显示新的分针位置 if(((j+1)%12)==0) //时 {
/*************************************************************************/ /********************第一版,功能正常,待修改完善*************************/ /********************作者:WHJWNAVY***********************************/ /********************QQ:805400349****************************************/ /********************请尊重作者劳动成果!*********************************/ /*********************时间:2012.07.14*************************************/ /*********************文件名:lcd12864_bsp.h********************************/ /*********************作用:头文件,相关函数声明及硬件端口定义*************/ /**************************************************************************/
相关主题