单片机波形发生器课程设计说明书

摘要

摘要

波形发生器是一种常用的信号源,广泛应用于科学研究、生产实践和教学实验等领域。

本文介绍一种采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、8D锁存器(74LS373)、运放电路、按键等,通过按键控制可产生锯齿波、梯形波、三角波、方波和正弦波共五种波形,同时其波形频率可调。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。

关键词:单片机 D/A转换器 8D锁存器

目 录

摘要 ........................................................... I

第1章 绪论 ................................................... 1

1.1 课题背景 .............................................. 1

1.2 本系统研究的国内外现状 ................................ 2

1.3 本文主要研究内容和工作 ................................ 3

第2章 51单片机的结构 ........................................ 4

2.1 内部结构概述 .......................................... 4

2.2 CPU .................................................. 4

2.2.1 运算器 ........................................... 5

2.2.2 程序计数器PC ..................................... 5

2.2.3 指令寄存器 ....................................... 5

2.3 存储器和特殊功能寄存器 ................................ 5

2.4 P0~P3口结构及功能 .................................... 5

2.4.1 P0口结构及功能 ................................... 5

2.4.2 P1口结构及功能 ................................... 6

2.4.3 P2口结构及功能 ................................... 6

2.4.4 P3口结构及功能 ................................... 7

2.5 时钟电路和复位电路 .................................... 8

2.5.1 时钟电路 ......................................... 8

2.5.2 单片机的复位状态 ................................. 9

2.6 本章小结 .............................................. 9

第3章 系统的硬件设计 ....................................... 111

3.1 系统硬件总体设计 ..................................... 11

3.2 DAC0832的引脚及功能 ................................ 11

3.3 74LS373的引脚及功能 ................................. 12

3.4 系统硬件原理 ......................................... 13

3.5 本章小结 ............................................. 14

第4章 系统的软件设计 ........................................ 15

4.1 主程序流程图 ......................................... 15

4.2 波形的产生 ........................................... 16

4.2.1 设计思路 .........................错误!未定义书签。

4.2.2 锯齿波的产生 .....................错误!未定义书签。

4.2.3 梯形波的产生 .....................错误!未定义书签。

4.2.4 三角波的产生 .....................错误!未定义书签。

4.2.5 方波的产生 .......................错误!未定义书签。

4.2.6 正弦波的产生 .....................错误!未定义书签。

4.3 本章小结 ............................................. 22

总结 .......................................................... 23 致谢 ..........................................错误!未定义书签。 参考文献 ...................................................... III

第1章 绪论

第1章 绪论

1.1 课题背景

波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。

在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。

在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单波形。

90 年代末,出现几种真正高性能、高价格的函数发生器、但是HP公司推出了型号为 HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和 HP1776A波形发生软件组成。HP8770A实际上也只能产生8 中波形,而且价格昂贵。不久以后,Analogic公司推出了型号为 Data-2020的多波形合成器,Lecroy 公司生产的型号为9100 的任意波形发生器等。

到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的DDS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent的产品 33220A能够产生17种波形,最高频率可达到 20M,2005 年

燕山大学本科生课程设计(论文)

的产品N6030A能够产生高达 500MHz的频率,采样的频率可达 1.25GHz。由上面的产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面:

(1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 v=f (t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic ,Visual C 等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。

(2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。

(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。

1.2 本系统研究的国内外现状

早在1978年,由美国Wavetek公司和日本东亚电波工业公司公布了最高取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit,主要用于振动、医疗、材料等领域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成

第1章 绪论

化,波形发生器的性能有了飞速的提高,变得操作越来越简单而输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的,编辑功能增加得越多,波形形成的操作性越好。

1.3 本文主要研究内容和工作

近年来,波形发生器在各种领域中得到越来越广泛的应用。本系统主要通过研究51单片机的功能,外加D/A转换器等其它器件,进行硬件设计和软件编程,完成锯齿波、梯形波、三角波、方波和正弦波共五种波形的形成。波形频率的变化由程序来控制,即通过改变定时器的初值来改变输出波形相邻两点的时间间隔,从而实现波形频率的改变。

基于以上系统设计思想,本文结构如下:

第1章,绪论。简要介绍了论文选题的背景及意义、课题的来源及各章节结构。

第2章,详细介绍51单片机的结构,为后面的应用做准备;

第3章,系统硬件原理及电气图,详细介绍了外围设备的结构和功能。

第4章,系统软件流程图及带详细注释源程序。

总结与致谢。首先对本课题完成的工作进行了总结,其次对导师和给予指导或协助完成论文工作的个人表示感谢。

燕山大学本科生课程设计(论文)

第2章 51单片机的结构

2.1 内部结构概述

典型的MCS-51单片机芯片集成了以下几个基本组成部分:

1) 一个8位的CPU;

2) 128B或256B单元内数据存储器(RAM);

3) 4KB或8KB片内程序存储器(ROM或EPROM);

4) 4个8位并行I/O接口P0~P3;

5) 两个定时/计数器;

6) 5个中断源的中端管理控制系统;

7) 一个全双工串行I/O口UART(通用异步接收、发送器);

8) 一个片内振荡器和时钟产生电路。

图2-1 单片机引脚图

2.2 CPU结构

CPU是单片机的核心部件。它由运算器和控制器等部件组成。

第2章 51单片机的结构

2.2.1 运算器

51单片机的运算器由算术逻辑单元(ALU)、累加器ACC、寄存器B和程序状态字(PSW)组成。算术逻辑单元(ALU)是微处理器的核心,它由加法器、布尔处理器和两个暂存器TMP1和TMP2组成。运算结果的状态由程序控制字(PSW)保存。累加器ACC、寄存器B和程序状态字(PSW)在功能上属于运算器,但在单片机物理位置上属于内部数据存储器。

2.2.2 程序计数器PC

PC是一个16位的计数器,用于存放一条执行的指令地址,寻址范围为64KB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。

2.2.3 指令寄存器

指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。

2.3 存储器和特殊功能寄存器

存储器是计算机系统中的记忆设备,用来存放程序和数据。它根据控制器指定的位置存入和取出信息。

特殊功能寄存器(SFR)位于片内RAM的80H~FFH,共有21个。它又可分为5类:与运算器相关的寄存器、指针类寄存器、与串并口相关的寄存器、与中断相关的寄存器、与定时/计数相关的寄存器。

2.4 P0~P3口结构及功能

2.4.1 P0口结构及功能

P0口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个与门及一个反相器组成,如图2-2所示。

燕山大学本科生课程设计(论文)

图2-2 P0口位结构图

P0口具有两种功能:第一,P0口可以用作通用I/O接口;第二,P0口可以用作地址/数据总线。

2.4.2 P1口结构及功能

P1口是由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,驱动电路内部设有上拉电阻,如图2-3所示。

图2-3 P1口位结构图

P1口是51单片机唯一的单功能口,是通用的准双向I/O口。

2.4.3 P2口结构及功能

P2口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个反相器组成,如图2-4所示。

第2章 51单片机的结构

图2-4 P2口位结构图

P2口共有两个功能:第一个功能与上述两组引脚的第一功能相同,即可用作通用I/O口;它的第二功能与P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位。

2.4.4 P3口结构及功能

P3口由一个输出锁存器、三个三态输入缓冲器、输出驱动电路和一个与非门组成,如图2-5所示。

图2-5 P3口位结构图

P3口有两个功能:第一个功能与其余三个端口的第一功能相同;第二功能做控制用,每个引脚的功能不同:

P3.0——RXD:串行口接收数据输入端 P3.1——TXD:串行口发送数据输出端 P3.2——INT0:外部中断申请输入端0

燕山大学本科生课程设计(论文)

P3.3——INT1:外部中断申请输入端1 P3.4——T0:外部计数脉冲输入端0 P3.5——T1:外部计数脉冲输入端1 P3.6——WR:写外设控制信号输出端 P3.7——RD:读外设控制信号输出端

2.5 时钟电路和复位电路

单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。

2.5.1 时钟电路

单片机的时钟信号通常有两种产生方式。一种是内部时钟方式;另一种是外部时钟方式。如图2-6所示。

图2-6 时钟方式图

内部时钟方式只要在单片机的XTAL1和XTAL2引脚外接晶振就构成了自激振荡器,并在单片机内部产生时钟脉冲信号。外部时钟方式是把外部已有的时钟信号引入到单片机内,常用于多片单片机同时工作,已使各单片机同步。

单片机的时序单位:晶振周期为时钟脉冲频率的倒数,为最小的时序单位,也称T状态;时钟周期包含两个晶振周期,也称S状态;完成一个基本操作所需要的时间称为机器周期,由6个时钟周期组成,即12个晶振周期;指令的执行时间称为指令周期,通常含有1~4个机器周期。

第2章 51单片机的结构

2.5.2 单片机的复位状态

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和手动复位。上电复位要求接通电源后,自动实现复位操作。手动复位是当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表(表中符号*为随机状态)。

表2-1 特殊功能寄存器复位后的状态表

2.6 本章小结

本章主要详细介绍了51单片机的结构及相应的功能,如CPU结构、存储器和特殊功能寄存器、P0~P3口结构及功能、时钟电路和复位电路,为下

燕山大学本科生课程设计(论文)

一步的硬件和软件的设计做好充分准备。

第3章 系统的硬件设计

第3章 系统的硬件设计

3.1 系统硬件总体设计

波形的产生是通过51单片机执行某一波形发生器程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应

图3-1 总体设计图

3.2 DAC0832的引脚及功能

DAC0832是双列直插式8位D/A转换器,完成数字量输入到模拟量输出的转换。

图3-2 DAC0832引脚图

DAC0832结构:

燕山大学本科生课程设计(论文)

D0~D7 :8位的数据输入端,D7为最高位,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

ILE:数据锁存允许控制信号输入线,高电平有效; CS:片选信号输入线(选通数据锁存器),低电平有效;

WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ms)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ms)有效。

WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ms)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换;

IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0;

IOUT2:模拟电流输出端2,IOUT2与IOUT1的和为一个常数; Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; Vcc:电源输入端,范围为(+5~+ 15)V; VREF:基准电压输入线,范围为(-10~+10)V; AGND:模拟信号地; DGND:数字信号地。

3.3 74LS373的引脚及功能

74LS373是常用的地址锁存器芯片,它实质是一个带三态缓冲输出的8D触发器。

第3章 系统的硬件设计

图3-3 74LS373引脚图

D0~D7:数据输入端; Q0~Q7:数据输出端;

OE:三态允许控制端,低电平有效;当OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线;当OE为高电平时,Q0~Q7呈高阻态,既不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

LE:锁存允许端。当锁存允许端LE为高电平时,Q随数据D而变;当LE为低电平时,Q被锁存在已建立的数据电平。

3.4 系统硬件原理

51单片机的最小系统最小系统由振荡电路、电源电路、复位电路、EA及应用程序组成。它有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送入D/A转换电路。第二种是单级缓冲型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换。本电路仿真图如下:

燕山大学本科生课程设计(论文)

图3-4 系统仿真图

3.5 本章小结

本章分别介绍了系统硬件的总体设计、DAC0832的引脚及功能、74LS373引脚及功能和系统硬件原理,至此,整个系统的硬件电路设计完成,只有详细弄懂了各个硬件接口才能为后面的系统软件设计编写做好准备。

第4章 系统的软件设计

第4章 系统的软件设计

系统软件由主程序和产生波形的子程序组成,软件设计主要是产生各种波形的子程序的编程。通过编程可得到各种波形。频率的改变可采用插入延时子程序的方法来实现。

4.1 主程序流程图

图4-1 主程序流程图

燕山大学本科生课程设计(论文)

4.2 波形的产生

4.2.1 设计思路

利用中断,当5个开关中有任意一个闭合时,跳转至中断程序,在中断程序中判断是哪一个按键闭合,跳转至相应的程序,执行输出波形的操作,每输出一个点之后,判断按键是否断开,如果依旧闭合,则继续输出,如果已经断开,则结束中断程序。

图4-1 主程序流程图

程序如下:

ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0040H

;更改堆栈指针,避免堆栈与工作寄存器区发生;外部中断请求0为下降沿触发方式 ;中断允许总开关打开 ;允许外部中断0中断

;外部中断0

MAIN:MOV SP,60H 冲突

SETB IT0 SETB EA SETB EX0

第4章 系统的软件设计

INT00:CLR EA

PUSH Acc

;关中断 ;现场保护 ;开中断 ;如果K0键闭合,则跳转至IR0输出锯齿波 ;如果K1键闭合,则跳转至IR1输出梯形波 ;如果K2键闭合,则跳转至IR2输出三角波 ;如果K3键闭合,则跳转至IR3输出方波 ;如果K4键闭合,则跳转至IR4输出正弦波 ;关中断 ;现场恢复 ;开中断 PUSH PSW SETB EA JNB P1.0,IR0 JNB P1.1,IR1 JNB P1.2,IR2 JNB P1.3,IR3 JNB P1.4,IR4 INTIR:CLR EA POP Acc POP PSW SETB EA

RETI

4.2.2 锯齿波的产生

锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。

锯齿波发生子程序如下:

IR0: MOV R0,#0FEH ;设置端口地址

MOV A,#00H

LOOP:MOVX @R0,A ;写入

JB P1.0,INTIR ;如果k0键已经断开,则返回

INC A ;A加一

SJMP LOOP ;循环

LJMP INTIR ;返回

4.2.3 梯形波的产生

梯形波的实现是设置一个初值,然后进行加一,当加到某个数时延

燕山大学本科生课程设计(论文)

时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。

梯形波发生子程序如下:

IR1: MOV R0,#0FEH

MOV A,#00H ;写入 ;如果k1键已经断开,则返回 ;A加一 ;循环 ;如果已经溢出,则减一,减一之后A的值为255 ;延时 ;如果k1键已经断开,则返回 ;写入 ;如果k1键已经断开,则返回 ;循环 ;如果减到0,则跳转至UP,继续执行加一操作 ;返回

;延时子程序 JB P1.1,INTIR INC A JNZ UP DEC A UP: MOVX @R0,A ;设置端口地址 LCALL DELAY JB P1.1,INTIR MOVX @R0,A JB P1.1,INTIR JNZ DOWN SJMP UP LJMP INTIR DOWN:DEC A DELAY :MOV R7,#100

DELAY1:MOV R6,#10

NOP DELAY2:DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET

4.2.4 三角波的产生

三角波的实现是设置一个初值,当加到某个值的时候,执行减一操作,减到初值时,再加一。

三角波发生子程序如下:

第4章 系统的软件设计

IR2: MOV R0,#0FEH

MOV A,#00H UP2: MOVX @R0,A JB P1.2,INTIR INC A JNZ UP2 ;设置端口地址 ;写入 ;如果k2键已经断开,则返回 ;A加一 ;循环 ;A减一 ;写入 ;如果k2键已经断开,则返回 ;循环 ;如果减到0,则跳转至UP2,继续加一操作 ;返回 DOWN2: DEC A MOVX @R0,A JB P1.2,INTIR JNZ DOWN2 SJMP UP2 LJMP INTIR

4.2.5 方波的产生

方波的实现只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。

方波发生子程序如下:

IR3: MOV R0,#0FEH

POSI:MOV A,#00H

MOVX @R0,A LCALL DELAY JB P1.3,INTIR MOVX @R0,A LCALL DELAY JB P1.3,INTIR SJMP POSI LJMP INTIR ;设置端口地址 ;给A赋值0x00 ;写入 ;延时 ;如果k3键已经断开,则返回 ;给A赋值0xFF ;写入 ;延时 ;如果k3键已经断开,则返回 ;跳转至POSI,继续下一个波形的输出 ;返回

NEGA:MOV A,#0FFH

燕山大学本科生课程设计(论文)

4.2.6 正弦波的产生

正弦波的实现需要查表,每查一次表,输出一个数值,之后查下一个数值继续输出,当一个波形的256个数值全部输出之后,从头开始继续输出。

正弦波发生子程序如下:

IR4:

db

080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh

h,0d8h

0f4h

db db

MOV R0,#0FEH MOV R1,#00H MOV A,R1 ;设置端口地址 XX: LCALL HANSHU MOVX @R0,A JB P1.4,INTIR INC R1 SJMP XX LJMP INTIR ;调用查表函数 ;写入 ;如果k4键已经断开,则返回 ;继续查表 ;返回 HANSHU: MOV DPTR,#TAB1 MOVC A,@A+DPTR RET TAB1: db 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5 db 0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh

第4章 系统的软件设计

0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h

0dch

h,0b3h

db0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h

5h,052h

h,028h

dh,00ch

1h,000h

8h,00ah

h,024h

db

db 0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh, db 0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6 db 080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,05 db 04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02b db 026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00 db 00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,00 db 000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,00 db 00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022

燕山大学本科生课程设计(论文)

026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh

ah,07dh db 04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07

4.3 本章小结

本章在上一章详细介绍硬件电路设计的基础上,通过对产生各种波形的程序进行编程,完成了波形的输出及改变步长对频率进行控制。至此整个系统的软硬件基本设计完成。

总结

总结

本次的设计中利用AT89C51和DAC0832以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。

在这次的软件设计中,程序设计采用的是汇编语言。汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。但是汇编语言也存在编写的代码非常难懂,不好维护,很容易产生bug,难于调试的缺点。因此,在大型程序的设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已成熟为专业水平的高级语言。而且,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。不过就本次课程设计来说,汇编语言还是适用的。

由于此次是第一次进行课设,有些软件以及芯片以前从未接触过,因此还不是很得心应手,所以在设计中遇到了很多问题及难点。比如:proteus软件以及wave6000的使用;D/A转换器和锁存器的结构、功能等等,这些都需要自己去查找资料了解这些。

通过此次的课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的元件,提高了自己的动手能力。而且在编程时重新温习了刚学不久的51单片机以及MATLAB语言,不仅让我学习了一些新的知识,而且对以前所学内容进行了巩固,让我懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是所学的理论知识得到验证,更能加深对理论知识的理解,让我受益匪浅。

燕山大学本科生课程设计(论文)

致谢

在这两周的课程设计期间,在王振臣教授、陈志旺讲师的指导下,学习到了科学研究的基本方法,具备了一定的科研能力,使我得以顺利地完成课程设计。因此,我首先要诚挚的感谢两位老师,老师渊博的学识、严谨的治学态度、和蔼的为人使我深受感染。尤其是在答疑期间,老师对我课程设计的修改提出了宝贵的意见,由衷的表示感谢!其次,我要感谢王凯胜同学、孟唐宇同学、苏侠飞同学和张冬琪同学在软硬件设计时给予的帮助,让我对proteus和wave的操作使用有了一定的理解,谢谢你们!(由于水平有限,文中难免有不妥和错误之处,恳请老师批评指正!)

参考文献

参考文献

[1] 陈志旺,李亮。51单片机快速上手。机械工业出版社。

[2] 薛定宇。控制系统计算及辅助设计——MATLAB语言与应用(第2版)。清华大

学出版社。

[3] 邹虹。单片机波形发生器的设计。重庆邮电学院学报。

[4] 毅刚,彭喜元。单片机原理与应用设计。电子工业出版社。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn