签到

06月20日
尚未签到

共有回帖数 0

    顾我心安

    等级:
    先上代码

    /*P0口进行控制, P2口输出*/
    #includereg52.h
    #define uint unsigned int
    #define uchar unsigned char
    #define DPORT P2

    unsigned long int ms=0;
    uint second=0,tensecond=0,min=0,tenmin=0,hour=0,tenhour=0;
    uchar num;
    sbit RS=P0^2;   /*数据命令端*/
    sbit RW=P0^3;   /* 读写端 */
    sbit E=P0^4;    /* 使能端 */



    void time0() interrupt 1
    {
    TH0=(65536-50000)/256;
    TL0=(65536-50000)/256;
    ms++;            /*ms为50ms增加一次*/
    if((ms+1)%20==0)second++;          
    if((ms+1)%200==0)tensecond++;
    if((ms+1)%1200==0)min++;
    if((ms+1)%12000==0)tenmin++;
    if((ms+1)%72000==0)hour++;
    if((ms+1)%720000==0)tenhour++;
    }

    void delay(uchar t)
    {
    uchar i,j;
    for(i=0;it;i++)
      for(j=0;j110;j++);
    }

    void write_com(uchar com)   /*写命令*/
    {
    RS=0;
    RW=0;
    DPORT=com;

    delay(5);
    E=1;
    delay(5);
    E=0;
    }

    void write_data(uchar dat)
    {
    RS=1;   /*写数据则为高电平*/
    RW=0;
    DPORT=dat;

    delay(5);
    E=1;      /*延迟,送入高脉冲*/      
    delay(5);
    E=0;
    }

    void init()
    {
    E=0;
    write_com(0x38);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
    }


    main()
    {
      init();
     
      TMOD=0x01;                                              
      TH0=(65536-50000)/256;
      TL0=(65536-50000)%256;
      TR0=1;
      EA=1;
      ET0=1;

      write_com(0x80);     /*起始点定位*/                            

      write_data(116);        /* 写“TIME" */  
      delay(5);  
      write_data(105);
      delay(5);
      write_data(109);
      delay(5);
      write_data(101);
      delay(5);
      write_data(58);                                    
      delay(5);                                        
     
      write_com(0x80+0x05);     /* 再定位起始点 */

      do{                                        /*   写时钟数据   */
      write_data(tenhour%24/10+48);
      write_data(hour%24%10+48);
      write_data(58);
      write_data(tenmin%6+48);
      write_data(min%10+48);
      write_data(58);
      write_data(tensecond%6+48);
      write_data(second%10+48);

      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      write_com(0x10);
      }while(1);

     


    }


    楼主 2015-12-17 16:37 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知