k0_ram = 0 ;
kk_ram = 0 ;
}}}
if (en_ram){
boxing[adc_data]=box_buff[ik] ;
adc_data++ ;
if (adc_data > 96){
adc_data = 0x00 ;
en_ram = 0 ;
}}}
trigger的大小可以通过触发电平上移与触发电平下移按键来设置它的大小。
1.2.3、还原波形
GDM12864A是一个具有128点x 64点的点阵LCD。根据所选的LCD的特点,Y轴上只有64个点,所以能显示的数据范围为0到63而采样得到的数据为8位的二进制数据为0到255。为了能在这个LCD上显示只取8位数据的高6位。那么如何把这高6位的二进制数据转换成在LCD上的Y轴座标和数据值呢?我想了这样一个计算的方法:
LCD的纵向分为8个地址从上到下依次为0~7,每个地址段有8个数据点。在某个数据段中如果想依次让这些位从上到下点亮就需要依次向这个地址段送数据0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后这个地址段的8个数据点将不被点亮。实现的具体过程如图4 所示。
dat = dat>>2
y = 7
dat >= 8 ?
dat = dat – 8; y--;
y == 1 ?
dat > 7 ?
dat = 7 ;
dat = 0x80 >> dat
write_add(y,x) ;
write_data(dat) ;
否
否
否
图4 数据还原成波形上点的程序流程图
1.2.4、ADC采样频率控制
ADC的采样频率在上文已有提及,ADC中断的计算公式为: ,通过ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的设置就可以改变 的频率,再把TCNT0设置成不同的数值就可以得到这个系统所需要的各个采样频率值了。表1中的数据是通过上面的公式计算出来的数据再经实际的系统调试并修正后的数据。
表1 采样频率的设置
采样频率(KHz)
100
50
20
10
5
2
1
0.5
0.2
0.1
0.05
0.0033
,基于AVR的简易示波器设计