⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lm4229_ds1302.c

📁 带T6963C控制器的240128液晶图形显示C程序
💻 C
字号:
//=====================================
//   proteus仿真论坛:http://proteus.5d6d.com
//     祝福北京,祝福奥运
//          北京欢迎你
//     时钟暂未加设置时间功能
//=====================================
#include<reg52.h>
#include<math.h>
#include<absacc.h>
#include<ds1302.h>
#include<lm4229.h>

//                0123  67  1011 1516 1819 2122
uchar tab_time[]="2008年08月08日 00:00:00 星期";
                  /*年 月 日 时  分 秒 星期 */


sbit k1=P3^3;
sbit k2=P3^4;

//--------------------------
//------- 函数声明  --------
void trans();
void key_scan();
void week();
void delay(uint);

//============================================
//             主函数
//============================================
void main()
{
 lcd_init();
 write_lcd(10,0,"------------------------------");
 write_lcd(102,0,"------------------------------");
// write_lcd(0,0,"2008年08月08日 00:00:00 星期五"); 
 write_lcd(22,1,"同");
 write_lcd(38,1,"一");
 write_lcd(54,1,"个");
 write_lcd(72,1,"世");
 write_lcd(90,1,"界");
 write_lcd(22,27,"同");
 write_lcd(38,27,"一");
 write_lcd(54,27,"个");
 write_lcd(72,27,"梦");
 write_lcd(90,27,"想");
 write_lcd(112,0," 四川师大 电子工程学院 聂金波");
 //write_pic(30,5);   //北京欢迎你  大字
 //write_lcd(70,8,"2008 北京奥运");    //黑体
 write_image(30,6,80,72,tab_image_h);   //显示涛哥 80*72
 write_image(26,17,56,75,tab_image_w);  //显示宝宝 56*75
 while(1)
 {
   ds1302();
   trans();
   write_lcd(0,0,tab_time);
   week();
 }
}


//----------------------------------
//         按键函数
//----------------------------------
void key_scan()
{
 if(k1==0)
  {
   delay(5);
   if(k1==0)
    {
     tab_time[2]++;
    }
  }
}

void delay(uint k)
{
  uint i,j;
  for(i=k;i>0;i--)
    for(j=110;j>0;j--);
}

//------------------------------------------
//              数据转换
//------------------------------------------
void trans()
{
 tab_time[2]=tab_1302[6]/10+'0';     //年十位
 tab_time[3]=tab_1302[6]%10+'0';     //年个位
 tab_time[6]=tab_1302[4]/10+'0';     //月十位
 tab_time[7]=tab_1302[4]%10+'0';     //月个位
 tab_time[10]=tab_1302[3]/10+'0';     //日十位
 tab_time[11]=tab_1302[3]%10+'0';     //日个位
 tab_time[15]=tab_1302[2]/10+'0';     //小时十位
 tab_time[16]=tab_1302[2]%10+'0';     //小时个位
 tab_time[18]=tab_1302[1]/10+'0';     //分十位
 tab_time[19]=tab_1302[1]%10+'0';     //分个位
 tab_time[21]=tab_1302[0]/10+'0';     //秒十位
 tab_time[22]=tab_1302[0]%10+'0';     //秒个位
}


//------------------------------------------
//              星期显示
//------------------------------------------
void week()
{
 uchar i;
 if(tab_1302[5]==1)
 {i=7;}
 else 
 {i=tab_1302[5]-1;}      /*实时时钟里的值是6,但是2008/08/08是星期五,所以减1,
                             Proteus的问题??  */
 switch(i)
  {
   case 1: write_lcd(0,28,"一");  break;
   case 2: write_lcd(0,28,"二");  break;
   case 3: write_lcd(0,28,"三");  break;
   case 4: write_lcd(0,28,"四");  break;
   case 5: write_lcd(0,28,"五");  break;
   case 6: write_lcd(0,28,"六");  break;
   case 7: write_lcd(0,28,"日");  break;
   default: ;  break;  //其它情况  
 }
}
//==============================================


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -