单片机信号灯设计仿真

2024-05-04

单片机信号灯设计仿真(精选十篇)

单片机信号灯设计仿真 篇1

1 从实际问题中抽象出控制模型

1.1 找出研究问题的功能、技术指标

汽车信号灯模拟控制系统是用一组开关模拟汽车运行状态,通过检测开关的状态判断汽车的运行状态,然后控制相应的指示灯亮、灭或者闪烁。

汽车信号指示灯有6个:左右头灯、左右尾灯、仪表板上的左右指示灯。5个开关表示5种状态:刹车、应急、停靠、左转、右转。具体功能要求为:

(1)汽车直行,6个指示灯全灭。

(2)刹车时,2个尾灯亮。如刹车时正在转弯,相应的转弯信号灯不受影响。

(3)应急开关合上时,6个灯全闪烁。

(4)汽车停靠时,2个头灯和2个尾灯均闪烁。

(5)汽车左转时,左头灯、左尾灯和左仪表灯闪烁。

(6)汽车右转时,右头灯、右尾灯和右仪表灯闪烁。

(7)出故障时,2个仪表灯闪烁。

开关和信号灯的闪烁关系见表1。

1.2 闪烁频率的处理

在程序中,以延时子程序延时的长短来调整闪烁频率。应急和停靠时的闪烁频率应较高,其余情况下的闪烁频率应较低。汽车灯闪烁原理如图1所示,当P1.0为低电平时,灯亮;当P1.0为高电平时,灯灭。通过控制灯的亮、灭时间形成闪烁效果。

2 系统总体设计

2.1 可行性讨论

目前,单片机的功能已经十分强大,程序存储器、AD转换电路、驱动电路等都集中到一个芯片上,可做到价格与普通数字芯片相当而功能却十分强大[2]。用单片机控制一个检测报警系统,与以往用数字逻辑电路组成的控制系统相比,具有更大的灵活性,功能也更强,并具有智能性,在实际工作中是一种行之有效的方法。因此,从科学原理上分析是可行的。

2.2 初步方案设计(如图2所示)

3 硬件设计

(1)89C51系统:用于控制整个系统及存储程序等。

(2)开关输入电路:开关输入使用P3.0,P3.1,P3.3和P3.5,分别为刹车、应急、停靠、左转和右转开关。原理如图3所示,当开关合上时,P3.0输入低电平;开关断开时,P3.0输入高电平。电阻选用5 k,电源5 V,开关合上时电流I=U/R=0.001(A)=1(m A),功率P=UI=0.005(W),实际选用1/8 W即可。

(3)输出驱动电路。输出驱动电路使用P 1口的P1.0~P1.5驱动6个发光二极管,分别表示左前灯、右前灯、左仪表灯、右仪表灯、左尾灯和右尾灯。发光二极管通过5~15 mA的电流时发光,选择10 mA。本身的电压降2 V。电阻阻值:R=U/I=(5-2)/0.01=300(Ω),功率:P=UI=0.03(W),实际选用1/8 W的就能符合要求。

(4)系统硬件电路设计如图4所示。

4 软件设计

软件设计的工作是利用89C51指令系统提供的指令,根据功能要求编制程序。编制程序前应先对工作寄存器进行分配,再根据功能要求编制出250 mS和500 mS的延时子程序,选择开关输入代码和信号控制代码。

(1)工作寄存器的分配:主程序使用工作寄存器R0,R1,R2和R3,延时250 mS子程序使用寄存器R4和R5,延时500 mS子程序使用寄存器R6和R7。

(2)延时子程序:应急和停靠的闪烁频率较高,取亮和灭各250 mS,其他情况的闪烁频率较低,取亮和灭各500 mS,因此需要延时250 mS和延时500 mS两个子程序。

(3)开关输入代码:开关输入使用P3口(没用到的设为1)。例:刹车开关D0为0,其余为1,则16进制代码为FEH。

(4)信号控制代码:使用P1口(没用到的设为1)。输出驱动电路使用P1口的P1.0~P1.5驱动6个发光二极管,分别表示6个灯,对应关系是:P1.0左前灯、P1.1右前灯、P1.2左仪表灯、P1.3右仪表灯、P1.4左尾灯、P1.5右尾灯。当P1口的相应位为0时灯亮,为1时灯灭。例:刹车时,两个尾灯亮,D5和D4为0,其余为1,则16进制代码为CFH。

(5)主程序设计、编制:如图5所示,根据程序流程图,利用89C51单片机指令系统编制程序。根据输入P3口的开关状态,检测是否有开关合上,若没有则继续检测;若有则分析是哪个开关合上,然后控制相应的信号灯。

5 元件表

根据系统设计要求,需要用到的元件见表2。

6 结束语

本系统能按预想实现功能,但在实际汽车中的应用仍未尝试。汽车在行驶过程中的振动可能对系统的稳性造成影响,需继续研究、探索。本系统也可应用于摩托车、电动自行车等交通工具,特别是近几年来随着社会经济的发展和人们生活水平的提高,具有高效、节能、低噪声、无污染等优点的代步工具—电动车[3]得到了快速发展,但绝大多数电动车没有安装信号灯,若能为电动车安装这种价格低廉且安装简单、可靠性高的信号灯,将进一步提高电动车的安全性。

参考文献

[1]姚凯学,孟传良.单片机原理及应用[M].重庆:重庆大学出版社,1998.

[2]付晓光.单片机原理与实用技术[M].北京:清华大学出版社/北方交通大学出版社,2004.

单片机信号灯设计仿真 篇2

关键词:单片机AT89S52、DAC0832、液晶1602 Abstract: this system capitalize on AT89s52,it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wave generate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile.In this system it can control wave form choosing, frequency, range,can have the sine wave, the square-wave, the triangular wave.Simultaneously may also take the frequency measurement frequency,and displays them through liquid crystal display of 1602.this design includes three modules.They are D/A conversion module, wave generate module and liquid crystal display of LED module.In this design, the wave generator into wave form module and D/A conversion module are discussed in detail.key word: AT89S52, DAC0832, liquid crystal 1602.目录

1.系统设计

1.1 设计要求

1.2方案设计与论证

1.2.1 信号发生电路方案论证 1.2.2 单片机的选择论证 1.2.3 显示方案论证 1.2.4 键盘方案论证 1.3 总体系统设计 1.4 硬件实现及单元电路设计 1.4.1 单片机最小系统的设计

1.4.2 波形产生模块设计 1.4.3 显示模块的设计 1.4.4 键盘模块的设计

1.5 软件设计流程 1.6 源程序

2.输出波形的种类与频率的测试

2.1 测试仪器及测试说明

2.2 测试结果 3.设计心的及体会 4.附录 4.1 参考文献 4.2 附图

1、系统设计

经过考虑,我们确定方案如下:利用AT89S52单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

1.1、设计要求

1、利用单片机采用软件设计方法产生三种波形 2)、三种波形可通过键盘选择 3)、波形频率可调

4)、需显示波形的种类及其平率

1.2方案设计与论证

1.2.1 信号发生电路方案论证

方案一:通过单片机控制D/A,输出三种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证

方案一:AT89S52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵

以上两种方案综合考虑,选择方案一

1.2.3 显示方案论证

方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。

方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容易控制,可以显示字母。

以上两种方案综合考虑,选择方案二。

1.2.4 键盘方案论证

方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。

方案二:编码式键盘。编码式键盘的按键触点接于74LS148芯片。当键盘上没有闭合时,所有键都断开,当某一键闭合时,该键对应的编码由74LS148输出。

以上两种方案综合考虑,选择方案一。

1.3总体系统设计

该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。图(1)为系统的总体框图

图(1)总体方框图

1.4硬件实现及单元电路设计

1.4.1单片机最小系统的设计

89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(2)89C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:

(1 有可供用户使用的大量I/O口线。(2 内部存储器容量有限。(3 应用系统开发具有特殊性。

图(2)89C51单片机最小系统

1.4.2 波形产生模块设计

由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。其电路图如下:

图(3)波形产生电路

如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。DAC0832的为八位数据并行输入的,其结构图如下:

图(4)DAC0832的内部结构

1.4.3 显示模块的设计

通过液晶1602显示输出的波形、频率,其电路图如下:

图(5)液晶显示

如上图所示,1602的八位数据端接单片机的P1口,其三个使能端RS、RW、E分别接单片机的P3.2—P3.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。

1.4.4 键盘显示模块的设计

本系统采用独立键盘,其连接电路图如下:

图(6)键盘

图中键盘独立键盘引出的八跟线分别接单片机的P2口,只用其第四列,因此在程序初始化时P2.7脚给低电平。如图开关3用来切换输出波形、开关7和8用

来调节频率的加减。当按开关7时输出波形的频率增加,按开关8时输出波形的频率减小。

1.5 软件设计流程

本系统采用AT89S52单片机,用编程的方法来产生三种波形,并通过编程 来切换三种波形以及波形频率的改变。

具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。

软件调通后,通过编程器下载到AT89S52芯片中,然后插到系统中即可独立完成所有的控制。

软件的流程图如下:

图(7)程序流程图

1.6源程序

#include #define uchar unsigned char #define uint unsigned int

sbit lcdrw=P3^3;sbit lcdrs=P3^2;sbit lcde=P3^4;sbit d=P2^7;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit cs=P3^5;sbit wr=P3^6;uchar s1num,a,ys,j;uint fre;uchar code tosin[256]={ 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2, 0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5, 0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1, 0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd, 0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1, 0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda, 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc, 0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99, 0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51, 0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30, 0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16, 0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06, 0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05, 0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15, 0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e, 0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72, 0x76,0x79,0x7c,0x80 };/*正弦波码 */ void delay(uint z //延时子程序 { uchar i,j;for(i=z;i>0;i--for(j=110;j>0;j--;} void delay1(uint y { uint i;for(i=y;i>0;i--;} void write_com(uchar com //1602写指令

{ lcdrs=0;P1=com;delay(5;lcde=1;delay(5;lcde=0;} void write_data(uchar date //1602数据 { lcdrs=1;P1=date;delay(5;lcde=1;delay(5;lcde=0;} void init(//初始化 { lcdrw=0;lcde=0;wr=0;cs=0;

write_com(0x38;write_com(0x0c;write_com(0x06;write_com(0x01;write_com(0x80+0x00;write_data(0x77;//写wave: write_data(0x61;write_data(0x76;write_data(0x65;write_data(0x3a;write_com(0x80+0x40;//写 f: write_data(0x66;write_data(0x3a;} void write_f(uint date //写频率 { uchar qian,bai,shi,ge;qian=date/1000;bai=date/100%10;shi=date/10%10;ge=date%10;write_com(0x80+0x42;write_data(0x30+qian;

write_data(0x30+bai;write_data(0x30+shi;write_data(0x30+ge;write_data(0x48;write_data(0x5a;} void xsf(//显示频率 { if(s1num==1 { fre=(1000/(9+3*ys;write_f(fre;} if(s1num==2 { fre=(100000/(3*ys;write_f(fre;} if(s1num==3 { fre=(1000/(15+3*ys;write_f(fre;}

} void keyscanf({ d=0;if(s1==0 { delay(5;if(s1==0 { while(!s1;s1num++;if(s1num==1 { ys=0;write_com(0x80+0x05;write_data(0x73;//写sine: write_data(0x69;write_data(0x6e;write_data(0x65;write_data(0x20;write_data(0x20;} if(s1num==2

{ ys=10;write_com(0x80+0x05;write_data(0x73;//写squrae write_data(0x71;write_data(0x75;write_data(0x61;write_data(0x72;write_data(0x65;} if(s1num==3 { ys=0;write_com(0x80+0x05;//train write_data(0x74;write_data(0x72;write_data(0x61;write_data(0x69;write_data(0x6e;write_data(0x20;} if(s1num==4 {

s1num=0;P1=0;write_com(0x80+0x05;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_com(0x80+0x42;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;write_data(0x20;} } } if(s2==0 { delay(5;if(s2==0

{ while(!s2;ys++;} } if(s3==0 { delay(5;if(s3==0 { while(!s3;ys--;} } } void main({ init(;while(1 { keyscanf(;if(s1num==1 //正弦波// {

for(j=0;j<255;j++ { P0=tosin[j];delay1(ys;} } if(s1num==2 //方波// { P0=0xff;delay1(ys;P0=0;delay1(ys;} if(s1num==3 //三角波// { if(a<128 { P0=a;delay1(ys;} else { P0=255-a;

delay1(ys;} a++;}

if(!(s1&s2&s3 { xsf(;} } }

2、输出波形的种类与频率的测试

2.1、测量仪器及测试说明

测量仪器:稳压电源、示波器、数字万用表。

测量说明:正弦波、矩形波、三角波信号的输出,通过对独立键盘来实现其的不同波形的输出以及其频率的改变。

2.2测试过程

当程序下进去时经过初始化,液晶屏的上只显示“wave:”和“f:“,当开关三按一下是此时输出波形为正弦波,按两下时输出为方波,按三下时输出为三角波。另外两个开关可以调节频率,三种波形的频率可调范围不同,分别如下: 正弦波:1—180HZ 方 波:1——3.3KHZ 三角波:1——180HZ

根据示波器的波形频率的显示计算出三种波形的频率计算公式如下: 正弦波:f=(1000/(9+3*ys 方 波:f=(100000/(3*ys 三角波:f=(1000/(15+3*ys 其中ys为延时的变量。三种波形的仿真波形图如下:

图(8)正弦波图形

图(9)方波图形

图(10)三角波图行

2.3、测试结果

各项指标均达到要求。

测试数据如下:

1)、产生正弦波、方波、三角波基本实现

2)、三种波形的频率都可调,但不能步进的调节,其中方波的可调范围最广为1—3.3KHZ,其他两种波形的频率范围不大1—180HZ 3)、显示部分基本实现 4)、键盘功能实现

3、设计心的及体会

通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果,进一步加深了我对专业知识的了解和认识以及动手的能力。虽然在这次设计中对于所学知识的运用和衔接还不够熟练,作品完成的还不是很出色。但是我将在以后的工作和学习中继续努力、不断完善。这个设计是对我们过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

4、附录

4.1 参考文献

[1] 戴仙金主编 51单片机及其C语言汇编程序开发实例 清华大学出版社,2008 [2] 高吉祥主编 全国大学生电子设计竞赛培训系列教程 电子工业出版社,2007 [3] 杨素行主编 模拟电子技术基础简明教程 高等教育出版社,2007 [4] 蒋辉平主编 单片机原理与应用设计 北京航空航天大学出版社 2007 4.2 附图

基于单片机的升压电路设计与仿真 篇3

摘要:以单片机为分析对象探索升压电路的设计与仿真方式,在此过程中需要分析Boost电路升压原理,从而更加全面的分析硬件设备电路的整体设计方案,此外,从软件设计层面分析其功能的发挥与设定。通过大量的分析与研究可以发现,通过此种方式设计电路更加直接,可以达到预期的结果。

关键词:单机片;升压电路;设计与仿真

前言

三项逆变电源在设计阶段需要注意升压电路的设计,一般而言应该在直流电源与逆变电路之间放置相应的升压电路,而最常用的是DC/DC模式,其功能的发挥在于将蓄电池组合体升压到DC540V。但是实际应用过程中会出现电压波动情况,因此应该保证整个输入电压应该保持在108V左右,输出电压则应该保持在540V左右。Boost升压电路的整个结构相对比较简单,整个结构系统中一般只有一个开关管,这种设计方案可以解决传统设计电路对电源功效的损耗,该种结构体系的体积相对较小。

一、设计模式

整个电路的设计电压应该经过严格调试后直接传送到STC12C54010AD单片机,这是因为该种单片机具有八个通道,并且可以持续性的保证输出PWM驱动信号,可以满足一般电路动能的需求,因此该种电路的设计并不需要增加A/D转换电路,也不需要额外增加PWM信号路径,只需要调试PI计算方法就可以严密的控制电路信号传输模式与信号内容,从而让信号传输形成一个完整的循环模式,保证电压的稳定输入与输出。在此过程中需要借助单片机I/O接口,并在此基础之上建立A/D转换口,在DC2DC升压系统的维护下保证整个设计电路系统的完整性,从而最大程度的改善系统功能是设计的关键所在[1]。

二、硬件设计方案

在单机片电路中,如果开关管的通态时间为ton,则电路连通阶段的电能感应量值为L上的积蓄能,可以表示为EIiton。如果断电持续时间为toff,那么在断电阶段的电感L释放能量的积蓄能可以表示为(U0-E)Iitoff。如果整个电路的运行相对稳定,那么一个周期T内的电感L释放的积蓄能量与最终积蓄能量是相等的,那么可以最终表述为:

其中 表示电路的输出电压高于电源实际电压,因此此种电路被称之为升压电路,英文称之为Boost变换器。它也直接表示升压的比值,可以通过相应的方法进行调节,以此来改变整体电压的输出量。如果将升压比的倒数记为β,那么β就表示输出的电压量小于电源的电压。升压电路的输入电压高于电源电压主要是因为L电路储备电压能具有调节电压的作用,此外,电容也可以保持整体电路电压保持稳定。如果将电路中的电能损耗忽略不计,那么电源的供电能量仅仅是由电压负载消耗的,而升压电路则可以被直接当作直流变压器。

整个电路的系统的组成要见还包括二极管,它的最大直流电量可以表述为 。一般电路的电压都有承载度,因此,如果考虑电路的电压、元器件的成本等,那么应该选择RM200HA224F规格的。

电路的电容设计应该以电路的电感电流连续模式为基础,考量电容器内部二极管的电流承载力Id,应该维持整个电流流向为平直电流,因此,在指定的电压限制中,应该设置电容的电压为: 。其中 为波纹电压,规定取值为10V,因此C=31.69(μF)。在电路通电以及充电的阶段内,一般电容的规定容量必须可以进行负载供电,因此所要求的电容也相对较小,而实际选择的电容一般取值为50μF,耐压值应该保持在900V。

对隔离驱动电路进行设计的方法一般是直接驱动法、隔离驱动法和集成模块驱动电路、该逆变电源采用FXB系列集成模块EXB841来驱动IGBT模块。集成模块驱动电路与分立元件的驱动电路相比,有体积小、效率高、可靠性高的优点。EXB841适用于开关频率为40kHz以下的开关操作,可以用来驱动400A,600V或300A,1200V的IGBT。它采用单电源工作,供电简单,内置高速光耦实现输入、输出的隔离,同时,芯片内部设有过电流保护电路,且过电流保护后在封锁自身输出的同时,由专门的故障信号输出端发出故障信号[2]。

电路整体设计完成后应该对电路进行保护系统设计,直流电源中的功率器件IGBT是系统的主要部件,也是最昂贵的部件。由于它工作在高频、高压、大电流的状态,所以也是最容易损坏的部件[3]。因此IGBT的保护工作显得十分重要。该系统中具有较为完备的保护电路及保护程序,保护电路主要有以下几个部分:输出过压保护电路;输入过压、欠压保护电路;IGBT短路保护电路;温度保护电路。

结论:综上所述,在现代物理学发展的推动下,对升压电路的相关研究也随之提高,尤其是在单片机应用基础之上对其相关技术与仿真的研究推动我国电力系统的发展,更成为实现我国工业现代化的强有力保障。

参考文献:

[1]薛俭雷,田春华,万永刚.太阳能电池升压电路的设计与仿真[J].微型机与应用,2012,13:22-24.

[2]白林绪,申利飞,王聪.基于51单片机控制的数字可调高效开关稳压电源设计[J].电源世界,2010,09:21-24+60.

基于单片机的信号发生器设计 篇4

信号发生器称为信号源或振荡器, 在日常生产实践和科技领域中有着广泛的应用, 是实验室的主要运用的信号源, 同时是各种电路实验不可缺少的设备之一。目前大多数的波形信号发生器都是由硬件搭建而成, 可以产生正弦波、方波、三角波等波形, 调试较麻烦, 电路比较复杂, 价格较高, 体积较大。

单片机具有低功耗、控制功能强、扩展灵活、微型化和使用方便等优点[1,2]。本文设计的基于单片机和D/A的信号发生器, 用户可以通过按键分别设置输出正弦波、方波、三角波及其频率、幅度参数, 还直观显示波形信息, 电路简单且便于调节、控制, 价格较低, 应用前景广阔。

2系统结构框图

设计一个基于单片机的信号发生器, 要求输出信号频率稳定, 抗干扰能力强。系统以STC12C5A60S2单片机作为控制中心, 控制和协调各个模块的工作, 通过程序的编写对系统进行初始化, 完成对液晶显示、波形的产生、按键响应、增益调节等功能。系统的整体设计结构由图1所示, 由单片机STC12C5A60S2、液晶显示模块LCD1602、波形产生模块、程控放大模块和负压产生模块组成。用户可以通过按键分别设置输出正弦波、方波、三角波及其频率、幅度参数, 当用户设置好输出的参数后, 单片机通过查表输出对应的波形, 其中波形是根据DDS的原理来产生, 输出的波形经一级程控放大电路, 从而增大、控制输出信号幅度。

3硬件电路设计

硬件电路设计包括:主控模块的选择及其最小系统、按键模块、LCD1602液晶显示模块、DAC0832信号产生模块 (波形产生模块) 、程控放大模块和负压产生模块等主要电路设计。

3.1主控模块的选择

系统采用STC12C5A60S2单片机作为系统的主控制芯片, 完成检测按键、波形输出控制、液晶显示等相关功能。STC12C5A60S系列单片机是宏晶科技生产的新一代8051单片机, 指令代码完全兼容传统8051, 但速度快8~12倍, 有一个全双工异步串行口, 内部集成MAX810专用复位电路, 2路PWM, 8路高速10位D/A转换 (250K/S) , I/O口多且可定义, 并有四种状态, 2级中断优先级的中断系统, 2个16位的定时计数器实现定时和计数功能, 还有EEPROM功能[1,2]。该单片机具有便于调试、高速、低功耗、廉价、稳定性好等优点。

3.2 STC12C5A60S2单片机最小系统

单片机最小系统包括了单片机、复位电路、时钟电路。单片机可以通过手动按键复位, 按下复位键S1后使单片机进入上电的初始状态。系统时钟电路选用了12MHz的晶振, 一个机器周期的时间为1μs。因为P0口是漏极开路的结构, 加了10k的排阻作P0口的上拉电阻。排阻接到单片机的P0.0-P0.7和VCC端口, 单片机最小系统如图2所示[3]。

3.3按键模块的设计

系统中需要按键不多, 采用简单的独立按键, 按键直接到单独I/O口 (按键S1、S2、S3、S4、S5分别连接到单片机的9脚 (RESET) 、P1.3、P1.4、P1.5、P1.6端) , CPU可以通过向此端口发出指令得到按键的状态, 按键另一端接地。按键在初始状态下时, I/O的状态为高电平;按键处于按下状态时, I/O口的状态为低电平, 单片机根据I/O口是否为高电平或低电平来判断哪个按键被按下。

按键的功能:按键S1为复位键, 实现系统复位切换回初始状态;按键S2为功能键, 切换到参数设置界面;按键S3为切换键, 可以切换到不同参数进行设置;按键S4为递增按键;按键S5为递减按键。

3.4 LCD1602显示模块与主控芯片的设计

系统选用LCD1602液晶显示器, 方便直观显示更多的参数[3], 显示器显示波形类型、幅度、频率。LCD1602与单片机的连接如图3所示。单片机P0口作为数据端口, 液晶显示接单片机的P0.0-P0.7端口, LCD1602的EN、R/W、RS分别接单片机端口的P1.2、P1.1、P1.0, 其中EN是下降沿触发的片选信号, R/W是读写信号, RS是寄存器选择信号。

3.5 DAC0832信号产生模块设计

系统采用2个DAC0832芯片, 一个用来产生波形, 另一个来改变幅度。DAC0832是一个先进的数模转换器, 可以实现输出正弦波、三角波和方波, 可以通过查询存储在单片机的ROM表来实现波形的产生[4,5,6,7,8]。

DAC0832波形发生电路如图4所示, DAC0832转换的结果是采用电流形式输出, 为了得到模拟电压信号, 用运放A实现电流电压转换并放大。运放A输出电压V的范围为-Vref-0V, 为了使输出信号幅度范围以0V为中间值, 使用了运放B搭建成一个加法器进行信号放大和偏置调整。TL431提供基准电压2.5V, 一方面供DAC0832作基准电压VREF使用, 另一方面作运放B的加法器一路输入电压。图4中的两个运放TL072需要正负电源来供电, 但系统供电只有一个+5V电源, 为了得到一个-5V电源, 系统使用了ICL7660芯片的转换器工作模式实现产生-5V电源。

3.6程控放大模块设计

系统选用了DAC0832与外部电路构成了程控放大器来控制改变幅度, DAC0832中的DI0-DI7端口连接单片机的P2.0-P2.7端口, 其基准电压是接到波形发生电路的输出, Vout=Vref×Data/256。其中Data的值通过改变单片机连接到数模转换数据口的电平值就可以改变其放大倍数。程控放大模块电路如图5所示。

4系统总线路图

系统总电路如图6所示, 由单片机最小系统、液晶显示电路、电源电路、程控电路、波形发生电路、负压产生电路等组成。

5软件设计

系统中主要运用Keil和Proteus两个程序软件进行程序编译和仿真。单片机上电后初始化, 产生默认设置的波形, 对应的幅度和频率等参数, 然后单片机判断设定按键是否按下, 如果是则进入相关参数的设置, 如果否则返回, 系统的主要程序流程图如图7所示。

LCD1602初始化子信号流程图如图8所示, 首先调用液晶自定义的字库, 设置DDRAM地址, 在第一行显示, 然后设置显示数据的首地址, 循环量设置, 不断地取字符代码, 第二行显示过程也是如此, 直到显示完毕。

6系统测试及数据分析

示波器上测得输出正弦波、三角波、正弦波图形如图9所示。正弦波幅度为2V和频率为1000Hz的正弦波, 信号发生器上液晶显示的峰峰值为2.08V, 频率为997.0Hz, 幅度相对误差4.0%, 频率相对误差0.30%;三角波幅度为2V和频率为1000Hz的三角波, 信号发生器上液晶显示的峰峰值为2.04V, 频率为1002.0Hz, 幅度相对误差2.0%, 频率相对误差0.20%;输出方波幅度为2V和频率为1000Hz的方波, 信号发生器液晶显示上显示的峰峰值为2.09V, 频率为998.4Hz, 幅度相对误差4.5%, 频率相对误差0.16%。

对系统生产其它信号的幅度和频率进行实验, 实验数据如下表1所示。

通过比较与分析以上实验数据, 频率1000~5000Hz和幅度0~2V, 两者的误差都是≤5%。系统可以实现设定和显示频率、波形类型、幅度这些参数, 实现了正弦波、三角波、方波的产生、显示, 信号频率、幅度可调等功能, 波形质量较好。

7总结

设计了基于单片机的信号发生器, 对系统硬件电路和软件作了设计。系统是通过STC12C5A60S2单片机编程的方法, 将要输出的波形预先存在半导体存储器中, 经过数模转换、放大等处理后, 输出该波形的信号。用按键通过单片机程序实现了波形类型、频率大小、幅度大小的控制, 并用液晶直观显示各信息。输出信号频率、幅度稳定, 频率范围1000~5000Hz和幅度范围0~2V, 两者的误差都是≤5%, 系统抗干扰能力强, 扩展性强, 制作简易。

摘要:以单片机为核心控制器, 结合D/A转换、LCD1602显示、程控放大器, 设计输出频率、幅度可调的正弦波、方波和三角波信号发生器, 对系统主要硬件电路和软件进行设计。经实验测试, 系统实现了各波产生、显示, 信号频率、幅度可调等功能, 频率和幅度误差都是5%以内, 波形质量较好。系统电路简单、体积小、成本低、精度较高、工作稳定和使用方便直观, 具有广泛的应用前景。

关键词:信号发生器,单片机,DAC0832,LCD1602,程控放大器

参考文献

[1]陈桂友.增强型8051单片机实用开发技术[M].北京:北京航空航天大学出版社, 2010.

[2]张鑫.单片机原理及应用 (第2版) [M].北京:电子工业出版社, 2013.

[3]徐玮.51单片机的综合学习系统-1602字符型液晶显示[J].电子制作, 2008, (01) :21-25.

[4]石桂明, 冀勇刚, 彭海龙.基于AD9850的信号发生器的设计与实现[J].现代电子技术, 2010, (01) :117-119.

[5]王春会, 吴迪.基于DAC0832的波形发生器[J].辽宁师专学报 (自然科学版) , 2011, (03) :83-85.

[6]郭小霞, 管鑫, 李思聪.基于FPGA的DDS信号发生器的设计[J].电子技术, 2014, (10) :37-39.

[7]吴兴波, 贾彬彬, 赵亮.基于单片机的三相正弦波发生器设计[J].吉林化工学院学报, 2012, (09) :86-89.

单片机信号灯设计仿真 篇5

目的: 1.掌握单片机仿真软件的使用。

2.掌握单片机汇编语言程序设计的基本方法。

3.掌握单片机编程、调试方法。

设计题目:

1、试编写程序。统计内RAM 30H一50H单元中FFH的个数,并将统计结果存51H。

2、从内RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。

3、设外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。

4、试编写程序,求出内RAM20H单元中“1”的个数,并将结果存入21H单元。

5、试编一程序,分别统计在内部RAM的30H~50H单元的数据区中奇数和偶数的个数,并将奇数和偶数的个数分别存放在51H和52H单元中。

6、在2000H~2004H单元中,存有5个压缩的BCD码,试编程将它们转换成ASCII码,并存入2005H开始的连续单元中。

实验报告格式:

一.设计题目:

二.编程实现:(左边为实验前的程序,右边为实验后调试正确的程序)

三.实验小结:

软件实验小结:

可以从以下几个方面总结

1. 进一步掌握并理解单片机指令系统的功能及应用(熟悉MCS—51单片机指令

系统)。

2. 加深对寻址方式的理解。

3. 了解程序设计过程,掌握单片机程序设计的基本方法。

4. 掌握编程、调试方法(包括排除程序错误、决解问题的方法)。

5. 掌握单片机仿真软件的使用(包括对以后项目开发的好处)

6. 通过编程设计、软件调试,进一步了解和掌握单片机软、硬件的工作原理,为

基于单片机的多路信号采集系统设计 篇6

1 信号采集系统的设计

本数据采集系统的控制器采用Atmel公司的AT89S51单片机,

本信号采集系统输入的模拟量为一些常用工业上的非高速变化信号, 例如温度、压力、流量等, 考虑到系统设计的复杂性和成本制造的经济性, 我们选用美国TI公司设计生产的12位串行模数转换器TLC2543, 它是12位开关电容逐次逼近型A/D转换器, 通过串行接口与主控制器或外设通信。TLC2543片内有一个14通道的模拟多路复用器, 可对11个输入通道或3个内部自校准电压进行采集, 采样保持是自动进行的。每次采样结束后, EOC输出变成高电平, 表明转换已经结束, 可以读取数据。这些转换器均接受差分外部基准输入, 实现比例型A/D转换。其特点有:

(1) 分辨率:12位; (2) 转换时间:10us; (3) 11个模拟输入通道; (4) 内建3种自测试模式; (5) 采样保持功能; (6) 线性误差:±1LSB; (7) 转换结束标志输出; (8) 片内系统时钟; (9) 单极性或者双极性输出; (10) 可编程的MSB在前或LSB在前; (11) 可编程输出数据长度。

在串口通信过程中, 单片机串口使用的是TTL电平, PC机使用的是RS232电平, 单片机与PC机不能直接连接, 通常需要在单片机端通过MAX232芯片将电平转换为RS232电平格式。信号采集系统电路原理图如图1所示。

2 信号采集系统程序设计

本信号采集系统的程序主要包括用C51程序编写的信号采集与处理程序, 以及单片机与PC机串口通信的程序, 还有在PC机上用V B编写的显示与数据统计的程序。

单片机通过部分I/O口对模数转换器进行控制, 利用软件来完成与TLC2543的串行通信, 在通信时严格按照芯片定义的工作时序来编程。首先, 将控制字通过DIN引脚写入芯片内部, 确定模拟通道的地址, 输出的位数, 高位在前还是低位在前以及是否有极性输出, 在每个上升沿输入数据被串入DIN引脚;其次, 延时一段时间, 进行数据转换, 直到EOC引脚变高转换结束;然后, 读出转换的数据, 在向D I N引脚写入数据时, D O U T输出的是上一次的转换数据, 应当丢弃再读一次, 就是当前的转换数据, 先读结果的高4位, 再读结果的低8位, 合成在一起就是12位的A/D转换值。数据采集程序流程图如图2所示。

单片机与PC机的串口通信程序是将TLC2543芯片转换完成的数字数据通过单片机的串口以一定的速率发送给PC机, 本系统采用的是9600b/s的比特率。传输的数据以6个字节为一个单位, 前两个字节为同步代码, 中间两个字节为数据代码, 最后两个字节为校验码。单片机与PC机通信程序流程图如图3所示。

PC机上的显示界面用Visual Basic语言编写, 通过RS232串口线接受单片机发送过来的数据, 并进行存储、统计以及实时显示到计算机屏幕上。在显示数据的属性设置上, 设置成只要外界有数据传送, 随即就引发事件, 这样就能实时反映模拟量的变化。同时还可以加上保存、数据统计等按钮。图4为PC机接收串口数据程序流程图。

3 结语

在实际使用中, 我们可以看到现阶段串口通信或一线式通信越来越成为数据传输的主流方式, 它不仅可以减少使用控制芯片的I/O引脚, 也可以大大简化电路设计的复杂性, 节约硬件制作的成本。在后续的使用中, 也可以与PC机或其他控制芯片相连接, 组建起控制网络, 实现数据的统一存储与信号的集中控制, 在实际工程中有广泛的实用价值。

参考文献

[1]张志刚.常用A/D、D/A器件手册[M].电子工业出版社, 2011.

[2]谈宏华, 陈康, 涂坦等.基于AT89C51的数据采集系统设计[J].机电一体化, 2008 (6) .

[3]求是科技.单片机典型模块设计实例导航[M].人民邮电出版社, 2008.

[4]范逸之.visual Basic与RS232串行通讯控制[M].中国青年出版社, 2007.

基于单片机的函数信号发生器设计 篇7

信号发生器分类信号发生器是指产生所需参数的电测试信号的仪器。在通信、广播、电视系统, 在工业、农业、生物医学领域内, 函数信号发生器在实验室和设备检测中都具有十分广泛的用途[1]。目前市场上大多数函数信号发生器都是非单片机控制的, 但是这种电路存在波形质量差, 功能简单, 控制难, 可调范围小, 电路复杂和体积大等缺点。采用单片函数发生器可产生正弦波、方波等, 操作简单易行, 用D/A转换器的输出来改变调节电压, 可以实现数控调整频率, 满足设计要求[2]。

2系统总体设计

采用的是AT89C51单片机用软件实现信号的输出。该单片机是一个微型计算机, 包括中央处理器CPU, RAM, ROM、I/O接口电路、定时计数器、串行通讯等, 是波形设计的核心[3]。其信号发生器构成系统框图如下图所示:

利用AT89C51单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形, 再通过D/A转换器DAC0832将数字信号转换成模拟信号, 滤波放大, 最终由示波器显示出来, 通过键盘来控制四种波形的类型选择、频率变化, 最终通过数码管输出显示其各自的类型以及数值[4]。

3硬件系统设计

3.1 主控电路

AT89C51是片内4k FlashROM的单片机, 因此这种芯片构成的最小系统简单﹑可靠[5]。用AT89C51单片机构成最小应用系统时, 只要将单片机接上时钟电路和复位电路即可。由于集成度的限制, 最小应用系统只能用作一些小型的控制单元。其应用特点:有可供用户使用的大量I/O口线;内部存储器容量有限;应用系统开发具有特殊性。

AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1, 它们可以工作在计数器和定时两种模式并且有4种工作方式[6]。在波形发生器中, 将其作定时器使用, 通过计算来精确地确定波形的两个采样点输出之间所需的延迟时间。其中模式1采用的是16位计数器计数方式, 当T0或T1被允许计数后, 从设定的初值开始加计数, 最高位产生溢出时向发中断CPU请求, 从而完成波形的输出与频率调节。

3.2 D/A转换

DAC0832是采用CMOS工艺制成的8分辨率的D/A转换集成芯片, 由8位输入锁存器、8位DAC寄存器、8位D/A转换器及转换控制电路四部分构成[7]。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式, DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。其原理图为:

其中D/A转换结果采用电流形式输出。若需要相应的模拟电压信号, 可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻, 也可外接。DAC0832逻辑输入满足TTL电平, 可直接与TTL电路或微机电路连接。

3.3 放大与低通滤波电路

由单片机采用编程方法产生四种波形、通过DA转换模块DAC0832在进过滤波放大之后输出[8]。其电路图如下:

其中第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1, 第二级运算放大器的作用是将V1通过反向放大电路- (R2/R1) 倍, 从而通过调节R2的大小来调整输出幅值在0-5V之间变化。

3.4 显示电路设计

显示电路是用来显示波形信号的频率, 使得整个系统更加合理, 从经济的角度出发, 所以显示器件采用LED数码管显示器。而且LED数码管是采用共阳极接法, 当主控端口输出一个低电平后, 与其相对应的数码管即变亮, 显示所需数据。

4软件系统设计

根据设计的要求, 对各种波形的频率和幅度进行程序的编写, 并将所写程序装入单片机的程序存储器中。在程序运行中, 当接收到来自外界的命令, 需要输出某种波形时再调用相应的中断服务子程序和波形发生程序, 经电路的数/模转换器和运算放大器处理后, 从信号发生器的输出端口输出。其中程序应包含以下几个模块:初始化程序;键盘扫描程序与处理程序;定时器0服务程序;正弦波发生程序及其服务程序;三角波发生程序;锯齿波发生程序;方波发生程序。主程序流图如下所示:

系统值子程序的调用是通过按键的选择来实现, 在取得按键相应的键值后, 然后对参数值进行计算得到相应的频率值与应当输出的波形, 启动计时器和相应的中断服务程序, 并同时用数码管显示输出的波形与频率, 再直接查询程序中预先设置的数据值, 通过转换输出相应的电压与定时器的延时获得不同频率值, 从而形成所需的各种波形。其中三角波部分程序:

if (P1_0==0&&P1_1==1) //三角波

{

if (s2==255) ss2=1;

if (ss2==0) s2++;

if (ss2==1)

{

s2--;

if (s2==0) ss2=0;

}

P0=s2;

tp=1;

}

5结论

通过程序的控制, 可以产生一系列有规律的波形。这样一个信号发生装置在控制领域有相当广泛的应用范围。最终能够满足设计要求, 产生锯齿波、三角波、正弦波、方波波形, 并且可在一定范围内调节其频率和幅值大小。本设计具有体积小、价格低廉、性能稳定、实现方便、功能齐全的特点, 通过不同的程序编程, 系统还将得到更多的波形输出。

参考文献

[1]任为民.电子技术基础课程设计[M].北京:中央广播电视大学出版社, 1997

[2]童诗白.模拟电路技术基础[M].北京:高等教育出版社, 2000.

[3]韩全立, 王建明.单片机控制技术及应用[M].北京:电子工业出版社, 2004

[4]高吉祥, 全国大学生电子设计竞赛培训系列教程[M].北京:电子工业出版社, 2007

[5]李叶紫.MCS-51单片机应用教程[M].北京:清华大学出版社, 2004

[6]韩全立, 王建明.单片机控制技术及应用[M].北京:电子工业出版社, 2004

[7]张毅刚.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社, 1990

基于单片机的微弱信号处理模块设计 篇8

1 方案论证

微控制器及外设等部分组成, 传感器是将被测量 (通常为非电量) 转换成电信号的信号转换元件, 然后由于传感器的电气特性, 其所产生的电信号一般不可能直接输入至PC, 必须进行调理才能被数据采集设备精确、可靠地采集。

1.1 信号处理方案

通过加均衡滤波电路来对地层的吸收进行有效补偿。地层的吸收衰减效应是导致地震勘测分辨率不高的主要原因, 在地震数据采集系统中设置频谱均衡滤波器, 对地层的吸收衰减进行有效补偿, 可使地震反射波的特征参数得到明显改善。

1.2 控制器的信号采集方案

采用ADS7818进行模数转换。这种设计电路简单且易于实现, 转换精度较高, 符合本设计要求。

1.3 显示电路方案

选用数码管显示, MSP430F2002芯片的资源和管脚就可以满足要求, 有较高的性价比。

2 模块电路分析与设计

2.1 传感器概述

通常定义传感器是一种换能器, 严传感器是一种接收信号或受激励并以电信号响应的能量转换器件。大多数传感器其满度输出都是相当小的微弱的信号, 在进一步作模拟或数字处理之前, 必须对它们的输出进行适当的处理。

2.2 放大电路

最常用的信号调理形式就是放大, 既将输入的微弱电信号放大至数据采集量程相当的程度以获得尽可能高的分辨率。

本系统选用AD620仪表放大器进行前端信号的放大处理。AD620能确保高增益精密放大所需的低失调电压、低失调电压漂移和低噪声等性能指标;具有高共摸抑制比、高输入阻抗、低功耗等优点。其增益计算方法为:放大倍数只需调节电阻RG就可设定。

2.3 低通滤波电路

滤波器是一种允许具有特定频率范围的信号通过, 并且衰减其他所有信号的设备。滤波器可分为无源滤波器和有源滤波器两大类。前者是用无源器件R、L和C组成, 后者是由有源器件 (如运放) 与R、C或开关电容组成。

在本设计中地震信号是低频信号, 它的有效频率范围大约在20~300Hz之间。本系统以200Hz的雷克子波, 且为了防止高频对后级微分电路的影响, 所以针对它的特点, 本系统采用了6阶低通滤波。该滤波电路带内增益为12dB, 根据电路设计要求, 调整电路中的电阻电容参数, 将截止频率设置为500Hz。

根据大庆恒北地区的地震参数 (Vo、β) , 建立视等厚吸收介质模型 (单层厚度为0.5秒, 共6层) , 其地层吸收衰减特性为

对其进行麦克劳林展开, 为了使设计的频谱均衡滤波器的振幅函数更加接近其展开式, 相位谱尽量是一简单函数或零相位谱, 取麦克劳林展开式的偶数项得, 本设计采用6阶微分电路的频谱均衡滤波器, 其输出函数为:

2.4 峰值检波电路

由于本系统要记录地震的最大震级, 所以要求电路能迅速跟踪信号。采用峰值检波电路能够迅速跟踪信号并记录地震波的最大振幅。电路中, 当输入大于输出时, 峰值检波电路处于跟踪状态;当输入小于输出时处于保持状态。能够达到要求的功能。

2.5 A/D转换电路

A/D转换器是用来把连续变化的模拟信号转换为一定格式的数字信号的器件。由于模拟信号在时间上是连续的, 而数字信号则是离散量, 因此A/D转换必须按一定的时间间隔取模拟电压值, 再对其进行A/D转换, 这过程称为对模拟信号的采样。而A/D转换需要时间, 这就要将采样时刻的电压值保持下来。对保持下来的模拟电压值进行量化和编码, 从而得到数字量输出D。因此A/D转换必须包含四个过程:采样、保持、量化和编码。

本设计中由于地震信号的动态范围很高, 为了达到一定的分辨率, 要求数据采集系统A/D转换位数不能过少。通常的数据采集系统将连续的地震信号采样后量化。本系统应用ADS7818高精度十二位串行输出转换器, ADS7818采样速率CONV=1.54kHz, SCLK=16*CONV=25kHz, 模拟量的动态范围为0~5V。

2.6 稳压电源电路

理想电源无论通过它的电流为多少, 都能在它的终端维持一个恒定的电压。实际电源的输出电压随负载电流而改变, 一般随着负载电流的增大而减小。评价电源性能的量, 体现电源在空负载和满负载的条件下维持恒定电压的能力, 这个量称作电源的稳压百分比 (percent voltage regulation) 。

确切地说, 上式定义了输出百分比, 或负载百分比。这是因为它是基于负载条件变化, 其他所有因素都保持恒定。很明显, 上式的分子是输出电压在无负载和全负载情况下的总变化量, 因此理想电源具有零稳压百分比。

3 结语

详细介绍了微弱信号前置调理电路的设计。包括前端放大模块、低通滤波模块、频谱均衡滤波模块、精密峰值检波模块、A/D转换模块及稳压电源电路。其中低通滤波模块将截止频率设置为500Hz;频谱均衡滤波对原始地震反射地层吸收误差进行有效补偿, 使地震反射波的特征参数得到明显改善采用高精度十二位串行输出A/D转换器转换提高了系统对信号的分辨率;稳压电源输出+-5V电压, 为系统提供稳定的电压。

摘要:通过模拟电路结合单片机MSP430进行采样控制的思路, 以MSP430系列单片机为控制器, 辅以必要的模拟电路, 主要模块由前端放大模块、低通滤波模块、频谱均衡滤波模块、精密峰值检波模块、A/D转换模块及数据处理控制报警显示模块构成。

基于单片机的音频信号分析仪设计 篇9

音频信号分析仪主要分析的是信号的波形和频率, 其采用的是频谱分析法来达到分析效果。数字滤波法、扫频法、FFT法是音频信号分析仪中常用的频谱分析方法。本设计中的音频信号分析仪是一种采用FFT方法进行音频信号分析的方案, 该音频信号分析仪的工作原理是, 采用FFT方法对将测到的时域信号转变成频率信号, 将信号在时间上的分量转变成频率上的分量, 从而对被测信号进行分析, 实现对音频信号的分析。本文中所设计的系统可以用于信号分析、音频制作等, 实用性比较强。

1 系统总体方案

本设计中采用了多路多级放大器, 即采用多个固定的但是放大倍数不同的放大器对信号进行放大, 从而使信号处于数模转换器的精度范围内, 这种方法能够确保测量精度, 减小通道干扰。由于这个过程中对信号进行了放大, 因此, 最后为了得到信号的正确幅值, 在数据处理时必须将信号缩小相应的倍数。这个方案的优点是通道间干扰小, 但放大部分的硬件很多, 设计比较复杂。

本设计中的信号分析方法采用频域分析法。将模拟音频信号通过数模转换器转换成数字信号后, 采用FFT变换对信号处理, 得到信号的频谱图, 就可以得出该信号不同频率分量的幅值和功率, 可以采用增加FFT运算点数或加窗等方法减少非周期信号造成的误差。该方案的优点是速度快、精度高。

本系统中, 单片机是控制核心, 而FPGA作为数据处理核心。该系统的工作流程是, 信号输入后, 对小信号进行处理, 然后对小信号进行多路分级放大, 再调理到A/D转换器, 通过转换器将模拟信号转换成数字信号, 并成为在能够采样的信号, 经过抗混叠滤波后, 一路传输给AD637进行有效值检测计算总功率, 另一路传输给A/D转换器进行采样。信号的采样率是根据频率来确定的, 通过FPGA可以得到信号的频谱图, 同时还可以将信号的总功率和主频分量的攻略实施显示出来。掉电时, 能进行信号频谱显示和存储回放显示。为系统总体框图。

检测有效值AD637

单片机AT89S52第一路放大增益为1数据及控制总线

信号输入多路复用器50欧阻抗匹配

第二路放大100倍多通道A/D转换器抗混叠滤波器

FFT数据处理ADC控制

键盘及LCD键盘及LCD控制第三路放大10000倍

1.1 放大电路的设计

本系统采用的是3路多级放大, 放大倍数为10000。系统中使用的A/D采样器能够采样的最小信号为100 mV, 因此, 本设计中的音频信号分析仪能够分析的最小音频信号峰值为100 mV/10 000=10µV。因此, 该音频信号分析仪的输入信号范围设置为10µV~20 V, 动态范围为126 dB。

因为本设计中的放大倍数很大, 因此在选择运放时要十分慎重, 如果选择的运放不合适, 将会影响音频分析仪的分析效果。在本设计中, 前级运放采用TI公司的THS4031, 该运放的带宽为100 MHz。后级运放采用UA741CN, 这是一种精密低噪声运放, 带宽为1 MHz。

1.2 A/D采样电路的设计

本设计中采用的A/D转换器是MAX197, 应用该转换器进行数据采集。其输入量程有有0~5 V, 0~10 V, -5~5 V, -10~10 V这4种, 采样率可达100 kS/s。此外, 该转换器的通道选择十分方便。

2 系统软件设计

本设计中的软件设计包括FFT算法实现程序和显示以及功率的计算, 包括单片机的程序和FPGA的程序, 单片机是整个系统的控制核心, FPGA的功能是高速处理和大计算量处理, 比如A/D采样及存储和FFT处理。模块化思想贯穿整个程序设计过程, 软件的界面十分友好, 可以在总菜单上选择软件的所有功能。为系统程序设计流程图。

开始

系统初始化动画欢迎界面

N有键按下?

Y

系统主菜单

总功率测量频率分量功率测量显示频频存储与回放周期性判断及测量及测量

显示测量结果

返回

系统程序设计流程图

3 结论

本设计中的音频信号分析仪利用FFT对音频信号进行频谱分析。该音频信号分析能够准确分析输入的音频信号, 同时也十分的人性化、智能化, 在掉电时, 能够存储信号的信息, 并对其进行回放和显示。由于该系统只由单片机和FPGA以及一些简单的元器件组成, 因此成本低廉, 控制也比较简单, 具有很高的实用价值。

参考文献

[1]李侠, 周立文, 李丹.基于MSP430F1611单片机的音频信号分析[J].电子设计工程.2011 (04)

[2]廖艳闺, 李刚, 唐晓庆, 岑博.音频信号分析仪[J].电子设计工程.2009 (06)

基于单片机控制的DDS信号源设计 篇10

直接数字频率合成器(directdigitalfrequencysynthesis,DDS)技术具有:相对带宽较宽、频率转换时间短、频率分辨率高、输出相位连续,可产生宽带正交信号及其他多种调制信号,有全数字化、控制灵活方便的优点。采用了DDS技术的芯片被广泛应用于通信、导航、雷达、遥控遥测以及现代化的仪器仪表等行业领域。本文以AD 9851为例介绍了一种常用DDS芯片(AD 985X系列)的控制方法。51单片机为控制核心,一方面,对AD 9851的频率相位控制字进行控制,来产生所需要的正弦波形。另一方面,对液晶LCD 12864进行控制,通过菜单的模式,选择所需要的输出频率方式。独立式键盘输入相应的操作命令,使得整个设计变得更加直观明了。

1 硬件电路设计

电路原理如图1所示,可分为三个模块:基于AD 9851D的DDS模块,键盘、显示及控制模块,滤波模块。上电后,单片机复位,对AD 9851初始化并使其输出预先设置的定频频率,AD 9851输出的信号经滤波模块过滤后输出。

1.1 DDS模块

该设计电路中,AD 9851采用高速并行接口工作方式,其IOUT引脚外接的输出电阻值为50Ψ,它可由阻值为100Ψ的R 4与其后接调幅电路中电阻链的总电阻100Ψ并联得到。RSET引脚用来设置其内部数模转换器的满度输出电流值,若要使输出电压的峰峰值为0.5V,且输出电阻是50Ψ,那么,输出的满度电流的峰峰值应为:

由文献[1]可知:RSET=39.93/IOUT,RSET引脚需要接一个3.9kΩ的电阻。

IOUTB引脚是IOUT引脚的互补输出端,它可输出与IOUT引脚相同的电流,即峰值为10mA的正弦交流信号。在电路设计时,应在该引脚外接100Ψ电阻,以便输出峰峰值为1V的正弦波电压。该电压可作为AD 9851内部高速比较器同相端的输入信号,并通过其外围电路的设计,将比较器的阈值电压取为0.5V,从而使AD 9851输出占空比为50%的方波信号。

1.2 滤波模块

在输出端设置一个截止频率为25MHz的低通滤波器(图2),AD公司AD 9851的数据手册[1]上提供了一个截止频率为70MHz的椭圆低通滤波器,在该电路图上运用反归一化的方法进行更改就可以得到所需的电路,并且可以省却查表计算的麻烦。该滤波器的3dB截止频率为f1=70MHz,与要求的3dB截止频率f0=25MHz相比,频率标定系数FSF为

将70MHz截止频率的滤波器的电感、电容值同时除以FSF,即可得到25MHz截止频率的椭圆低通滤波器的参数。

该滤波器对元件值要求不高,可使用10%误差的电感和5%误差的电容。

1.3 键盘与LCD控制

按键数量较少,未采用矩阵键盘,故使用常规的延时去抖工作方式。12864液晶采用8位并口方式与单片机P0口通信,P0口接10K的上拉排阻限流。按键及液晶显示的常规设计参考文献较多[2,3,4],本文不再讨论。

2 软件设计

AD 9851有并行和串行[5]两种控制方式,本设计中采用并行控制方式。AD 9851通电后默认为并行通信方式。在并行方式下,系统通过8位总线D 0~D 7将外部控制字输入到寄存器,AD 9851的控制字如表1所示。低32位Fre-b0~Fre-b31为频率控制字,用于控制DDS的输出频率。在W 0中,第0位用于设置是否打开芯片内部6倍频功能,为了降低PCB设计难度,采用30MHz的有源晶振,本系统使用了该功能,故写入控制字时将该位置1。

在W-CLK(字输入时钟)的上升沿装入第一个字节,并把指针指向下一个输入寄存器,连续5个W-CLK的上升沿读入5个字节数据到输入寄存器后,W-CLK的边沿就不再起作用。然后在FQ-UD(频率更新时钟)上升沿到来时将这40位数据从输入寄存器装入到频率/相位寄存器,这时DDS输出频率和相位更新一次,同时把地址指针复位到第一个输入寄存器以等待下一次的频率/相位控制字输入。图3即为AD 9851控制字并行输入时序。

并行方式由5组8位控制字反复送入,前8位控制输出相位、6倍参考时钟倍频器、电源休眠和输入方式,其余各位构成32位频率控制字。

如果相位累加器(频率控制子)的位宽为n位(AD 9851的n=32位)这就意味着把一个周期的正弦波形离散成了2的n次方个点,把这些点的幅值存在一个ROM中就构成了正弦查找ROM。如果系统时钟为Fclk,即把Fclk分成了2的n次方份。如果此时的相位累加增量为(频率控制字)为B,那么此时的输出频率应为Fout=(B*Fclk)/(2的n次方)。显然B=1时其最小值为Fclk/n。B的值也不能太大,否则会输出失真波形。Fout的最大值理论上应该至少小于Fclk/4。所以要想提高输出频率的最大值,就得靠提高系统的外部时钟Fclk。

下列程序中,“DDS Freq”和“Freq”都是长整形变量,“Freq”是想要设置的频率值,“dds”是将要写入AD 9851的频率控制字。数据手册[1]指出(ΔPhase=十进制32位频率控制字,SystemClock表示系统时钟,30MHz×6=180MHz)

以下是将预置频率写入AD 9851的参考子程序:

3 实物与波形输出

其中,测试仪器(普源示波器):RIGOL DS 5022M25MHz250MS/s;测试软件(上位机程序):UltrascopeforDS5000SeriesVersion 1.1.11

4 结语

DDS信号源电路板上设计有串口,板上STC 89C 52单片机可以通过串口升级片内程序。系统可以从USB口取电,或者从扩展口P7外接5V电源。如要对输出信号幅值控制,系统输出端P3和P5可以外扩幅值控制模块。系统人机界面设计采用菜单式选择模式,包含了定频、扫频和跳频模式,能够满足实际工作对信号源的需求。

摘要:介绍了直接数字频率合成(DDS)信号源的设计。该系统分成3个主要模块,分别是:直接数字频率模块,键盘和LCD控制模块和低通椭圆滤波模块。基于单片机有足够的空闲输入输出引脚,DDS模块中的AD9851采用并行工作模式。在低通椭圆滤波模块,采用了基于反归一法设计的截止频率为25MHz的低通椭圆滤波器。最后附上了电路图和系统产生的波形图。

关键词:直接数字频率合成器,AD9851,椭圆低通滤波器

参考文献

[1]ANALOG DEVICE AD9851 Datasheet.

[2]吴戈,李玉峰.案例学单片机C语言开发[M].北京:人民邮电出版社,2008.158-182.

[3]包敬海,樊东红,陆安山,等.基于DS18B20的多点体温检测系统的研究[J].自动化与仪表,2010,25(2):20-22.

[4]张志良.单片机原理与控制技术[M].北京:机械工业出版社,2005.226-229.

上一篇:合并肺损伤下一篇:电信需求