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

📄 worldclock.txt

📁 学习设计一个复杂嵌入式应用程序的方法
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  //时间格式的转换
  Temp_hour_1[0]=strtime[0];
  Temp_hour_2[0]=strtime[1];
  hour_l=Unicode2Int(Temp_hour 1);
  hour_2=Unicode2Int(Temp hour_2);
  Temp_minute_l[0]=strtime[3];
  Temp_minute_2[0]=strtime[4];
  minute_l=Unicode2Int(Temp_minute_1);
  minute_2=Unicode2Int(Temp_minute_2);
  k=(hour_l*10+hour_2)*60+minute_l*10+minute_2;
  switch(J)
  //根据选择,进行不同的计算
  {
  case 1://北京    
    ShowBmp(pdc,BeiJing,120,120);
    break;
    case 2://纽约
    ShowBmp(pdc,Newyork,120,120);
    k=k-780;//去掉时间差
    if(k<0)
    {k=k+1440;}
    else if(k>=1440 )
    {k=k-1440;}
    //分别取出小时、分的第1、2位
    hour_l=(k/60)/10;
    hour_2=(k/60)%10;
    minute_l=(k%60)/10;
    minute_2=(k%60)%10;
    //格式转换
    Int2Unicode(hour_l,Tenp hour_unicodel);
    Int2Unicode(hour_2,Temp_hour_unicode2);
    strtime[0]=Temp_hour_unicodel[0];
    strtime[1]=Temp_hour_unicode2[0];
    Int2Unicode(minute_l,Temp_minute_unicodel);
    Int2Unicode(minute_2,Temp_minute_unicode2);
    strtime[3]=Temp_minute_unicodel[0];
    strtime[4]=Temp_minute_unicode2[0];
    break;
case 3://德黑兰
  ShowBmp(pdc,Tehela,120,120);
  k=k-270;
    if(k<0)
    {k=k+1440;}
    else if(k>=1440)
    {k=k-1440;}
    hour_l=(k/60)/10;//分别取出小时、分的第1、2位
    hour_2=(k/60)%10;
    minute_l=(k%60)/10;
    minute_2=(k%60)%10;
    //格式转换
    Int2Unicode(hour_l,Temp_hour_unicode1);
    Int2Unicode(hour_2,Temp_hour_unicode2);
    strtime[0]=Temp_hour_unicodel[0];
    strtime[1]=Temp_hour_unicode2[0];
    Int2Unicode(minute_l,Temp_minute_unicodel);
    Int2Unicode(minute_2,Temp_minute_unicode2);
    strtime[3]=Temp_minute_unicodel[0];
    strtime[4]=Temp_minute_unicode2[0];
    break;
case 4://巴黎
    ShowBmp(pdc,Paris,120,120);
    k=k-420;
    if(k<0)
    {k=k+1440;}
    else if (k>=1440)
    {k=k-1440;}
    hour_1=(k/60)/10;//分别取出小时、分的第l、2位
    hour_2=(k/60)%10;
    minute l=(k%60)/10;
    minute_2=(k%60)%10;
    //格式转换
    Int2Unicode(hour_l,Temp_hour_unicodel);
    Int2Unicode(hour 2,Temp_hour_unicode2);
    strtime[0]=Temp_hour_unicodel[0];
    strtime[1]=Temp_hour_unicode2[0];
    Int2Unicode(minute_l,Temp_minute_unicodel);
    Int2Unicode(minute_2,Temp_minute_unicode2);
    strtime[3]=Temp minute unicodel[0];
    strtime[4]=Temp minute unicode2[0];
    break;
  case 5://东京
    ShowBmp(pdc,Tokyo,120,120);
    k=k+60;
    if(k<0)
    {k=k+1440;}
    else if (k>=1440)
    {k=k-1440;}
    hour-1=(k/60)/10;//分别取出小时、分的第1、2位
    hour_2=(k/60)%10;
    minute_l=(k%60)/10;
    minute_2=(k%60)%10;
    //格式转换
    Int2Unicode(hour_l,Temp_hour_unicodel);
    Int2Unicode(hour_2,Ternp_hour_unicode2);
    strtime[0]=Temp_hour_unicodel[0];
    strtime[1]=Temp_hour_unicode2[0];
    Int2Unicode(minute_l,Temp_minute_unicodel);
    Int2Unicode(minute_2,Temp_minute_unicode2);
    strtime[3]=Temp_minute_unicodel[0];
    strtime[4]=Temp_minute_unicode2[0];
    break;
    }
    ShowBmp(pdc,Nju,122,190);
    SetTextCtrlText(pTextCtrl,strtime,TRUE);//设置文本框内容
    OSSemPost(Rtc_Updata_Sem);    //发送信号量
    switch(J){
  case 1://北京
    //显示秒针
    Rtc_Format("%H%I%s",strtime);    //格式化时间
    clock=Unicode2Int(strtime);
    hour=clock/10000;
    minute=(clock%10000)/100;
    second=(clock%10000)%100;
    //计算秒针的角度
    i=(double)second/60.0*2*pi;
    xl=(int)(200+50*sin(i));
    yl=(int)(60-50*cos(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,1);
    LineTo(pdc,xl,y1);
    //显示分针
    //计算分针的角度
    i=(double)((second/60.0+minute)/60.0*2*pi);
    xl=(int)(200+40*sin(i));
    yl=(int)(60-40*cos(i));
    //uart-printf("mini=%f minx=%d miny=%d\n",i,xl,y1);
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,2);
    LineTo(pdc,xl,y1);
    //显示时针
    k=hour;
    if(k>=12)
    {k=k-12;}
    hour_l=k/10;
    hour_2=k%10;}
    //计算时针的角度
    i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
    xl=(int)(200+30*sin(i));
   y1=(int)(60-30*cos(i));
    NoveTo(pdc,200,60);
    SetpenColor(pdc,0);
    SetPenWidth(pdc,3);
    LineTo(pdc,xl,y1);
    break;
case 2://纽约
    //显示秒针
    Rtc_Format("%H%I%s",strtime);//格式化时间
    clock=unicode2Int(strtime);
    hour=clock/10000-13;
    if(hour<0)
    hour=hour+24:
    minute=(clock%10000)/100;
    second=(clock%10000)%100;
    i=(double)second/60.0*2*pi;
    xl=(int)(200+50*sin(i));
    yl=(int)(60-50*cos(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,1);
    LineTo(pdc,xl,y1);
    //显示分针
    i=(double)((second/60.0+minute)/60.0*2*pi);
    x1=(int)(200+40*sin(i));
    y1=(int)(60-40*cos(i));
    MoveTo(pdc,200,60);
    SetpenColor(pdc,0);
    SetPenWidth(pdc,2);
    LineTo(pdc,xl,y1);
    //显示时针
    k=hour;
    if(k>=12)
    k=k-12;
    hour_i=k/10;
    hour_2=k%10;
    }
    i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
    xl=(int)(200+30*sin(i));//计算终点位置
    yl=(int)(60-30*cos(i));
    MoveTo(pdc,200,60);
  SetPenColor(pdc,0);    //笔的颜色
  SetPenWidth(pdc,3);    //笔的宽度
  LineTo(pdc,xl,y1);    //连线
  break;
case 3://德黑兰
    //显示秒针
    Rtc_Format("%H%I%s",strtime);  //格式化时间
    Clock=Unicode2Int(strtime);
    hour=clock/10000;
    minute=(clock%10000)/100;
    second=(clock%10000)%100;
    clock=hour*60+minute;
    clock=clock-270;
    if(clock<0)
    clock=clock+1440;
    hour=clock/60;
    minute=clock%60;
    i=(double)second/60.0*2*Pi;
    xl=(int)(200+50*sin(i));
    yl=(int)(60-50*COS(i));
    MoveTo(pdc,2 00,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,1);
    LineTo(pdc,xl,y1);
    //显示分针
    i=(double)((second/60.0+minute)/60.0*2*pi);
    xl=(int)(200+40*sin(i));
    yl=(int)(60-40*COS(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,2);
    LineTo(pdc,xl,y1);
    //显示时针
    k=hour;
    if (k>=12)
    {
    k=k-12;
    hour_l=k/10;
    hour_2=k%10;
    }
    i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
    xl=(int)(200+30*sin(i));  //计算终点位置
    yl=(int)(60-30*COS(i));
    MoveTo(pdc,200,60);
    SetPenCelor(pdc,0);    //笔的颜色
    SetPenWidth(pdc,3);    //笔的宽度
    LineTo(pdc,xl,y1);    //连线;
    break;
case 4://巴黎
    //显示秒针
    Rtc_Format("%H%I%s",strtime);  //格式化时间
    clock=Unicode2Int(strtime);
    hour=clock/10000-7;
    if(hour<0)
    hour=hour+24;
    minute=(Clock%10000)/100;
    second=(Clock%10000)%100;
    i=(double)(second/60.0*2*pi);
    xl=(int)(200+50*Sin(i));
    yl=(int)(60-50*COS(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,1);
    LineTo(pdc,xl,y1);
    //显示分针
    i=(double)((second/60.0+minute)/60.0*2*pi);
    xl=(int)(200+40*Sin(i));
    yl=(int)(60-40*COS(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);
    SetPenWidth(pdc,2);
    LineTo(pdc,xl,y1);
    //显示时针
    k=hour;
    if (k>=12)
    {
    k=k-12;
    hour_l=k/10 ;
    hour_2=k%10;
    }
  i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
  xl=(int)(200+30*sin(i));    //计算终点位置
  yl=(int)(60-30*COS(i));
   MoveTo(pdc,200,60);
    SetPenColor(pdc,0);    //笔的颜色
    SetPenWidth(pdc,3);    //笔的宽度
    LineTe(pdc,xl,y1);    //连线
    break;
    case 5://东京
    //显示秒针
    Rtc_Format("%H%I%s",strtime);  //格式化时间
    clock=unicode2Int(strtime);
    hour=clock/10000+1;
    if(hour>1440)
    hour=hour-24;
    minute=(clock%10000)/100;
    second=(clock%10000)%100;
    i=(double)second/60.0*2*pi;
    xl=(int)(200+30*sin(i));    //计算终点位置
    yl=(int)(60-30*COS(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);    //笔的颜色
    SetPenWidth(pdc,3);    //笔的宽度
    LineTo(pdc,xl,y1);    //连线
    //显示分针
    i=(double)((second/60.0+minute)/60.0*2*pi);
    xl=(int)(200+40*sin(i));
    yl=(int)(60-40*cos(i));
    MoveTo(pdc,200,60);
    SetPenColOr(pdc,0);
    SetPenWidth(pdc,2);
    LineTo(pdc,xl,y1);
    //显示时针
    if(k>=12)
    k=k-12;
    hour_l=k/10;
    hour_2=k%10;
    //计算时针的角度
    i=(double)((second/3600.0+minute/60.0+k)/12.0*2*pi);
    xl=(int)(200+30*sin(i));    //计算终点位置
    yl=(int)(60-30*COS(i));
    MoveTo(pdc,200,60);
    SetPenColor(pdc,0);    //笔的颜色
    SetPenWidth(pdc,3);    //笔的宽度
    LineTo(pdc,xl,y1);    //连线
    break/
    }
    OSTimeDly(250);
    MoveTo(pdc,0,0);
    //进行刷新
    FitIRect(pdc,140,5,250,110,GRAPH_MODE_NORMAL,RGB(255,255,255));
    EXIO_8255A_PORTA=led[1istnumber];  //显示所选城市
    EXIO_8255A_PORTB=0x77;
    }//endif
  DestoryDC(pdc);}
}

⌨️ 快捷键说明

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