📄 mcu2.c~
字号:
{
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 + -