基于STC12C5408AD的记忆示波器
发布时间:2008/6/3 0:00:00 访问次数:355
示波器是电子测量的基本仪器。由于其具有图形显示实时、直观和形象等特性,在一般的物理实验室中它也是常用仪器之一。众所周知,示波器是依据输入电压调制的电子束扫描、荧屏余辉以及人眼的暂留效应等原理制成的;它要求输入周期信号;对于非周期性的信号,普通示波器是无能为力的,必须使用具有记忆功能的专用示波器,但这种示波器价格高昂,一般的物理实验室无法大量配置。
信息时代,个人计算机大量普及。普通物理实验室以及一般的中学都已配备了大量的计算机(以下称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 转换控制寄存器
(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汇编语言进行程序设计。
串行通讯主要是通讯协议和对异步串行通讯接口
示波器是电子测量的基本仪器。由于其具有图形显示实时、直观和形象等特性,在一般的物理实验室中它也是常用仪器之一。众所周知,示波器是依据输入电压调制的电子束扫描、荧屏余辉以及人眼的暂留效应等原理制成的;它要求输入周期信号;对于非周期性的信号,普通示波器是无能为力的,必须使用具有记忆功能的专用示波器,但这种示波器价格高昂,一般的物理实验室无法大量配置。
信息时代,个人计算机大量普及。普通物理实验室以及一般的中学都已配备了大量的计算机(以下称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 转换控制寄存器
(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汇编语言进行程序设计。
串行通讯主要是通讯协议和对异步串行通讯接口