武汉理工大学《计算机控制技术》课程设计
目录
摘要 .....................................................................................................................................................................................1 1DAC0832及其特性 ...........................................................................................................................................................1
1.1 D/A转换器与单片机接口探究 ............................................................................................................................1 1.2 DAC0832的认识 ...................................................................................................................................................2 2硬件设计 ..........................................................................................................................................................................5
2.1启动方式选择 .......................................................................................................................................................5 2.2框图设计 ...............................................................................................................................................................6 2.3 电路图设计 ...........................................................................................................................................................6 3程序设计 ..........................................................................................................................................................................7
3.1 程序流程图 ...........................................................................................................................................................7 4仿真及其结果 ............................................................................................................................................................... 12
4.1方波: ................................................................................................................................................................ 12 4.2三角波 ................................................................................................................................................................ 13 心得体会 .......................................................................................................................................................................... 13 参考文献: ...................................................................................................................................................................... 15
1
武汉理工大学《计算机控制技术》课程设计
摘要
本设计使用ATC51单片机做控制,选择8位D/A转换器DAC0832作D/A转换。 硬件方面,首先51熟悉单片机的结构和工作原理,连接单片机的最小系统。之后熟悉D/A转换器工作方式,经过分析后选择DAC0832的单缓冲启动控制方式,完成电路框图。进一步根据设计要求完成通过按键控制D/A输出,作出电路框图和电路原理图。 软件方面:设计思路主要体现在两点上。一是控制,通过程序控制DAC转换与输出,按键消抖,选择相应的即将输出的波形。二是产生波形,根据波形的特点编写程序以产生相应波形的数字信号。 分别通过C语言和汇编语言实现简易的波形发生器,输出方波、正弦波、三角波、梯形波和锯齿波,通过按键控制分别输出不同的波形。以KILL与Proteus为设计平台,仿真测试设计结果的正确性。 关键字: 51单片机,DAC0832,单缓冲启动控制方式,波形发生器,C语言设计,汇编语言设计
1
武汉理工大学《计算机控制技术》课程设计
1DAC0832及其特性
1.1 D/A转换器与单片机接口探究
D/A转换器与单片机接口具有软硬相依性。在连接过程中要考虑到数据线、地址线、控制线的连接。
1.1.1 数据线连接
D/A转换器与单片机接口要考虑到两个问题:一个是位数,当高于8位的D/A转换器与8位数据总线的51单片机接口时,51单片机的数据必须分时输出,这时就必须考虑数据分时传送的格式和输出电压“毛刺”问题;二是D/A转化器的内部结构,当D/A转换器的内部结构没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或者I/O口。最常用的是8位带锁存端的D/A转换器与8位单片机的接口,这时只需要将单片机的数据总线和D/A转换器的8位数据输入端一一对应即可。
1.1.2 地址线连接
一般的D/A转换器只有片选信号,而没有地址线。这时单片机的地址线采用全译码或者部分译码,经译码器输出控制片选信号,也可以用某一位I/O线来控制片选信号。也有少数D/A转换器有少量的地址线,用于选中片内的寄存器或者选择输出通道,这时单片机执行的地址线与D/A转换器的地址线对应连接。
1.1.3控制线连接
1
武汉理工大学《计算机控制技术》课程设计
D/A转换器主要有片选信号、写信号、及启动转换信号等,一般由单片机的有关引脚或译码器提供。一般来说,写信号多由单片机的WR信号控制;启动信号常常由片选信号与写信号的组合形式(LE1、LE2)形成,当单片机执行一条输出指令时,传送的地址使转换器的片选信号有效,由WR实现启动。
1.2 DAC0832的认识
1.2.1 DAC0832的结构
DAC0832的结构如图1-1所示,主要由控制逻辑电路、输入寄存器、DAC寄存器和D/A转换器构成。由上图逻辑控制电路可知:
LE1=(CS+WR1)ILE
一一
一
一一
LE2=WR2+XREF
一一一一一一一
由LE1控制输入寄存器读入数据,由LE2控制输入寄存器向DAC寄存器传输数据,同时开始D/A转换。
2
武汉理工大学《计算机控制技术》课程设计
图1-1 DAC0832的管脚图结构
1.2.2 DAC0832的引脚
DAC0832的引脚如图1.1所示:
DI0~DI7:8位数据输入线,高电平有效。
ILE:数据锁存允许控制输入线,高电平有效。
C一S一
:片选信号输入线,低电平有效。
1WR:输入锁存器写选通输入线,负脉冲有效。输入锁存器的信号就是LE1。跳变有效。
3
负LE1武汉理工大学《计算机控制技术》课程设计
XREF:数据传送控制信号输入线,低电平有效。
一一一一
2WR:DAC寄存器写选通信号输入线,负脉冲有效。DAC锁存信号就是LE2,LE2的负跳变有效。
1OUTI:模拟电流输出线。
2OUTI:模拟电流输出线,采用单极性输出时,2OUTI通常接地。
FBR:反馈信号输入线。反馈电阻FBR被制作在芯片里,用作外接运放的反馈电阻,为D/A转换器提供电压输出。
REFV:参考电压输入端。要求外接一精密电压源,电压范围在-10V~+10V之间选定。通过REFV的符号来改变输出极性。CCV:电源接口。
AGND:模拟地。
DGND:数字地。
注:数字信号的高频噪声很大,如果模拟信地和数字地混合的话,就会把数字的噪声传到模拟部分,造成干扰。如果分开的话,高频噪声可以在电源处通过滤波来消除掉。
1.2.3 DAC0832的启动控制方式
DAC0832有三种启动控制方式:
4
武汉理工大学《计算机控制技术》课程设计
(1)直通方式:将CS、WR1、XREF、WR2信号都接地,ILE信号引脚接高电平,只要数据传送到数据线上,两级锁存器同时开始工作,并启动D/A转换,即转换器处于非受控状态。在这种工作方式下,转换器的数据线不能直接和单片机的数据线(P0.0~P0.7)相连接。因为P0口分时复用为低8位的地址总线和数据总线,对输出无锁存能力,会使转换器的输出不确定。但是可以将ADC的数据线连接到某个I/O口上,执行端口输出指令(MOV PxA)即可启动一次D/A转换。这种方式很少采用。
一一一
一一一一
一一一一一一一一一一一一
(2)单缓冲方式:两级锁存器接受同一种控制,例如将WR2和XREF直接接地,8位ADC锁存器处于非受控状态,只有8位输入锁存器处于受控状态,即此时仅有LE1控制ADC。这种方式在不要求多个模拟同步输出时采用。
(3)双缓冲方式:俩个锁存器都处于受控状态,单片机要对转换器进行两步写操作:第一次执行指令使LE1有效,称作第一级缓冲,第二次执行指令使LE2有效,称作第二级缓冲。这种方式的优点是数据接收和启动转换可以异步进行,可在D/A转换的同时接收下一个转换数据,以提高转换速度,还可以实现多个转换器同时启动转换,同步输出。
2硬件设计
2.1启动方式选择
因为本设计要求设计一个波形发生器,要求能产生方波、三角波、而且由按键控制输出的波形。各个波形输出并非同步输出,而是由按键控制,单个输出,并且本例只需要一个DAC,如果选择双缓冲方式就会加大不必要的难度;直通方式不能有效的控制DAC转换,转换时可能会出现数据流失。故选择单缓冲启动控制方式来驱动DAC0832。
5
武汉理工大学《计算机控制技术》课程设计
2.2框图设计
根据2.1节的判断,选择ATc51单片机作控制,实现电路框如下:
2.3 电路图设计
6
武汉理工大学《计算机控制技术》课程设计
图2.2单片机与ADC的连接方式
此外加上单片机最小系统,用P1口控制输出的波形,电路连接如下:
图2.3电路原理图
3程序设计
3.1 程序流程图
3.1.1 程序设计思路
7
武汉理工大学《计算机控制技术》课程设计
(1)因为要使用到按钮(本例中选择按键),必须使用到键盘扫描,首先要进行键盘消抖,然后通过扫描确定是哪个按键被按下,通过I/O口(本例中为P1口)的数据判断选择五种波形中的哪一个。
(2)根据(1)中的结果,通过编程产生各个波形的数字信号。
(3)控制DAC转换数字信号为模拟信号。
程序框图如下:
图3.1程序设计思路
3.1.2流程图
在本流程图中分别以k1、k2、k3、k4、k5代表单片机的I/O口P1.0、P1.1、P1.2、P1.3、P1.4;设置flag1、flag2、flag3、flag4、flag5为1时分别代表方波、正弦波、三角波、梯形波、锯齿波。当确认按键按下时,令相对应的flagx=1,然后用连续的判断程序来选择将要输出的波形。程序实现了只需按一下按钮便可持续输出对应的波形。
流程图如下:
8
武汉理工大学《计算机控制技术》课程设计
3.2程序流程图
3.2 用汇编语言实现
程序:
START: MOV DPTR ,#7FFFH
MOV A,#00
9
武汉理工大学《计算机控制技术》课程设计
LOOP: MOV R0 ,#00
MOV P1 ,R0
MOV R0 ,P1
JB P1.0 , K0
JB P1.1 , K1
JB P1.2 , K2
JB P1.3 , K3
K0: AJMP LOOP1
K1: AJMP LOOP2
K2: AJMP LOOP3
K3: AJMP LOOP4
LOOP1: MOV A,#00 ;LOOP
方波
10
武汉理工大学《计算机控制技术》课程设计
MOVX @DPTR ,A
MOV R1, #255
MOV R4, #255
DEL1: DJNZ R1,$
DJNZ R4, DEL1
MOV A,#255
MOVX @DPTR ,A
MOV R1, #255
MOV R4, #255
DEL2: DJNZ R1,$
DJNZ R4, DEL2 LJMP LOOP
LOOP2: ;LOOP3:三角波
UP: MOVX @DPTR,A
11
武汉理工大学《计算机控制技术》课程设计
INC A
CJNE A,#0FFH,UP
DOWN:MOVX @DPTR,A
DEC A
CJNE A,#00H,DOWN
LJMP LOOP
END
4仿真及其结果
4.1方波:
12
武汉理工大学《计算机控制技术》课程设计
4.1方波模拟图
4.2三角波
4.2三角波模拟图
心得体会
通过这次课程设计,让我对单片机的结构和功能更加熟悉了,同时也加强了我对KILL、Proteus的熟悉度,让我在实践中运用所学的知识,加强了我对单片机相关知识以及数电模电知识的掌握。 单片机设计是一个复杂的过程,需要经历硬件设计和软件设计,硬件设计首先需要根据设计目标画出框图,根据设计的需要选择元件连接成电路图。软件设计则需要根据电路原理图考虑到三条线:控制线、地址线、数据线,根据所要实现的结果画出程序流程图,根据流程图编写程序代码。在KILL中调试排错。 在硬件和软件设计完成后,还需将两者结合,也就是说将程序产生的.HEX文件烧写进单片机,硬件与软件必须衔接恰当,否则就不能正常运行,必须改变电路结构或者改变程序。比如在这次设计中,针对DAC0832单缓冲启动控制方式的程序就不能直接考入直通方式的电路中,反之
13
武汉理工大学《计算机控制技术》课程设计
亦然。电路有很多种连法,程序也是灵活多变,只有正真了解它们的原理,才能运用的自如。 我在单片机课程中学习了汇编语言,于是在本次设计尝试使用汇编实现目标,发现自己对汇编的代码还不熟悉,对汇编的设计思路还不明确,经验还不足,还需努力,多用多练。 我深知此次在仿真层面的设计与真正焊接制作实物还有很大的差距,今后的日子里还要更加上进,认真学习知识,熟练运用知识,让自己更上一层楼!
14
武汉理工大学《计算机控制技术》课程设计
参考文献:
1 李建忠《单片机原理及应用第三版》 西安电子科技大学出版社
2 谭浩强《C语言程序设计第四版》清华大学出版社
3 阎石 《数字电子技术基础第五版》 高等教育出版社
4于海生《计算机控制技术》机械工业出版社
15