G01R13/02
1.一种数字存储示波器,其特征在于,本发明专利涉及一种数字存储示波器,本发明以 80C51为核心,由信号采集、数据处理、波形显示、控制面板等功能模块组成。
2.根据权利要求1所述的一种数字存储示波器,其特征在于,本发明分成A/D转换部分、 D/A转换部分、波形存储部分、键盘输入控制四大部分组成。
3.根据权利要求1所述的一种数字存储示波器,其特征在于,本发明具有实时采样实时 显示的功能,又可以对某段波形进行即时存储和连续回放显示,输出波形可以在示波器X轴 上放大2倍或4倍输出显示。
4.根据权利要求1所述的一种数字存储示波器,其特征在于,本发明采用AT80C51单片 机控制系统的运行。
一种数字存储示波器
技术领域
本发明专利涉及单片机技术领域,尤其涉及一种数字存储示波器。
背景技术
大部分数字存储示波器采用DMA(直接数据存取 )方式控制采样、储存和显示数 据,解决了单片机运行速度上限造成的数据带宽瓶颈 ,同时兼作锯齿波发生器的输入数 据,简化了电路。本次设计采用单片机控制采样、存储和显示数据,采用二进制计数器产生 数据存储地址。具有示波功能,可随时锁存当前波形 。
每隔一段时间对输入的模拟信号进行采样,然后经过A/D转换,把这些数字化后的 信息按一定的顺序存入RAM中,当采样频率足够高时,就可以实现信号的不失真存储。当需 要观察这些信息时,只要以合适的频率把这些信息从存储器RAM按原顺序取出,经D/A转换 和LPF滤波后送至示波器就可以观察到稳定的还原后的波形 。
发明专利内容
本发明专利涉及一种数字存储示波器,本发明以80C51为核心,由信号采集、数据处理、 波形显示、控制面板等功能模块组成;本发明分成A/D转换部分、D/A转换部分、波形存储部 分、键盘输入控制四大部分组成;本发明具有实时采样实时显示的功能,又可以对某段波形 进行即时存储和连续回放显示,输出波形可以在示波器X轴上放大2倍或4倍输出显示。
附图说明
图1:简易DSO方框图。
具体实施方式
为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施 例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释 本发明专利,并不用于限定本发明专利。
本发明专利涉及一种数字存储示波器,本发明以80C51为核心,由信号采集、数据 处理、波形显示、控制面板等功能模块组成;本发明分成A/D转换部分、D/A转换部分、波形存 储部分、键盘输入控制四大部分组成;本发明具有实时采样实时显示的功能,又可以对某段 波形进行即时存储和连续回放显示,输出波形可以在示波器X轴上放大2倍或4倍输出显示。
进一步的,本发明采用AT80C51单片机控制系统的运行。
进一步的,本发明的存储模块由单片机启动A/D转换,读入采集到的数据,然后转 存到RAM内,期间可以把数据送到D/A转换芯片输出。此方案设计简单,易于实现。但是在一 个采样周期内单片机要完成多个读写外部数据的操作,严重制约了数据的采样速度。考虑 到数据传输不是很快,而且是单向传输(数据存到 RAM),在没有专用DMA控制器的情况下, 单纯用单片机控制系统的数据采集和存储。
进一步的,本发明的器件清单包括:
(1)ADC0809 一片
(2)DAC0832 一片
(3)AT80C51单片机
(4)拨码开关
进一步的,按工作原理分,A/D转换器的主要种类有:逐次逼近式、双计分式、计数比较 式和并行式。ADC0809为8位逐次式、单片CMOS集成A/D转换器。主要性能:
(1)分辨率8位;
(2)精度:小于±1LSB;
(3)单+5V供电,模拟输入电压范围为0~+5V;
(4)具有锁存控制的8路输入模拟开关;
(5)可锁存三态输出,输出与TTL电平兼容;
(6)功耗为15mW;
(7)不必进行零点和满度调整;
(8)转换速度取决于芯片外接的时钟频率。时钟频率范围:10~1280kHz。
进一步的,ADC0809与单片机的接口可以采用查询方式和中断方式。在查询方式 中,由于ADC0809片内没有时钟,故利用80C51提供的地址锁存允许信号ALE经过D触发器二 分频后获得。 ALE引脚的频率是单片机的1/6,我们所用的单片机时钟频率为12MHz,则ALE 引脚的频率为2MHz。在经过二分频后为1MHz,所以ADC0809能可靠工作。采用中断方式可大 大节省CPU时间。当转换结束时,EOC向单片机发出中断申请信号。响应中断请求后,由中段 服务子程序读取A/D转换结果并存储到RAM中,然后启动ADC0809的下一次转换。
进一步的,本次设计的简易数字存储示波器的方框图如图1所示: 因为本设计中, 数据采集和存储采用了单片机控制,所以软件主要功能是控制采样,存储和输出以及对系 统各部分工作进行协调。在系统初始化时,由CPU控制总线,在需要进行数据采集时,先设定 好采样点数和采样速率,然后让出总线,由ADC0809进行数据采集,并直接送到80C51储存单 元,采集数据完成后,存储在存储单元的数据送入DAC0832,然后通过示波器显示出来。软件 关键部分为按键控制部分,数据采集部分和D/A转换部分。按键控制部分主要控制存储波 形,输出存储波形,波形在时间轴上的放大。把存储在内存中的数据按照设定的时间送给D/ A转换器,改变送出数据时间间隔从而改变波形的延伸倍数。数据采集部分进行数据采集, 并通过单片机控制存储在片内或片外RAM中。D/A转换部分包括读取片内RAM或片外RAM判断 间隔时间然后输出波形送给示波器显示,实现存储波形的显示、实时显示、在时间轴上的延 伸等子功能。程序清单如下:
START: ORG 0000H
MOV SP,60H
CLR 0D0H.1
CLR 0D0H.2
KEYOP:
CLR F0; 清标志F0=1时有键盘输入;
MOV R2,#00H; R2键值(00~1BH);
MOV R3,#00H;
MOV R4,#02H;
MOV R5,#01111111B; 扫描D7列;
K_AGAIN: MOV A,R5; 输出扫描列;
MOV DPTR,#0002H;
MOVX @DPTR,A;
NOP;
NOP;
MOVX A,@DPTR; 输入行值;
ORL A,#0FH; 将输入的值变为XXXX1111,
CPL A; 求反,输入的值变为XXXX0000,
JNZ K_OPRAT;求反后,如果不是全"0",表示有键按下;
MOV A,R5
RR A
MOV R5,A
MOV A,R2
ADD A,#04H
MOV R2,A
DJNZ R4,K_AGAIN
CLR F0; 没有键值按下,强调F=0
LJMP XX;
K_OPRAT: CPL A; 恢复键值;
SWAP A; 4位键值置换到低4位;
SETB C;
K_NEXT: RRC A;
JNC K_OP1; 移位行位值=0,由R5得到行值;
INC R3;
CJNE R3,#04H,K_NEXT; 行值为00~03,当R5=4, 4行查表结束;
MOV R3,#00H;
LJMP K_AGAIN;;
有键按下,到行值后出来,进入键处理子程序;
K_OP1: SETB F0
MOV A,R3;
ADD A,R2
JZ K_1; 转K_1;
CJNE A,#01H,X2;
LJMP K_2; 转K_2;
X2: CJNE A,#02H,X3;
LJMP K_3; 转K_3;
X3: CJNE A,#03H,X4;
LJMP K_4; 转K_4;
X4: CJNE A,#04H,X5
LJMP K_5; 转K_5
X5: CJNE A,#05H,X6
LJMP K_6; 转K_6
X6: CJNE A,#06H,XX
CJNE A,#07H,XX;
进入AD转换
XX: ADNUMB EQU 30H;
MOV DPTR,#0003H;锁存通道号“0~7”,启动AD0809进行转换
MOV A,ADNUMB; 取通道号,通道号在内存“ADNUMB”单元;
MOVX @DPTR,A
ADEOC1:
MOV DPTR,#0007H; 循环读取EOC信号
JNB ACC.4,ADEOC1; 据EOC信号,AD转换是否结束
MOV DPTR,#0003H; 读取转换结果
MOV r7,#0
MOV r0,#32H; 设置存储启始地址
MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
INC R7
CJNE R7,#20,ADEOC1;判断20个数据是否转换完毕;
进入DA转换
DASTART0:
MOV R1,32H; 从片内存储地址首地址开始读取
MOV R6,#0
MOV DPTR,#0004H;
DALOOP0: MOV A,R1;
INC R1
MOVX @DPTR,A 向DAC0832送数据;
设置X轴输出间隔时间
TIMESET: JB 0D0H.1,LX;
JNB 0D0H.2,LY;
LCALL TIME1; 读取间隔时间
LCALL TIME1;
LX: LCALL TIME1;
LY: LCALL TIME1;
INC R6
CJNE R6,#20,XY; 是否存储单元读取结束,结束则循环执行
LJMP DALOOP0
XY: LJMP KEYOP
K_1:
MOV DPTR,#0003H
MOV A,ADNUMB
MOVX @DPTR,A
ADEOC:
MOV DPTR,#0007H; 循环读取EOC信号
JNB ACC.4,ADEOC; 根据EOC信号,AD转换是否结束
MOV DPTR,#0003H; 读取转换结果
MOV R7,#0
MOV R0,#0032H; 设置片外存储起始地址
MOVX A,@DPTR
MOVX @R0,A
INC R0
INC DPTR
INC R7
CJNE R7,#100,ADEOC; 判断100个数据是否转换完毕
JMP KEYOP
K_2:
DASTART2:
MOV R0,#0032H; 从片外存储地址首地址开始读取
MOV R6,#0
MOV DPTR,#0004H; 向DAC0832送数据
DALOOP2:
MOVX A,@R0;
INC R0
MOVX @DPTR,A;
LCALL TIME1; 读取间隔时间
INC R6
CJNE R6,#100,DASTART2; 是否存储单元读取结束,结束则循环执行
LJMP DALOOP2; 循环读取数据
K_3:
DASTART3:
MOV R0,#0032H
MOV R6,#0
MOV DPTR,#0004H;
DALOOP3:
MOVX A,@R0;
INC R0
MOVX @DPTR,A;
LCALL TIME1;
LCALL TIME1
INC R6
CJNE R6,#100,DASTART3
JB P2.7,MN
LJMP DALOOP3
MN: LJMP START
K_4:
DASTART4:
MOV R0,#0032H
MOV R6,#0
MOV DPTR,#0004H;
DALOOP4:
MOVX A,@R0;
INC R0
MOVX @DPTR,A;
LCALL TIME1;
LCALL TIME1;
LCALL TIME1;
LCALL TIME1;
INC R6
CJNE R6,#100,DASTART4
JB P2.7,MN
LJMP DALOOP4
K_5: SETB 0D0H.1; 为实时输出波形周期为2倍,置位0D0H.1
LJMP XX;
K_6: SETB 0D0H.2; 为实时输出波形周期为4倍,置位0D0H.2
LJMP XX;
TIME1:
MOV R7,#04H
TIME_1:
NOP
NOP
DJNZ R7,TIME_1;
RET
以上所述仅为本发明专利的较佳实施例而已,并不用以限制本发明专利,凡在本发明 专利的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明专利的保 护范围之内。
本文发布于:2024-09-24 11:21:52,感谢您对本站的认可!
本文链接:https://www.17tex.com/tex/3/81097.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |