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

📄 main.c

📁 uCOS-II在飞思卡尔AW60的移植程序包
💻 C
📖 第 1 页 / 共 2 页
字号:
                        b.ucWeek=6;
                       }
                     };break;//位选择周
                                 
           }
          
          Time_display2();
}




/*************************************************************************************************/
/*8位数据从74HC164的串行输入端输入,从输出端并行输出,显示的是断码*/
/*************************************************************************************************/
void senddata(uchar dd) {        
uchar j;
for (j=0;j<=7;j++) {
           SCK=0;
              if(dd&0x01)SDA=1;
                    else SDA=0;
				   SCK=1; 
				   dd=dd>>1;
				   }
				         }

/****************************************************************************************************/
/*动态扫描显示程序*/
/****************************************************************************************************/

void Time_display1(void)//显示时分秒
{
   uchar num;
     
   if(display_config<5){
     num= a.ucSec&0b00001111;
     senddata(szdm[num]);                   //秒显示
     PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
     OSTimeDly(10);
     num= (a.ucSec>>4)&0b00001111;
     senddata(szdm[num]);
     PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
     OSTimeDly(10);
     senddata(szdm[12]);                    //显示中间横杠
     PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
     OSTimeDly(10);               
    
     num= a.ucMin&0b00001111;               //分钟显示
     senddata(szdm[num]);
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
     OSTimeDly(10);
     num= (a.ucMin>>4)&0b00001111;
     senddata(szdm[num]);
     PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
     OSTimeDly(10);
     senddata(szdm[12]);                    //显示中间横杠
     PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
     OSTimeDly(10);     
    
     num=a.ucHour&0b00001111;                 //小时显示
     senddata(szdm[num]);
     PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
     OSTimeDly(10);
     num= (a.ucHour>>4)&0b00001111;
     senddata(szdm[num]);
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
     OSTimeDly(10);
     senddata(szdm[11]);
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
     }
   
   
   if(display_config==5){ senddata(szdm[11]); //显示黑屏
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1; //位选,选择右面第8位
     }
   
   
   if((display_config>5)&(display_config<=7)){
     
     num=a.ucDay&0b00001111;
     senddata(szdm[num]);                   //日显示
     PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
     OSTimeDly(10);
     num= (a.ucDay>>4)&0b00001111;
     senddata(szdm[num]);
     PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
     OSTimeDly(10);
     
     
     num= a.ucMonth&0b00001111;              //显示月
     senddata(szdm[num]);                    //显示中间横杠
     PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
     OSTimeDly(10);
     senddata(szdm[10]);                    //显示小数点
     PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
     OSTimeDly(10);               
     
     num=(a.ucMonth>>4)&0b00001111;              
     senddata(szdm[num]);
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
     OSTimeDly(10);
     
     
     senddata(szdm[10]);                    //显示小数点
     PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
     OSTimeDly(10);
     
     num= a.ucYear&0b00001111;               //显示年
     senddata(szdm[num]);
     PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
     OSTimeDly(10);
     
     num= (a.ucYear>>4)&0b00001111;
     senddata(szdm[num]);                    
     PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
     OSTimeDly(10);     
    
                      
     senddata(szdm[0]);                     //显示数字0
     PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
     OSTimeDly(10);
     
     senddata(szdm[2]);                     //显示数字2
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
     OSTimeDly(10);
     senddata(szdm[11]);
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
   }
   if(display_config>=8){ 
     senddata(szdm[11]);//显示黑屏
     PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1; //位选,选择右面第8位
     OSTimeDly(10);
   }
      
    
    }
    
    
    
void Time_display2(void){     //调试显示时间

     uchar num;
     if(keyn<=3)
   {
      
     if(keyn==1)
     {
       if(FF==2)
         {
            num= b.ucSec&0b00001111;
            senddata(szdm[num]);                   //秒显示
            PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
            OSTimeDly(10);
            num= (b.ucSec>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
            OSTimeDly(10);
            senddata(szdm[12]);                    //显示中间横杠
            PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
            OSTimeDly(10);
         };
          num= b.ucMin&0b00001111;               //分钟显示
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
          OSTimeDly(10);
          num= (b.ucMin>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          senddata(szdm[12]);                    //显示中间横杠
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
          OSTimeDly(10);
          num=b.ucHour&0b00001111;                 //小时显示
          senddata(szdm[num]);
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
          OSTimeDly(10);
          num= (b.ucHour>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
          OSTimeDly(10);
          senddata(szdm[11]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
     }
     if(keyn==2)
     {
          if(FF==2)
          {
            num= b.ucMin&0b00001111;               //分钟显示
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
            OSTimeDly(10);
            num= (b.ucMin>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
            OSTimeDly(10);
            senddata(szdm[12]);                    //显示中间横杠
            PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
            OSTimeDly(10);
          };
            num= b.ucSec&0b00001111;
            senddata(szdm[num]);                   //秒显示
            PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
            OSTimeDly(10);
            num= (b.ucSec>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
            OSTimeDly(10);
            senddata(szdm[12]);                    //显示中间横杠
            PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
            OSTimeDly(10);
            num=b.ucHour&0b00001111;                 //小时显示
            senddata(szdm[num]);
            PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
            OSTimeDly(10);
            num= (b.ucHour>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
            OSTimeDly(10);
            senddata(szdm[11]);
            PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
     }
     if(keyn==3)
     {    
        if(FF==2)
        {
      
          num=b.ucHour&0b00001111;                 //小时显示
          senddata(szdm[num]);
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
          OSTimeDly(10);
          num= (b.ucHour>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
          OSTimeDly(10);
          senddata(szdm[11]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
        };
            num= b.ucSec&0b00001111;
            senddata(szdm[num]);                   //秒显示
            PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
            OSTimeDly(10);
            num= (b.ucSec>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
            OSTimeDly(10);
            senddata(szdm[12]);                    //显示中间横杠
            PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
            OSTimeDly(10);
            num= b.ucMin&0b00001111;               //分钟显示
            senddata(szdm[num]);
            PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
            OSTimeDly(10);
            num= (b.ucMin>>4)&0b00001111;
            senddata(szdm[num]);
            PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
            OSTimeDly(10);
            senddata(szdm[12]);                    //显示中间横杠
            PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
            OSTimeDly(10);
        
     }
   }
    if((keyn>=4)&(keyn<=7))
    {
      
     if(keyn==4)
      {
          if(FF==2)
          {
            
          num= b.ucDay&0b00001111;
          senddata(szdm[num]);                   //日期,日显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          OSTimeDly(10);
          num= (b.ucDay>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
          OSTimeDly(10);
          };
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);              
          num= b.ucMonth&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
           PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);
          num= (b.ucMonth>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
          OSTimeDly(10);
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= b.ucYear&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= (b.ucYear>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
          OSTimeDly(10);
          senddata(szdm[0]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
          OSTimeDly(10);
          senddata(szdm[2]);                   //日期,月显示
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
          OSTimeDly(10);
          senddata(szdm[11]);//显示黑屏
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1; //位选,选择右面第8位
          OSTimeDly(10);
      }
     
     
     if(keyn==5)
      {
          if(FF==2){
            
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);              
          num= b.ucMonth&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
           PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);
          num= (b.ucMonth>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
          OSTimeDly(10);
          };
          num= b.ucDay&0b00001111;
          senddata(szdm[num]);                   //日期,日显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          OSTimeDly(10);
          num= (b.ucDay>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
          OSTimeDly(10);
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= b.ucYear&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= (b.ucYear>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
          OSTimeDly(10);
          senddata(szdm[0]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
          OSTimeDly(10);
          senddata(szdm[2]);                   //日期,月显示
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
          OSTimeDly(10);
          senddata(szdm[11]);//显示黑屏
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1; //位选,选择右面第8位
          OSTimeDly(10);
      }
    if(keyn==6)
      {   
        if(FF==2)
          {
        
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= b.ucYear&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第5位
          OSTimeDly(10);
          num= (b.ucYear>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=1;//位选,选择右面第6位
          OSTimeDly(10);
          senddata(szdm[0]);                   //日期,月显示
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第7位
          OSTimeDly(10);
          senddata(szdm[2]);                   //日期,月显示
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1;//位选,选择右面第8位
          OSTimeDly(10);
          senddata(szdm[11]);                    //显示黑屏
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=1; //位选,选择右面第8位
          OSTimeDly(10);
          };
          num= b.ucDay&0b00001111;
          senddata(szdm[num]);                   //日期,日显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          OSTimeDly(10);
          num= (b.ucDay>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第2位
          OSTimeDly(10);
          senddata(szdm[10]);                    //显示小数点
          PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);              
          num= b.ucMonth&0b00001111;
          senddata(szdm[num]);                   //日期,月显示
           PTDD_PTDD1=1;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第3位
          OSTimeDly(10);
          num= (b.ucMonth>>4)&0b00001111;
          senddata(szdm[num]);
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
          OSTimeDly(10);
          senddata(szdm[11]);                    //显示黑屏
          PTDD_PTDD1=0;PTDD_PTDD0=0;PTBD_PTBD3=0;//位选,选择右面第4位
          OSTimeDly(10);
          
      }
    if(keyn==7) 
      {   
        if(FF==2)
        {
          num=b.ucWeek&0b00001111;
          senddata(szdm[num]);                   //日期,星期显示
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          OSTimeDly(10);
          senddata(szdm[11]);                    //显示黑屏
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          
        };
          senddata(szdm[11]);                    //显示黑屏
          PTDD_PTDD1=1;PTDD_PTDD0=1;PTBD_PTBD3=0;//位选,选择右面第1位
          OSTimeDly(10);
      }
    }


}



void Delay_ms(void){//显示延时函数
  int i;
  int j;
  for(i=0;i<=5;i++){
    
     for(j=0;j<=200;j++);
  }
  }
  
void Delay_key(void){
  int i;
  int j;
  for(i=0;i<=80;i++){
    for(j=0;j<=500;j++);
  }
}
  
 void key_display(void){
     if(PTBD_PTBD0==0) {TPM2SC_TOIE=1;}
     if(PTBD_PTBD1==0) {TPM2SC_TOIE=1;}
     if(PTBD_PTBD2==0) {TPM2SC_TOIE=1;}
     if(PTAD_PTAD1==0) {TPM2SC_TOIE=1;} 
      }
 




⌨️ 快捷键说明

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