Noto:这是在魏坤的示波器基础上改的示波器程序,主控mega128,显示驱动ili9320,看我的文库里面有ili9320的函数。自己备注了一些,#include<>#include<>#include<>#include<>#include<>#include<>#include<>#definefifodataPINC####;unsignedlonginttime0_old,time0_new,freq_time;//计数的几个变量unsignedlongintfreq,ffreq=0,datt,datty;//bittime_ok,RAMINC=0,RAMDEC=0,RUN=1,XINC=0,XDEC=0,YINC=0,YDEC=0;unsignedintx1_add=10,x2_add=310,y1_add=24,y2_add=216;unsignedchartime=4,volt=4,dcac=1,T_ok=1,BIAO=0;//中断用到的几个变量unsignedintq=0;unsignedcharsdata[2500],cl[330];//cl[]前320个的初值为145,用来画线//时间计数interrupt[P]p_isr(void){ time0_new=TCNT1; //8ms到,记录当前T/C0的计数值if(time0_new>=time0_old)freq=freq+(time0_new-time0_old); elsefreq=freq+(65536-time0_old+time0_new); time0_old=time0_new; if(++freq_time>=125)//计数到一秒整{ freq_time=0;ffreq=freq*;//ffreq的作用?真正的频率值,freq*?freq不是1s的计数值time_ok=1; freq=0; }}//切换BIAO的显示,x,y,或者空白interrupt[EXT_INT0]voidext_int0_isr(void){delay_ms(25);if(==0)//INT0低电平有效{if(==0)//{if(RUN==0)//RUN?全局的使能{if(BIAO==0)//这是一个复用键,和pb4到6和用{BIAO=1;LCD_PutString(20,250,"X",0x0000,back);}elseif(BIAO==1){BIAO=2;LCD_PutString(20,250,"Y",0x0000,back);}else{BIAO=0;//三个档位一次变换LCD_PutString(20,250,"",0x0000,back);}}}elseif(==0)//控制线的左移和右移{if(BIAO==1)XINC=1;elseif(BIAO==2)YINC=1;}elseif(==0){if(BIAO==1)XDEC=1;elseif(BIAO==2)YDEC=1;}}while(==0);}//扫速减interrupt[EXT_INT1]voidext_int1_isr(void){delay_ms(25);if(==0)//INT1{if(RUN==1)//RUN?{if(time!=13)//对time计数{time++;}spi_out(time);//spi传输time,volt,dcacspi_out(volt);spi_out(dcac);Write_EEPROM(time,0);//写eeprom,time的值和地址0while(==0);}else{RAMDEC=1;//?????????}}}//灵敏度加interrupt[EXT_INT2]voidext_int2_isr(void){delay_ms(25);if(==0)//INT2{if(volt!=0)//{volt--;}spi_out(time);spi_out(volt);spi_out(dcac);Write_EEPROM(volt,1);//把电压灵敏度写到eeprom的地址1}while(==0);}//RUN/STOPinterrupt[EXT_INT3]voidext_int3_isr(void){delay_ms(25);if(P
魏坤示波器源程序 来自淘豆网m.daumloan.com转载请标明出处.