“双核”示波器的硬件描述与程序设计

作者 魏坤 来源 《无线电》杂志 2009.01
发布时间 2010-12-24

将采样数据转换成显示数据

LCD 显示屏为320×240点阵的图形显示模块,内置RA8803 控制器。模块不仅可以显示单一的文本、图形,而且可以实现双图层的(“或”、“异或”、 “同或”、“与”四种逻辑关系)合成显示。在本示波器中方格线与波形是在不同的层上显示,显示关系为“或”,画方格线的程序见原程序,比较简单就不多说了,这里着重解释一下如何将采样数据转换成显示数据。

显示屏的地址结构见图3,由图可知对显示数据的操作最小单位为字节,因为 ATmega32的内存为2K字节,显示波形的区域为240×240,显示一屏波形所需处理的数据为7.2K,故ATmega32不可能同时处理一屏波形的全部数据,所以将一屏波形按字节分为30列,每次处理一列,处理完后直接显示,然后处理下一列。将AD转换所得的数据作为给LCD显示器写数据的列地址,因为一列数据位240字节,所以定义一个容量为240字节的数组lcd_buffer[240],lcd_buffer[ ]在初始时数据全为 00H,因为每次对数据的操作至少是一个字节,而每次处理的数据是所显示的一个点,所以对每列数据处理8次,定义一个变量m,在一列数据处理之前将其赋值为m=10000000B,处理该列第1个点时让该点垂直地址所对应的数组中的数据(00H)与m相或,并将结果存入数组,再将变量m右移一位,即 m=01000000B。让第2点垂直地址所对应的数组中的数据与m相或,并将结果存入数组,再将变量m右移一位,即m=00100000B ……这样直到一列数据中的8个点全处理完,重新给m赋值为m=10000000B,然后送显示。为了有较好显示效果,将显示相邻的点用线连接起来,在处理第一个点时预读出第二个点的垂直坐标,与第一个点的垂直坐标进行比较,如果比第一个点的垂直坐标小则从第一个点向第二个点拉线,如果比第一个点的垂直坐标大则从第二个点向第一个点拉线。具体程序如下:

“双核”示波器的硬件描述与程序设计
“双核”示波器的硬件描述与程序设计

用MCU1频率测量

用ATmega8测量频率使用了其中的两个计数器/定时器。设置TCCR1B=6使16位计数器/定时器T/C1工作在计数器方式,对外部T1(PD5)引脚输入的脉冲信号进行计数(下降沿触发)。

“双核”示波器的硬件描述与程序设计

“双核”示波器的硬件描述与程序设计

设置TCCR2=15使T/C2工作在CTC模式,内部时钟 1024分频(16M/1024=15.625kHz),设置OCR2=124,使中断时间为(124+1)/15.625=8ms,在低水平扫速时每隔 8ms中断一次,在高水平扫速时通过重新设置TCCR2=14,则每隔2ms中断一次,在这里以低水平扫速时为例,每次T/C2的中断中都首先记录下T /C1寄存器TCNT1当前的计数值,因此前后两次寄存器TCNT1的差值(time1_new-time1_old)或(65536- time1_old+time1_new)就是8ms时间内T1引脚输入的脉冲个数,为了提高测量精度程序对125个8ms内的脉冲个数进行累计,将累计值存入变量freq中,即可知限定时间为1s内有多少个脉冲,这样就将T1脚上的脉冲频率测量出来了,而T1脚上的频率是经过4分频后的,所以真正的频率是将测量的频率的4倍。具体程序如下:

“双核”示波器的硬件描述与程序设计
“双核”示波器的硬件描述与程序设计

将两个单片机联系起来

将两个单片机联系起来就是实现两个单片机之间的通信,在这里实际就是让MCU1控制MCU2,为了完成这一功能使用SPI通信。

首先介绍一下SPI的通信协议:SPI(串行外设接口)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换,广泛应用于各种工业控制领域。基于此标准,SPI系统可以直接与各个厂家生产的多种标准外围器件直接接口。SPI接口通常包含有4根线:串行时钟(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效的从机选择线SS。在从机选择线SS使能的前提下,主机的SCK脉冲将在数据线上传输主/从机的串行数据。主/从机的典型连接图如图4所示。

串行外设接口SPI允许AVR单片机和外设之间进行高速的同步数据传输。AVR单片机SPI的特点如下:全双工,3线同步数据传输,主/从机操作,LSB首先发送或MSB首先发送,7种可编程的比特率,传送中断结束,写碰撞标志检测,可以从闲置模式唤醒。SPI主机-从机的互连如图5所示,系统包括两个移位寄存器和一个主时钟发生器。通过将需要的从机的 SS引脚拉低,主机启动一次通信过程。主机和从机将需要的数据放到相应的移位寄存器,主机在SCK引脚上产生时钟脉冲以交换数据。主机的数据从MOSI移出,从从机MISO移入。从机的数据从MISO移出,从从机MOSI移入。主机通过将从机的SS拉高实现与从机的同步。

上一页123456下一页
标签: 示波器, 程序
电子爱好者 DIANZIAIHAOZHE.COM