基于STC12C5408AD的记忆示波器
1 引言
示波器是电子测量的基本仪器。由于其具有图形显示实时、直观和形象等特性,在一般的物理实验室中它也是常用仪器之一。众所周知,示波器是依据输入电压调制的电子束扫描、荧屏余辉以及人眼的暂留效应等原理制成的;它要求输入周期信号;对于非周期性的信号,普通示波器是无能为力的,必须使用具有记忆功能的专用示波器,但这种示波器价格高昂,一般的物理实验室无法大量配置。
信息时代,个人计算机大量普及。普通物理实验室以及一般的中学都已配备了大量的计算机(以下称PC)。但这些PC大都用于文字信息处理和计算工作,其内在的功能还远远没有发挥,实际上造成了巨大的浪费。
我们知道,PC具有很强的图像显示功能。如果能够开发、利用这一功能,配上外部接口电路,将一些物理过程,如温度、湿度、压力等等,经过相应的传感器,将非电量转换成电压量,再经调理电路处理后送入STC单片机进行A/D转换,转换成数字量后再由串口发送到PC机,由PC机进行存储和图形显示,从而构成了记忆示波器。
2 STC12C5408AD简介
STC12C5408AD是新一代增强型8051单片机,速度快,集成度高,电压范围宽(3.8 V~5.5 V),指令系统和MCS-51系列完全兼容。其内部还有8 KBFlash程序存储器,512字节RAM、2 KB EEPROM、8通道10位ADC、4路PWM以及硬件看门狗(WDT)等宝贵资源,性价比极高。它的23个I/O口、内部电源供电系统、时钟电路、复位电路以及看门狗电路都经过特殊处理,具有超强的抗干扰能力。STC12C5408AD具有ISP功能,用户在自己的目标系统上,经串口和PC连接,就可直接由PC对其进行ISP下载编程,时间仅几秒钟,使用非常方便。又由于编程方便和快捷,因而可在用户程序的任意位置插入"SJMP$"死循环指令作"断点"(测试后删除),重新汇编、下载和运行;程序运行到此便停住,用户可方便地检查当前的硬件真实状态;如需检测某些寄存器的状态。可在"断点"指令前插入读寄存器并串发到PC的指令段,便可在PC上显示当前的寄存器状态供检测,可节省专用编程器和仿真机的昂贵开支。
3 A/D转换
本系统中主要应用了该单片机的10位A/D功能。STC12C5408AD的8路10位A/D转换口位于P1.0~P1.7,速度可达100 kHz,其A/D功能由有关寄存器来设置。
上电复位后,P1口为弱上拉型I/O状态。选用P1.3脚作A/D通道,必须先将其设置为开漏(或高阻输入)状态。P13KL子程序就是完成这个设置。
3.1 转换控制寄存器
转换控制寄存器ADC_CONTR(地址0C5H)格式如图1所示,各位的具体含义如下:
(1) A/D电源控制位D7
D7=1时,打开A/D电源;初次打开时,延时1ms,待A/D电路供电稳定后,再启动A/D,以保证A/D精度。ADC_ON子程序如下:
(2) 转换速度控制位D6D5
D6D5=00时,转换速度最慢(840个时钟)
D6D5=11时,转换速度最快(210个时钟),本例用11。
(3) 模拟输入通道选择位D2D1D0
其位值为i(i=0,1,2,…,7)时,选中P1.i为A/D输入通道;本例选P1.3,i=3。
(4) 转换启动位D3
D3=1,启动A/D转换;启动后硬件自动清零。
(5) 转换结束标志位D4
A/D转换完毕,D4=1;必须由软件清0。
3.2 转换结果寄存器
A/D结果高8位寄存器ADC_DATA,地址OC6H(D7~D0);
A/D结果低2位寄存器ADC_LW02,地址OBEH(D1D0);
3.3 A/D转换子程序RDAD
本例由于用PC机屏幕显示A/D波形,PC机Y轴方向只能由8位数据控制,故只用高8位。每次读毕再发给PC机处理。
3.4 基本程序清单
4 PC软件设计
PC软件由串行通讯和图形显示两部分组成。为提高运行速度,用PC汇编语言进行程序设计。
串行通讯主要是通讯协议和对异步串行通讯接口的有关寄存器如通讯线控制寄存器3FBH、通讯状态寄存器3FDH、数据发送保持/数据接收缓冲寄存器3F8H等进行相应的设置和处理。
图形显示部分主要有640×350彩色图形显示方式的设置,X、Y坐标轴的描绘及图像点的绘制和清除。鉴于PC汇编语言较繁杂,在此不具体介绍。
5 效果实例
图2、图3分别是RC充放电A/D电路和RC微分A/D电路,图4、5、6分别为电容充电(按下按钮1)、放电(按下按钮2)、微分(按下按钮3)过程的波形图;每调整一下电位器,曲线就相应变化;图形清晰、翔实、实时性好,真实、生动地描绘了上述过程电容电压的实际变化情况,使用非常方便。
在PC已经非常普及的情况下,花几百元配置这样一个系统,是非常值得的。如果再加上传感器和调理电路,其用途将会非常广泛。
STC12C5408AD 记忆示波器 8051 单片机 相关文章:
- 基于C8051F020的通用串口适配器的设计(06-23)
- 一种可靠的低成本嵌入式以太网接口设计(06-28)
- 89C51单片机为控制核心的开关电源优化设计(11-04)
- 单片机的比例电磁铁控制技术(10-30)
- C8051Fxxx程序丢失问题的分析(11-20)
- 基于CC1010芯片的微型无线数据收发模块的设计(04-08)