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

📄 mcu2.c~

📁 用atmega128单片机做的示波器
💻 C~
📖 第 1 页 / 共 2 页
字号:
                                               {
                                                           lcd_bus = 0x60;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           lcd_bus = j;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           
                                                           lcd_bus = 0x70;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           lcd_bus = h;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           
                                                           lcd_bus = lcd_buffer[240-h];
                                                           _CS = 0;
                                                            RS = 1;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 0;
                                                           _CS = 1;
                                                           
                                                           lcd_buffer[240-h]=0;  
                                               }     
                                  }  
                                         
                }
   else
             {
                            for(j=0;j<30;j++)
                                   {
                                      m=128;
                                      for(i=j*8;i<(j+1)*8;i++)
                                             {
                                                k=add[i+q]; 
                                                lcd_buffer[k]=(lcd_buffer[k]|m); 
                                                lcd_buffer[k+1]=(lcd_buffer[k+1]|m);
                                                if(add[i+q]<add[i+q+1])
                                                       {
                                                             for(k=add[i+q];k<add[i+q+1];k++)
                                                                      {
                                                                         lcd_buffer[k]=(lcd_buffer[k]|m);
                                                                      } 
                                                        }
                                                else
                                                        {
                                                             for(k=add[i+q];k>add[i+q+1];k--)
                                                                      {
                                                                         lcd_buffer[k]=(lcd_buffer[k]|m);
                                                                      }                   
                                                        }
                                               m>>=1;
                                           } 
    	                                         for(h=0;h<240;h++)
                                                       {
                                                           lcd_bus = 0x60;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           lcd_bus = j;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           
                                                           lcd_bus = 0x70;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           lcd_bus = h;
                                                           _CS = 0;
                                                            RS = 0;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 1;
                                                           _CS = 1;
                                                           
                                                           lcd_bus = lcd_buffer[240-h];
                                                           _CS = 0;
                                                            RS = 1;
                                                           _WR = 0;
                                                           _WR = 1;
                                                            RS = 0;
                                                           _CS = 1;
                                                           
                                                           lcd_buffer[240-h]=0;        
                                                        }
                                      }       
             }

    trig(); 
   delay_ms(ee);                                                                 
   
 }
 
void disp_volts()
{
SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0xf1);SdCmd(0x1f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(32);
SdCmd(0x70);SdCmd(130); 
				switch(biao)//计算键值
				    {
					case 0:sprintf(lcd_buffer,"  5V/div");break;
					case 1:sprintf(lcd_buffer,"  2V/div");break;
					case 2:sprintf(lcd_buffer,"  1V/div");break;
					case 3:sprintf(lcd_buffer,"0.5V/div");break;
					case 4:sprintf(lcd_buffer,"0.2V/div");break;
					case 5:sprintf(lcd_buffer,"0.1V/div");break;
					case 6:sprintf(lcd_buffer,"50mV/div");break;
					case 7:sprintf(lcd_buffer,"20mV/div");break;
					case 8:sprintf(lcd_buffer,"10mV/div");break;
					default:break;
				    }
ShowText(lcd_buffer); 
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x00);SdCmd(0xc5); //设置WLCR 寄存器 


}
void picture()
{
SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0x10);SdCmd(0x79);
SdCmd(0xf1);SdCmd(0x7f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(0);
SdCmd(0x70);SdCmd(60); 
sprintf(lcd_buffer,"Kunnsd Oscilloscope"); 
ShowText(lcd_buffer); 
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(19);
SdCmd(0x70);SdCmd(140); 
sprintf(lcd_buffer,"Designed by Kunnsd"); 
ShowText(lcd_buffer);
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x00);SdCmd(0xc5); //设置WLCR 寄存器 
}

void picture1()
{
SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0x10);SdCmd(0x69);
SdCmd(0xf1);SdCmd(0xff); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(8);
SdCmd(0x70);SdCmd(60); 
sprintf(lcd_buffer,"Kunnsd"); 
ShowText(lcd_buffer);
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍  
SdCmd(0x10);SdCmd(0x79);
SdCmd(0x60);SdCmd(19);
SdCmd(0x70);SdCmd(140); 
sprintf(lcd_buffer,"For my dear Weijie"); 
ShowText(lcd_buffer);
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
} 

void disp_time()
{
if(eep<=255)
{  

SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0xf1);SdCmd(0x1f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(34);
SdCmd(0x70);SdCmd(90); 
				switch(eep)//计算键值
				    {
					case 0:sprintf(lcd_buffer,"250ns ");qqq=1;ee=0;break;
					case 1:sprintf(lcd_buffer,"500ns ");qqq=0;ee=0;break;
					case 2:sprintf(lcd_buffer,"  1us ");qqq=0;ee=0;break;
					case 3:sprintf(lcd_buffer,"  5us ");qqq=0;ee=0;break;
					case 4:sprintf(lcd_buffer," 10us ");qqq=0;ee=0;break;
					case 5:sprintf(lcd_buffer," 50us ");qqq=0;ee=0;break;
					case 6:sprintf(lcd_buffer,"500us ");qqq=0;ee=0;break;
					case 7:sprintf(lcd_buffer,"  5ms ");qqq=0;ee=0;break;
					case 8:sprintf(lcd_buffer," 50ms ");qqq=0;ee=700;break;
					default:break;
				    }
ShowText(lcd_buffer); 
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x00);SdCmd(0xc5); //设置WLCR 寄存器 


} 
} 

void init_spi()
{
DDRB.7=0;
PORTB.7=1;
DDRB.5=0;
PORTB.5=1;
DDRB.4=0;
PORTB.4=1;
SPCR=0b11000101;
SPSR=0X00;
}
void disp_freq()
{
m=freq;
SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0xf1);SdCmd(0x1f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x60);SdCmd(31);
SdCmd(0x70);SdCmd(10);
if(m>=1000000)
{
m=m/1000;
sprintf(lcd_buffer,"%3d.%03dM",m/1000,m%1000); 
ShowText(lcd_buffer); 
}
else if(m>=1000)
{
sprintf(lcd_buffer,"%3d.%03dK",m/1000,m%1000); 
ShowText(lcd_buffer); 
}
else
{
SdCmd(0x60);SdCmd(30);
sprintf(lcd_buffer,"   %3dHz  ",m); 
ShowText(lcd_buffer); 
}
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x00);SdCmd(0xc5); //设置WLCR 寄存器  
}
void disp_cond()
{
SdCmd(0x00);SdCmd(0xcd); //设置WLCR 寄存器 
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x10);SdCmd(0x59);
SdCmd(0x60);SdCmd(35);
SdCmd(0x70);SdCmd(180);
if(zhi==0)
{
sprintf(lcd_buffer,"T"); 
ShowText(lcd_buffer); 
}
else
{
sprintf(lcd_buffer,"V"); 
ShowText(lcd_buffer); 
}
SdCmd(0x10);SdCmd(0x69);
SdCmd(0xf1);SdCmd(0x0f); //字型水平、垂直方向各放大2 倍 
SdCmd(0x00);SdCmd(0xc5); //设置WLCR 寄存器  


}
main()
{   
    DDRD=0XFF;
    DDRC=0XFF;
    PORTC.0=0;
    DDRB=0XFF;
    delay_us(10); 
    RES_FIFO=1;
    delay_us(10);
    RES_FIFO=0;
    delay_us(5);
    RES_FIFO=1; 
  _CS = 1;
  _RD = 1;
  _WR = 1;
  RS = 1;
  Init(); 
  TCCR0=0X69;
  OCR0=128;
  CleanScreen();
  delay_ms(1);
  picture1();
  delay_ms(1000); 
  CleanScreen();
  picture();
  delay_ms(1000); 
  CleanScreen();
 // can();
  SdCmd(0x12);SdCmd(0b10000001);    
  SdCmd(0xd0);SdCmd(0b00010000);   
  line();
  SdCmd(0x12);SdCmd(0b10110010);  
  SdCmd(0xd0);SdCmd(0b00000000);  
  CleanScreen();
  #asm("cli")
 init_spi();
 #asm("sei")    
  while(1)
     {
       if(hold==0)
       {
        display();
        if(holdb==0)
        {
        clr_hold();
        holdb=1;
        }
        
        }
        else
        {
         if(holdb==1)
         {
         can();
         holdb=0;
         }
        }
      if(j>=9)
   {               
   eep=i[0]; //读EEPROM
   freq=eep;
   freq=freq<<8;
   eep=i[1];
   freq=freq|eep;
   freq=freq<<8;
   eep=i[2];
   freq=freq|eep;
   freq=freq<<8;
   eep=i[3];
   freq=freq|eep;  
   disp_freq(); 
   eep=i[4];
   disp_time(); 
   tri=i[5];
   hold=i[6];
   biao=i[7];
   disp_volts();
   zhi=i[8];
   disp_cond();
   j=0;
   }     
     }
}

⌨️ 快捷键说明

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