1、 目目 录录 一一设计内容设计内容 1 1 二二设计原理及方案设计原理及方案 1 1 三三汇编源程序代码汇编源程序代码 2 2 四四实施结果实施结果 1010 五五课程设计体会课程设计体会 1 13 3 六六参考文献参考文献 1414 一.设计内容设计内容 利用 DAC 设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自 行设计波形输出的切换方式。 主要功能:本题用到 8255,dac0832 芯片 1. 产生四种波形 2. 键盘切换波形 3. 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波) 二二. .设计原理及方案设计原理及方案 设计原理: D/A 转换器(
2、DAC0832)产生各种波形的原理:利用 D/A 转换器输出的模拟量与输入数 字量成正比关系这一特点,将 D/A 转换器作为微机输出接口,CPU 通过程序向 D/A 转换器 输出随时间呈现不同变化规律的数字量,则 D/A 转换器就可输出各种各样的模拟量,如三 角波、正弦波、锯齿波、方波等。 8255A 实现波形切换:从 8255 的 C 口读入外接开关的信号,CPU 读入不同信号值,从而 执行不同的代码,向 D/A 转换器传送不同的数据,控制 D/A 转换器输出三角波、正弦波、 锯齿波、方波等。 通过键盘切换波形,DAC0832 输出各种波形,同时共阴极数码管显示按键号:1-三角波, 2-正弦
3、波,3-锯齿波,4-方波。 电路原理图(设计连接图) : 接口技术课程设计 1 三.汇编源程序代码 ;*功能说明* ;题目二 利用 D/A 设计波形发生器 ;利用 D/A 设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波, ;至少设计一种波形切换方式。 ;功能: 本项目用到 8255,DAC0832 芯片 ; 1 产生四种波形 ; 2 键盘切换波形 ; 3 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波) ;*主程序* io3 EQU 600h ;8255 接口技术课程设计 2 io4 EQU 800h ;DAC 0832 ;*数据段定义 data segment s
4、in_wave db 200,195,181,159,131 db 100,69,41,19,5,0,0 ;正弦波幅值 LED DB 06H,5BH,4FH,66H ;共阴极段码表 data ends ;* code segment assume cs:code,ds:data start: mov ax,data ;建立 DS 段地址 mov ds,ax call jian ;*三角波 san: mov Bx,255 SAN3: MOV CX,BX mov al,0 mov dx,io4 san1: out dx,al ;三角波形上升段 call delay inc al loop san1
5、 mov cx,BX 接口技术课程设计 3 mov al,BL mov dx,io4 san2: out dx,al ;三角波形下降段 call delay dec al loop san2 call jian ;*正弦波 sin: mov cx,11 mov bx,0 mov dx,io4 lea si,sin_wave sin1: mov al,sibx ;正弦波下降段 out dx,al call delay1 inc bx loop sin1 mov cx,11 sin2: mov al,sibx ;正弦波上升段 out dx,al call delay1 dec bx 接口技术课程设计 4 loop sin2 call jian ;*锯齿波 juchi: mov Bx,255 juchi1: mov cx,bx mov al,bl mov dx,io4 juchi2: out dx,al ;下降沿 call delay call delay dec al loop juchi