>
首 页文章中心单片机论坛电脑援救中心杀毒软件下载电子元件速查集成电路速查客户留言下载中心商品展示频道繁體中文
设为首页
加入收藏
联系我们
您当前的位置:中国单片机网 -> 单片机讲座 -> 文章内容 退出登录 用户管理
栏目导航
· 经典软件 · 单片机讲座
· 电源技术 · 称重技术
· 硬件与电路 · 资料下载
· 淘宝商品 · 轻松一刻
· 金华电大资讯 · 胡老师招生
· l
热门文章
· [图文] 本站承接单片..
· 金华广播电视大学(金..
· 关于金华广播电视大..
· 关于金华广播电视大..
· [组图] 三极管s8050管..
· [组图] 9014三极管管..
· [组图] 三极管9012引..
· [组图] 中央广播电视..
· [组图] 三极管9013管..
· [组图] 万用表的使用..
相关文章
· [组图] 利用单片机I/..
· [图文] 使用单片机的..
· [组图] 使用单芯片步..
· 使用单片机制作多路..
· 使用单片机制作的测..
· 用单片机控制步进电..
用单片机制作的信号发生器
作者:马国岐  来源:www.chinadpj.com  发布时间:2008-5-1 0:08:52  发布人:admin

减小字体 增大字体

用单片机制作的信号发生器

【摘要】
     本文介绍一种用8751单片机构成的波形发生器,可产生方波、三角波、梯形波、锯齿波、正弦波和脉冲信号等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。信号发生器一般区分为函数信号发生器及任意波形发生器,而函数波形发生器在设计上又区分出模拟及数字合成式。
【关键词】
     信号发生器       单片机       8751单片机      ADC8032     
 
Title : signal generator
A bstract: This article introduced one kind the profile generator whichconstitutes with 8,751 monolithic integrated circuits, may have thesquare-wave, the triangle wave, the trapezoidal wave, the saw-toothwave, the sine wave and the pulse signal and so on the many kinds ofprofiles, the profile cycle may use the change of program, and mayaccording to need to choose 单极性 the output or 双极性 theoutput, has the line simply, the structure compact, the performance issuperior and so on the characteristic. Signal generating devicegeneral discrimination for function signal generating device and freeprofile generator, but the function profile generator differentiatesthe simulation and the digital integrated model in the design.
 
Keywords  signal generator   singlechip   8751 singlechip      ADC08323 

目录

第一章 绪论
第二章 外围设备
2.1 复位电路
2.2 系统时钟
第三章 单片机内部结构及其资源分配
3.1 单片机的内部结构
3.2 ADC0832内部结构及配置
第四章编写程序及其对程序的简易分析
第五章与同类波波形发生器作比较
5.1几种简单的占空比可调脉冲电路
5.2单片多波形发生器
结论
致谢
参考文献
 
第一章 绪论
     单片机一直被视为难学的课程之一,“难”的方面是多方面的,如涉及知识面广,该念难于理解,但是一个不可忽略的原因就是“单片机”难以自学,且没有足够的实验实践机会。
     单片机是将CPU,定时器,计数器,接口等集中到一块芯片上的计算机。时至今日,单片机已由8位机发展成为32位机甚至更高。其性价比更加优异,集成度更高,体积更小,可靠性更高,控制功能更强,需求电压低,耗能更低,更重要的是他引用与航天航空,国防军事,工业测控等领域。本文介绍一种用8751单片机构成的波形发生器,可产生三角波、方波、锯齿波和正弦波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。其外围结构设置如图1。

第二章  外围设备
2.1 复位电路
     同任何微型计算机应用系统一样,MCS-51系列单片机8751的复位功能是不可缺少的,复位即是所谓的冷热启动,8751一旦复位,其CPU就会自动地使其内部初始化,并自动装初值。重新开始从PC=0000H执行. 
     (1)    对复位信号的要求。
     此8751单片机是通过外部复位电路给其复位信号端子RST/VPD提供一个强制性电平信号来实现的,即在CPU时钟振荡系统正常工作情况下,若给出RET端输入一个至少有两个机器周期时间长的高电平信号就可实现复位,CPU内部复位是在RST(RESET)端变成高电平的第二个机器周期时间内进行的,并在RST端信号由高电平变为低电平时,CPU将自动的从程序存储器0000H地址单元开始取指令并执行程序,如果RST端一直保持高电平,则单片机就会一直保持循环复位的状态,一般情况下这种状态是不允许的。
     (2)    复位电路
     根据以上8751单片机对复位电路的要求以及通常采用的上电复位和手动上电复位两种方法,MCS-51单片机典型的既具有上电复位功能又具有手动复位功能的复位电路如图2所示。
 
     上电复位通常用于单片机的冷启动,即单片机的初始复位,其工作原理是图2电源开关接通瞬间,由于电容C两端的电压不能突变,并经过反相器倒向后,使得RST/VPD为高电平,此后,UCC经R1给电容C不断充电,电容上的压降不断升高,即反相器输入端电位不断升高,这样经反相器倒向后,使得RST/VPD端
电位不断降低,只要R1C充电时间常数足够大,
就可以保证RST/VPD端有足够的至少是两个机器周期时间的TTL高电平信号使单片机可靠复位,随着电容C充电时间的延长,RST/VPD端电位将逐步下降与TTL电平使单片机脱离复位状态。
     手动复位通常用于此单片机的热启动,即单片机在工作状态的复位,在图2中,将开关用手压合一次即可使单片机复位,其工作原理是用手压合一次开关S2,S2的闭合时间一般约为几毫秒到几十毫秒,S2如此长的闭合时间能保证电容充分放电后,反相器的输入端仍有充分长的时间处于低电平,这样,即保证了RST/VPD端有足够长的时间处于高电平,使单片机可靠复位,当手松开时,S2打开,UCC经R1给电容C不断充电,反相器输入端电位不断上升,RST/VPD端电压不断下降,当RST/VPD端电位下降到TTL电平时,单片机也就脱离了复位状态。
     (3)复位电路的作用
     复位电路的作用是使单片机初始化,即通过复位把单片机内部的各个部分恢复到预先已知的特定状态,使之成为编制程序、执行程序和调试程序的起点。MCS-51单片机复位的作用是使控制信号 和ALE设置为输入状态,即 =1,ALE=1,并使CPU中的特殊功能寄存器处于如下表1所示的特定初始复位状态,如复位后,P0-P0输出高电平,SP指针重新赋值为07H,其他特殊功能寄存器和程序寄存器、PC均被清零 。
表1  MCS-51系列8751单片机复位后内部寄存器的状态
     复位对单片机内部RAM的状态没有影响,一般在冷启动情况下,内部RAM的内容是不确定的随机数,在热启动情况下,内部RAM的内容不会改变。
2.2 系统时钟
     系统时钟是CPU形成系统控制信号的时间基准,协调8751各功能部件的正常逻辑运行,此8751单片机的时钟是由时钟电路产生的,其端子共有两个:XATL1(19端子)是其芯片内部振荡电路(单极反相放大器)的输入端;XATL2(18端子)是其芯片内部振荡电路(单极反相放大器)的输出端,MCS-51系列单片机的系统时钟可由内部时钟和外部时钟两种方式产生。
     (1)内时钟方式
     此MCS-51单片机内部时钟产生方式是利用芯片内部的单级反相器振荡电路在XTAL1和ATAL2两端子上外接定时元件产生自激振荡来形成系统时钟的。用示波器在ATAL2端可
观察到所产生的系统时钟信号。内部时钟产生方式的外接电路如右图3所示:
 
定时元件一般采用石英晶振(简称晶振)和电容组成并联谐振电路,这样在芯片内部便可产生与外加晶振同频率的振荡时钟信号,一般晶振频率可以在1.2MHz和12MHz之间任意选择,电容C1,C2可以在20-60pF之间任意选择,本单片机选择30pF,电容C1 ,C2对振荡频率可起微调作用,
     (2)    外时钟方式
   MCS-51系列单片机外部时钟产生方式是利用外部振荡器产生的振荡钟信号形成系统时钟的,如下图4所示.
外部振荡器的输出信号应接在XTAL1端子上,且XTAL2端子应接地,振荡信号的频率应低于12MHz,由于XTAL1端子的电平不是TTL电平,故应接上一位拉电阻,该时钟产生方式仅在整个单片机系统已有时钟源或者为了取得时钟上的同步时才使用。
 
 
第三章 内部结构及资源分配
3.1 使用单片机的内部结构
(1)8751单片机的主要功能特点;
l        8位CPU
l        51系列的单片机片内RAM为128字节(包括8751)
l        片内有4K EPROM
l        有2个优先级的5个中断源结构
l        有4个输入/输出接口(P0,P1,P2,P3均为8位并行口)
l        有2个16位定时/计数器
l        布尔处理器
(2)单片机的结构组成
     MCS-51系列单片机的内部组成及结构框图如下图5所示.
3.2  ADC0832内部结构及配置
完成D/A转换或A/D转换的线路有多种,特别是单片大规模集成A/D、D/A问世,为实现这种转换提供了极大的方便。借助手册提供的器件性能指标及典型应用电路,即可正确使用这些器件。本设计将采用大规模集成电路DAC0832实现D/A转换。
(一)            D/A转换器DAC0832
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图6所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为:
由上式可见,输出的模拟量 与输入的数字量(DR-1.2R-1+A+D0.20)成正比,这就实现了从数字量到模拟量的转换。
     一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。图7是DAC0832的逻辑框图和引脚排列。
D0-D7:数字信号输入端。
ILE:输入寄存器允许,高电平有效。
CS:片选信号,低电平有效。
WR1:写信号1,低电平有效
图6单片直流输出型8位数/模转换器
XFER:传送控制信号,低电平有效。
 
WR2:写信号2,低电平有效。
IOUT1、IOUT2:DAC电流输出端。
Rfb:是集成在片内的外接运放的反馈电阻。
 
图7  DAC0832的逻辑框图和引脚排列
Vref:基准电压(-10-+10V)。
Vcc:是源电压(+5-+15V)。
AGND:模拟地 NGND:数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
IN0-IN7:8路模拟信号输入端。
A1、A2、A0 :地址输入端。ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。
START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。
EOC:转换结束输出信号(转换接受标志),高电平有效。
OE:输入允许信号,高电平有效。
CLOCK(CP):时钟信号输入端,外接时钟频率一般为640kHz。
Vcc:+5V单电源供电。 、
Vref(+),Vref(-):基准电压的正极、负极。一般Vref(+)接+5V电源,Vref(-)接
地。D7-D0:数字信号输出端。 由A2、A1、A0三地址输入端选通8路模拟信号
中的任何一路进行A/D转换。
第四章  编写程序及简易分析
系统软件包括延时子程序在内的波形发生程序组成,采用查询方式扩展中断源控制程序产生的波形,根据图1中的外围设置结构图,编写参考程序如下:
ORG     0013H
          LJMP    EXINT
          ORG     100H
  EXINT:  ORL     P1,  #0FH                       ;P1口低4位为输出
          JB      P1.0,   SERV1                    ;选择锯齿波
          JB      P1.1,   SERV2                    ;选择三角波
          JB      P1.2,   SERV3                    ;选择矩形波
          JB      P1.3,   SERV4                    ;选择正弦波
          RETI                                     ;中断返回
 SETV1:   MOV     A,   #00H                      ;初始化
          MOV     R3,   #0FEH
          MOV     DPTR,  #7FFFH                  ;取入口地址
   MM:    MOVX    @DPTR,  A                      ;送转换
          INC     A
          LCALL   LOOP2                          ;决定波形坡度
          DJNZ    R3,    MM                       ;判断转移
          SJMP    EXINT
  SERV2:  MOV     A,   #00H                       ;初始化
          MOV     DPTR,  #7FFFH                   ;取入口地址
    SS1:  MOVX    @DPTR,  A                      ;送转换
          LCALL   LOOP2                          ;决定波形坡度
    SS2:  INC     A
          CJNE    A ,   #0FFH,  SS1                 ;判断波形是否达到峰值
    SS3:  DEC     A                                 ;波形开始下降
          MOVX    @DPTR,  A                      ;送转换
 LCALL   LOOP2                          ;决定波形坡度
          JNZ     SS3                              ;判断波形是否达到谷值
SJMP    EXINT                              ;产生下一个周期
  SERV3:  MOV     A,   #00H                      ;初始化
          MOV     DPTR,  #7FFFH                 ;取入口地址
 MOVX    @DPTR,  A                     ;送转换
          LCALL   LOOP1                          ;调用子程序
          MOV     A,   #0FFH
          MOVX    @DPTR,  A                     ;送转换
          LCALL   LOOP2                          ;调用子程序
          SJMP     EXINT                           ;产生下个周期波形
  SERV4:  MOV     R5,   #0FEH                    ;置偏移量
    SIN:  MOV     A,    R5  
          MOV     DPTR,  #500H                    ;从表格中取数
          MOVC    A,  @A+DPTR                   ;送入寄存器中
          MOV     DPTR,  #7FFFH                  ;取入口地址
          MOVX     @DPTR , A                      ;送转换
LCALL   LOOP2
          INC     R5                                ;偏移量加一
          CJNE    A, #0D9H,  SIN
          SJMP    EXINT
ORG     500H                            ;正弦波表格
DB:80H,83H,86H,89H,8AH,8DH,90H,93H,96H,99H,9EH,0A2H,0A5H,0A8H,
0ABH,0AEH
DB:0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,
0D4H,0D6H,0D8H
DB:0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
DB:0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FDH,0FEH,0FFH,0FFH,
0FFH,0FFH,0F FH,0FFH
DB:0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FDH,0FDH,0FCH,0FBH,0FAH,0F9H,
0F8H,0F7H,0F6H
DB:0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH,0E9H,0E7H,0E5H,0E3H,
0E1H,0DFH,0DDH,0DAH
DB:0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H,0C5H,0C2H,0BFH,0BCH,
0BAH,0BFH,0B4H,0B1H
DB:0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H,90H,8DH,89H,86H,83H,
80H
DB :80H,7CH,79H,76H,72H,6FH,6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51H
DB:4EH,4CH,48H,45H,43H,40H,3DH,3AH,38H,35H,33H,30H,2EH,2BH,29H,27H
DB: 25H,22H,20H,1EH,1CH,1AH,18H,16H,15H,13H,11H,10H,0EH,0DH,0BH,0AH
DB: 09H,08H,07H,06H,05H,04H,03H,02H,02H,01H,00H,00H,00H,00H,00H,00H
DB:00H,00H,00H,00H,00H,00H,01H,02H,02H,03H,04H,05H,06H,07H,08H,09H
DB ;0AH,0BH,0DH,0FH,10H,11H,13H,15H
          RETI
 LOOP1:   MOV     R7,   #14H               ;装入计数初值
DEL1:   MOV     R6,   #7BH                 ;装单循环延时值
NOP
  DEL2:   DJNZ    R6,  DEL2                  ;2×123+2=248us
          DJNZ    R7,  DEL1                  ;(248+2)×20+1=5.001ms
          RET
 LOOP2:   MOV     R5,   #0AH                 ;装入计数初值
  DEL3:   MOV     R4,   #7BH                 ;装单循环延时值
          NOP
  DEL4:   DJNZ    R4,  DEL4                  ;2×123+2=248us
          DJNZ    R5,  DEL3                  (248+2)×10+1=2.5001ms
          RET
          END
该参考程序是由图1外围设置的硬件所决定的全部程序使用2 个子程序,即LOOP1,LOOP2。LOOP1延时5ms,LOOP2延时2.5 ms,在矩形波中即做占空比调节,又可控制其周期,LOOP2用于SERV1,SERV2,SERV4均作调节频率(周期)之用 。
LOOP1,LOOP2延时子程序,均采用多循环延时子程序设定,因硬件使用12MHz晶振,故不难得出延时时间。
第五章 与同类型波形发生器作比较
5.1几种简单的占空比可调脉冲电路
     实用的PSW电路的实质就是一个方波周期一定占空比可调电路。它的基本工作原理是将一个频率一定的锯齿波形与一个直流控制电压在比较器上进行比较,当直流控制电压改变时,输出占空比就跟随改变。在没有专用PMW电路的情况下,可以使用以下介绍的电路。
     1、使用双比较器构成的占空比可调电路
     图8上半部分是双比较器构成的占空比可调电路,电路使用一片双比较器,比较器(1)为一个方波振荡器,在其振荡电容上引出锯齿波送到比较器(2)的反相输入端,比较器(2)的同相输入端控制电压,调节RP即可调节输出的占空比(即输出脉宽)。占空比越大;反之,脉宽变窄,占空比变小,而输出频率由锯齿波的频率决定。
     2、使用555定时器的占空比可调电路
     电路如图9所示,此图为一个555定时器构成的典型的多谐振荡电路,为使占空比可调加入了二极管D,由图可知,电容C的充电回路经RP1→D→C,放电回路经C→RP2→555的⑦脚。其占空比如下:
q(%)=RP1/RP×100%
调节RP即可调节输出脉宽。
 
 
5.2单片多波形发生器
     可同时产生访波、正弦波、三角波、负向锯齿波和正向锯齿波,除正弦波形不太理想外,其它波形较好。可供学生做试验,也比较适用于数字脉冲电路试验。
     图10中A1组成的是比较器,A2组成的是反向积分器,A1,A2又共同组成正反馈电路,形成自激振荡器,A1输出为正负对称的方波,其输出电压由RW分压后作为A2的反向端输入电压,经A2积分运算后,输出为三角波。
A2积分运算后输出三角波经R7,C2和R7,C3两次积分后变为近似的正弦波,从U03处输出。
A4及R15—R17组成反响比例运算放大器,AU=-R16/ R15= - 1即输出将输入倒向后输出,即U05输出一正向锯齿波电压。
A3及BG组成的电子开关组成负向锯齿波发生器
改变方波的振荡频率f,调RW即可改变三角波,正弦波及正负向锯齿波的频率,可在0---14.7kHz间连续可调,三角波和正弦波的幅值基本上为3V,负向锯齿波输出幅值≥8.7V.
调节RW即可调节频率还将影响锯齿波电压幅度,
本电路作为较典型的初期单片多波形发生器还可用来产生正负向梯形波及时只需在CS上串联一只电阻,使在电阻上产生一阶跃电压,与CS产生的线性上升电压合成后就输出梯形电压。
 
结论
     信号发生器是基础的通用仪器之一,是我们信号仿真实验的最佳工具,在许多领域都有广泛的应用。本文介绍了单片机波形发生器的基础知识,为您的选型和概念的了解提供方便。我们设计时除关心信号源的基本指标外,还需要关心它的使用,如波形编辑功能等等。根据设计者自己的应用需要,选择合适的信号发生器,为我们的设计进行全面,真实的测试,对自己设计的产品更有信心。
致谢
     感谢再次此论文设计中各位代课教师的精心指导,现在此谨感谢各位老师的帮助。你们严谨细致、一丝不苟的作风一直是我学习的榜样;你们以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。他们循循善诱的教导和不拘一格的教学思路给予我无尽的启迪。
     在此,我更要感谢我的指导老师,这篇论文的每个细节和每个数据,都离不开你的细心指导。你的宽容的态度,帮助我能够很快的选择好课题完成这篇设计。
     感谢我的室友们,从遥远的家乡来到这个陌生的城市里,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。快三年了,仿佛就在昨天。三年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃每年元旦那顿饭了,没关系,各奔前程,大家珍重。
        感谢我的每一位亲人,是你们的支持使我走完了在学校的求学生涯,焉得谖草,言树之背,养育之恩,无以回报,父母,永远健康快乐是我最大的心愿。 在论文即将截稿之时,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
参考文献
[1] 王恩荣,《程明霄单片机应用技术》第1版,北京:化学工业出版社,2004年
[2] 赵建领. 《51系列单片机开发宝典》电子工业出版社,2007年
[3] 边春远,王志强《MCS-51单片机应用开发实用子程序》第1版,人民邮电出版社
[4] 陈涛,《单片机应用及C51程序设计》,2008年1月第1版,机械工业出版社
[作者:马国岐(QQ:365451809) ,指导教师:李子颜]
[www.chinadpj.com(中国单片机网)整理]
[] [返回上一页] [打 印] [收 藏]
下一篇文章:STC 编程器
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2009 www.chinadpj.com. All Rights Reserved. 浙ICP备06040125号
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030