函数波形发生器
Nanhua University
题 目: 函数波形发生器
学院名称:班 级:指导老师:
学 号:
姓 名:
同组人员:
学 号:
2007年 12月30日
前言
当今世界在以电子信息技术为前提下推动了社会跨跃式的进步,科学技术的飞速发展日新月异带动了各国生产力的大规模提高。由此可见科技已成为各国竞争的核心,尤其是电子信息技术更显得尤为重要,在国民生产各部门电子信息技术得到了广泛的应用。
漫步在繁华的现代化的大都市的大街上,随时都可以看到街上有很多可以用卡取钱的机器(ATM自动柜机) ,十字路口的交通灯。我们的手机,我们家里数码神秘,系列指令的呢?让我们取钱更方便、避免城市的交通混乱和交通阻塞……给我们生活带来了处处方便。其实这也是用单片机来控制的,单片机在我们生活中触手可及,它是如此地贴近我们的生活,单片机给我们的生活带来的有如此多的便利。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。科技越发达,智能化的东西就越多,使用的单片机就越多。看来学单片机是社会发展的需求。
据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。特别是沿海地区的玩具厂等生产产品多数用到单片, 并不断地辐射向内地, 这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义
编 者 2007年12月
目录
一、 设计目的……………………………………………………………….1
二、 设计要求……………………………………………………………….1
三、 背景知识……………………………………………………………….1
1、DAC0832的引脚及功能……………………………………………1
2、DAC0832三种数据输入方式…… ………………………………3
四、 硬件原理........................................................................................4
五、 软件实现 1、主程序2、输出方波子程序3、输出三角波子程序…………………………………………………8
4、输出锯齿波子程序…………………………………………………8
5、输出正弦波子程序…………………………………………………9
六、 心得体会………………………………………………………………..10
七、 参考文献………………………………………………………………..10
一、 设计目的
掌握8位D/A转换器DAC0832与单片机的接口技术及编程方法。
二、 设计要求
用单片机与DAC0832 构成的波形发生器,可产生方波、三角波、锯齿波、正弦波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。
三、 背景知识
8位D/ADAC0832当今世界在以电子信是8位分辨率的
D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片 以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。这类D/A转换器由8位输入锁存器,8位DAC 寄存器,8位DA 转换电路及转换控制电路构成。
1、DAC0832的引脚及功能:
DAC0832芯片是一种具有两个输入数据寄存器的8位DAC ,它能直接与MCS51单片机接口,其主要特性参数如下:
·分辨率为8位;
·电流稳定时间1us;
·可单缓冲、双缓冲或直接数字输入;
·只需在满量程和下调整其线性度;
·单一电源供电(+5V ~+15V );
·低功耗,200mW 。
为便于DAC0832的使用,特将其应用特性总结如下:
·DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。这种芯片有许多控制引脚,可以和微处理器控制线相连,接受微处理器的控制,如I LE 、/CS、/WR1、/WR2、/XFER端。
·有两级锁存控制功能,能够实现多通道D/A的同步转换输出。
·DAC0832内部无参考电压源;须外接参考电压源。
·DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。
DAC0832
图 1 DAC0832结构框图及引脚排列
DAC0832各引脚的功能如下:
DI0~DI7: 数据输入线。
I LE : 数据允许锁存信号,高电平有效;
/CS: 输入寄存器选择信号,低电平有效。/WR1为输入寄存器的写选通信号。输入寄存器的锁存信号/LE1由I LE 、/CS/WR1当I LE 为高电平、/CS为低电平、输入锁存器的状态随数据输入线的状态变化,/LE1的负跳变将数据线上的信息锁入输入寄存器。
/XFER: 数据传送信号,低电平有效。/WR2为DAC 寄存器的写选通信号。DAC 寄存器的锁存信号/LE2,由/XEFR、/WR2的逻辑组合产生。当/XFER为低电平,/WR2输入负脉冲,则在/LE2产生正脉冲;/LE2为高电平是时,DAC 寄存器的输出和输入寄存器的状态一致,/LE2负跳变,输入寄存器的内容打入DAC 寄存器。 V REF : 基准电源输入引脚 。
R fb : 反馈信号输入引脚,反馈电阻在芯片内部。
I OUT1、I OUT2 : 电流输出引脚。电流I OUT1、I OUT2 的和为常数,I OUT1、I OUT2 随DAC 寄存器的内容线性变化。
VCC : 电源输入引脚。
AGND : 模拟信号地
DGND : 数字地。
2、DAC0832三种数据输入方式:
(1)双缓冲方式:即数据经过双重缓冲后再送入D /A 转换电路,执行两次写操作才能完成一次D /A 转换。这种方式可在D /A 转换的同时,进行下一个数据的输入,可提高转换速率。更为重要的是,这种方式特别适用于要求同时输出
多个模拟量的场合。此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。
(2)单缓冲方式:不需要多个模拟量同时输出时,可采用此种方式。此时两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入D /A 转换电路。这种方式只需执行一次写操作,即可完成D /A 转换。
(3)直通方式:此时两个寄存器均处于直通状态,因此要将
和、、I LE 方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。
四、硬件原理
波形的产生是通过8751执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
8751组成单片机的最小系统有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送D/A转换电路。第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC 寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换。本电路直通联接方式,即WR1、WR2、CS 和XFER 接地,ILE 和VCC 接+5V电源,8751的数据输出线直接与DAC0832的数字输入端相连。D/A转换电路可采用单极性输出,也可采用双极性输出。本线路采用双极性输出,即经过两个运算放大器F032后输出电压UOUT 。输入数字量与输出电压的关系如表所示。
表一:输入数字量与输出电压的关系
U OUT =V REF -1V REF ≈V REF 128。可见波形的最大幅值由D/AUOUT=0;当D=FFH时,
的参考电压VREF 决定。
8751的P1口接一转换开关K ,通过软件编程来选择各种波形,其中电阻R1~R8的作用是保证转换开关的各浮空节点为“0”。P3口用来驱动一组发光二极管,每种波形对应一个发光二极管作为波形的指示器。
五、软件实现
系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。周期的改变可采用插入延时子程序的方法来实现。主程序和几种常用波形子程序的流程图如图所示。
图 3 锯齿波发生子程序流程图 图 4 三角波发生子程序流程图
图 5 方波发生子程序流程图 图 6 正弦波发生子程序流程图
设波形选择开关状态为:P1.0=1选择方波;P1.1=1选择三角波;P1.2=1选择锯齿波;P1.3=1选择正弦波
设P3.0控制方波LED 指示灯;P3.1控制三角波LED 指示灯;P3.2控制锯齿波LED 指示灯; P3.3控制正弦波LED 指示灯。(见附图)
1、主程序:
ORG 0000H
Start: MOV A ,#00H
MOV P3, A ;令波形指示灯LED 熄
Begin :MOV A ,P1 ;读波形选择开关状态
CJNE A ,#01H ,Sanjo ;P1.0=1调方波子程序:SQUW
MOV P3,#01H ;方波指示灯LED 亮
LCALL SQUW ;调生成方波子程序:SQUW
Sanjo :CJNE A ,#02H ,Juchi ;P1.1=1调三角波子程序:TRIAN
MOV P3,#02H ;三角波指示灯LED 亮
LCALL TRIAN ;调生成三角波子程序:TRIAN
Juchi :CJNE A ,#04H ,Zhexi ;P1.2=1调锯齿波子程序:SANTOO MOV P3,#04H ;锯齿波指示灯LED 亮
LCALL SANTOO ;调生成锯齿波子程序:SANTOO
Zhexi :CJNE A ,#08H ,Back ;P1.3=1调正弦波子程序:SINE
MOV P3,#08H ;正弦波指示灯LED 亮
LCALL SINE ;调生成正弦波子程序:SINE
Back :LJMP Begin
2、输出方波子程序:SQUN
SQUN :MOV A ,#0FFH
MOV P0,A ;输出一个幅度的方波
LACLL Delay ;调250ms 延时子程序:Delay
MOV A ,#00H
MOV P0,A ;输出另一个幅度的方波
250ms
延时子程序(单片机晶振6MHZ)
Delay : MOV R2, #0F5H
Dely1: MOV R1, #0FFH
Dely2: DJNZ R1, Dely2
DJNZ R2, Dely1
RET
3、输出三角波子程序:TRIAN
TRIAN :MOV A ,#00H
UP: MOV P0,A
INC A
JNZ UP
DOWN: DEC A
MOV P0,A
JNZ DOWN
RET
4、输出锯齿波子程序:SANTOO
SANTOO: MOV A ,#00H
LLOOP : MOV P0,A
LLOOP1 INC A ;
MOV P0,A
CJNE A,FFH LLOOP1
RET
5、输出正弦波子程序:SINE
DB 40,43,46,50,53,57,60,64,68,72,76,80,84 DB 88,93,97,101,106,110,114,119,123,128,129 六、心得体会
在本次单片机课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。
通过这次课程设计,也非常的清楚的认识了这门课程的重要性,也意识到了自己在程序设计方面的薄弱性。希望在以后的学习和工作中能进一部的加强自己专业素质和实践动手能力,并在单片机程序设计语言方面要实现从汇编语言到 C 语言的跳转。
七、参考文献
[1]赵国相, 于秀峰. [2]张有德,赵志英,涂时亮. 单片微型机原理、应用与实验. 上海:复旦大学出版社,1994.6