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

📄 untitled.c

📁 dds 9850 的驱动代码
💻 C
字号:
int main(void){
unsigned long int adctemp,adctemp1,adctemp2,adctemp1_quick,adctemp2_quick;
unsigned long int temperture=0;unsigned char aa[30];
unsigned char abcd[93]={"  Hello! 陈羽旻/n"};///n Good to see you/n cym-try@tom.com/nQQ:104420700,/?|"}; 
main_init();

//温度计
        while (1){// Place your code here
        unsigned int i,temp;        
        //unsigned char r,g,b,input;//int temp1=1;
        //int num_temp;
        LCD_init();     
        delay5ms();
        LCD_ClearScreen(0);delay5ms_times(2);
        //for(i=0;i<10;i++){
        //LCD_WritePixel_pic(7,10,gImage_test,2);LCD_WritePixel_pic(52,10,gImage_test,1);
        //delay5ms_times(20);
        //LCD_WritePixel_pic(7,10,gImage_test,0);LCD_WritePixel_pic(52,10,gImage_test,1);
        //delay5ms_times(20);
        //LCD_WritePixel_pic(7,10,gImage_test,1);LCD_WritePixel_pic(52,10,gImage_test,2);
        //delay5ms_times(20);
        //}
        LCD_ClearScreen(0x0f);
        //LCD_WritePixel_pic(33,10,gImage_test,1);delay5ms_times(500);
        LCD_ClearScreen(0);delay5ms_times(2);

        //x_LCD_WriteNumber=30;y_LCD_WriteNumber=9;
        //LCD_WriteNumberS(99,6,0,15,15,15);
        //LCD_WritePixel_pic(5,5,gImage_test,0);//"温度"
        //LCD_WriteGB(27,24,GBK[2],15,15,15);
        //temp=(unsigned int)array[0]<<8;
        //temp=temp|array[1];
        //array[3]={"温"};
        //LCD_WriteNumberS(temp,6,0,15,15,15,6,0);
        //void Find_GB(char *s,unsigned char x, unsigned char y,unsigned char R,unsigned char G,unsigned char B){
        
        Num2String(-12354321,aa,6,3);
        //LCD_Write(aa,10,20,15,15,15);
        Flash_Words(abcd,1,10,0,255);
        //LCD_WriteASC(10, 30,&(ASCII[0][1]),15,15,15);
        while(1);}//test
/*        LCD_WriteGB(19,4,GB_du,0,9,15); 
        
        LCD_WriteGB(7,17,GB_can,3,6,15);
        LCD_WriteGB(19,17,GB_kao,3,4,12);
        LCD_WriteGB(31,17,GB_dian,2,2,8);
        LCD_WriteGB(43,17,GB_ya,2,0,7);
        
        LCD_WriteGB(7,30,GB_chuan,15,6,8);
        LCD_WriteGB(19,30,GB_gan,12,6,1);
        LCD_WriteGB(31,30,GB_qi,10,4,2);
        LCD_WriteGB(43,30,GB_dian,8,2,5);
        LCD_WriteGB(55,30,GB_ya,6,1,3);
 */       

/*      
        x_LCD_WriteNumber=33;y_LCD_WriteNumber=6;
        LCD_WriteNumber(19,4,0,15,15,15);
        x_LCD_WriteNumber=56;y_LCD_WriteNumber=19;
        LCD_WriteNumber(19,4,0,15,15,15);
        x_LCD_WriteNumber=68;y_LCD_WriteNumber=32;
        LCD_WriteNumber(19,4,0,15,15,15);
        
//        LCD_WritePixel(5,5,GB_wen,15,15,15,12,16);
        while(1) {
        
        //adctemp=read_adc(1);
        
        //adctemp1=47000*1023/11095*10000/read_adc_times(3,100);
        adctemp1=adctemp1_quick;
        adctemp2=adctemp2_quick;
       
        //adctemp=adctemp2*adctemp1/1023/100;
        adctemp=adctemp2*47000/adctemp1*1023/11095*10000/1023/100;
        adctemp1=47000*1023/11095*10000/adctemp1;
        //adctemp2=adctemp2/100;
        //temperture=(adctemp-660)*589/10+7500+(102300-adctemp)*1500/102300;//m C
        //temperture=*(TempABC+0);
        for (i=0;i<TempABCAAA*2;i+=2)
        {     
              //if(i>2){         //<Vmax
                      if(adctemp<*(TempABC+i+1)){
                                  //(Tmax-Tmin)                
                      temperture=*(TempABC+i) - *(TempABC+i-2);
                      // *(Vnow-Vmin)
                      temperture=temperture*(adctemp2*adctemp1 - *(TempABC+i-1)*100*1023) ;
                                  //          (Vmax-Vmin)
                      temperture=temperture*10/1023/(*(TempABC+i+1)-*(TempABC+i-1)) +*(TempABC+i-2)*1000;break;
                      }
              //}
        }
        //adctemp=read_adc(1);

        

        adctemp2=adctemp2/100;
        //adctemp=adctemp;
        temperture=temperture/10;
        x_LCD_WriteNumber=60;y_LCD_WriteNumber=48;
        LCD_WriteNumberS((unsigned int)adctemp,6,0,5,15,0,4,4);LCD_WriteNumber(15,6,0,15,15,15);//V_target

        x_LCD_WriteNumber=5;y_LCD_WriteNumber=48;
        LCD_WriteNumber(17,7,0,15,15,15);LCD_WriteNumber(18,7,0,15,15,15);LCD_WriteNumber(19,7,0,15,15,15);//"AD:"
        LCD_WriteNumberS((unsigned int)adctemp2,6,0,15,0,15,4,0);//AD_target
        x_LCD_WriteNumber=60;y_LCD_WriteNumber=19;
        LCD_WriteNumberS((unsigned int)adctemp1,6,0,0,10,10,4,4);LCD_WriteNumber(15,6,0,15,15,15);//V_ref   
        x_LCD_WriteNumber=40;y_LCD_WriteNumber=6;
        LCD_WriteNumberS(temperture,6,0,15,15,0,4,3);LCD_WriteNumber(16,6,0,15,15,15);//temperture
                
        LCD_Temperture_Pic((unsigned int)temperture);///200);
        adctemp1_quick=read_adc_times(3,1000)/10;
        adctemp2_quick=read_adc_times(1,1000)/10;
        
        
        x_LCD_WriteNumber=60;y_LCD_WriteNumber=48;
        LCD_WriteNumberS((unsigned int)adctemp,6,0,0,0,0,4,4);//V_target
        x_LCD_WriteNumber=5;y_LCD_WriteNumber=48;
        LCD_WriteNumber(17,7,0,15,15,15);LCD_WriteNumber(18,7,0,15,15,15);LCD_WriteNumber(19,7,0,15,15,15);//"AD:"
        LCD_WriteNumberS((unsigned int)adctemp2,6,0,0,0,0,4,0);//AD_target 
        x_LCD_WriteNumber=60;y_LCD_WriteNumber=19;
        LCD_WriteNumberS((unsigned int)adctemp1,6,0,0,0,0,4,4);//V_ref
        x_LCD_WriteNumber=40;y_LCD_WriteNumber=6;
        LCD_WriteNumberS(temperture,6,0,0,0,0,4,3);//temperture        
        }     
        return 0; 
        };
*/
/*
while(1){unsigned char i,j,k=0,rise=1;
        
        LCD_init();     
        delay5ms();
        
        LCD_ClearScreen(255);//delay5ms_times(2);
        LCD_ClearScreen(0);//delay5ms_times(2);
        
        while(1)       {//k++;if(k==3)k=1;
                //for(j=128;j>0;j-=3){
                //        for(i=0;i<3;i++){
                            //LCD_WritePixel_pic(40*i+j,10,39+40*i+j,51,gImage_test,i);
                            LCD_WritePixel_pic(12,4,gImage_test,1);
                            delay5ms_times(200);
                //        }        
                //}
        }
        
            while(1){}    
        
        }
*/
return 1;
}
/*
void Led_test(void){
static long int showtime=1;static unsigned char showtime_b=0;
DDRD=0xff;DDRC=0xFF;
if(showtime_b==0){
   if(showtime==0x10000){showtime_b=1;}else{showtime=showtime<<1;}
   }
   else if(showtime_b==1){
   if(showtime==0x01){showtime_b=0;}else{showtime=showtime>>1;}
   }
   
   PORTD=showtime/512;
   PORTC=(showtime & 0x01F8)>>3;
   PORTB=(PORTB & 0x1F) | ((showtime & 0x0007)<<5); 
}
unsigned char Get_AD_Key(void){
unsigned char Key=255,Keys,input;//temp_ad,;
        for(input=0;input<8;input++){
                if(read_adc(input)>500){
                        if(Key==255){Key=0;}
                Key+=input;
                Keys++;
                }
        }
Key=Key/Keys;
return Key;   
}
*/
/*void temp_shuzu(unsigned char R,unsigned char G,unsigned char B){ 
unsigned char a[3][3];
unsigned char *p;unsigned char i,j;unsigned char ii=4,jj=4;
p=a[0];                           //原代码中p初始化错误【已修改】

for (i=0;i<ii; i++) 
for (j=0; j<jj; j++)             //原代码中多了一个分号【已修改】
*(p+i*jj+j)=i*jj+j;
for(i=0;i<ii;i++){
  for (j=0; j<jj;j++){
          if(j==0){y_LCD_WriteNumber+=10;}
          LCD_WriteNumberS(*(p+i*jj+j),8,0,R,G,B);
  }
  x_LCD_WriteNumber=0;
}
//x_LCD_WriteNumber=3*8;
if(y_LCD_WriteNumber>67){y_LCD_WriteNumber=0;}
if(x_LCD_WriteNumber>98){x_LCD_WriteNumber=0;}
}
*/
unsigned int read_adc(unsigned char adc_input){
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
unsigned long int read_adc_times(unsigned char adc_input,unsigned int adc_times) {
unsigned long int temp=0;unsigned int times; 
for (times=0;times<adc_times;times++){
        temp+=read_adc(adc_input);
}
return temp;

}
void LCD_Temperture_Pic(unsigned int Tempertur){
unsigned int x,y;
unsigned int Temp_pic;
if(Tempertur<5001)
{
Temp_pic=(unsigned long int)Tempertur*98/5000;
        for(y = 60; y < 65; y ++){
                for(x = 0; x < Temp_pic; x ++){
                        LCD_DrawPoint(x,y,1,3+(65-y)*2,0+(65-y)*3);
                }
                for(x = Temp_pic+1; x < 98; x ++){
                        LCD_DrawPoint(x,y,0,0,0);
                }
        }
}
else if((Tempertur>5001)&&(Tempertur<10001))
{
Temp_pic=(unsigned long int)Tempertur*98/10000;
        for(y = 60; y < 65; y ++){
                for(x = 0; x < Temp_pic; x ++){
                        LCD_DrawPoint(x,y,1,3+(65-y)*2,0+(65-y)*3);
                }
                for(x = Temp_pic+1; x < 98; x ++){
                        LCD_DrawPoint(x,y,0,0,0);
                }
        }
}
else{;}
}
/*void WRITE_AD9850_div_p(unsigned long int freq,unsigned char phase){
unsigned char i;
     Con_FQ_UD_Low();
     data_OUT=phase & 0xF8;      
     Con_W_CLK_High();
     Con_W_CLK_Low();
     Con_FQ_UD_High();
     for(i=32;i>0;i-=8){
                data_OUT=(freq>>i) & 0x000000ff;      //
                Con_W_CLK_High();
                Con_W_CLK_Low();
                
                }
     Con_FQ_UD_High();       //
     Con_FQ_UD_Low();
}*/
void WRITE_AD9850(void){  
     unsigned char i;
     Con_FQ_UD_Low();
     //CON_word[0]=CON_word[0]&0xFC; //
     for(i=0;i<5;i++){
                
                data_OUT=CON_word[i];      //
                Con_W_CLK_High();
                Con_W_CLK_Low();
                
                }
     Con_FQ_UD_High();       //
}
        /*
        Num2String(100000,aa,6,3);
        LCD_Write_Text(aa,30,16,15,15,15);
        Num2String(2500,aa,4,4);
        LCD_Write_Text(aa,30,29,15,15,15);
        Num2String(450,aa,3,2);
        LCD_Write_Text(aa,30,42,15,15,15);
        
        LCD_Write_Text(sanjiaowave,5,54,15,15,8);
        LCD_Write_Text(sanjiaowave,25,54,15,15,8);
                

        delay_Long(50);
        
        LCD_PaintPixel (10,0,36,14,0,0,0); //白色底       
        LCD_Write_Text(zhengxian,11,1,2,8,5);//重写“正弦”
        delay_Long(5);
        LCD_PaintPixel (36,0,62,14,8,3,4);//转位置,底色
        LCD_Write_Text(fangbo,37,1,2,8,10);//重写“方波”
        */
        if(code[3]==~code[2]){
                if(code[2]==REMOTE_CODE_ENTITY_DOWN ||code[2]==REMOTE_CODE_PPC_DOWN)     
                {i-=(21475*k);WRITE_AD9850_div_s(i,0);}//down
                else if(code[2]==REMOTE_CODE_ENTITY_UP ||code[2]==REMOTE_CODE_PPC_UP)
                {i+=(21475*k);WRITE_AD9850_div_s(i,0);}//up
                else if(code[2]==REMOTE_CODE_ENTITY_LEFT||code[2]==REMOTE_CODE_PPC_LEFT)
                {k/=10;}//left
                else if(code[2]==REMOTE_CODE_ENTITY_RIGHT||code[2]==REMOTE_CODE_PPC_RIGHT)     
                {k*=10;}//right
                else{PORTB=code[2];delay_ms(1000);PORTB=0;delay_ms(1000);}
        code[2]=0;
        }

⌨️ 快捷键说明

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