1、目 录一设计目的2二设计要求.2三设计原理及方案.2四实现方法.41 流程图.42 实验电路及连线.53 汇编语言.6五实施结果.8六改进意见及建议.8七设计体会9八参考文献9一 设计目的1 了解 D/A 转换的基本原理。2了解 D/A 转换芯片 0855 的性能及编程方法。3了解单片机系统中扩展 D/A 转换的基本方法。二 设计要求1 利用 D/A 设计一个波形发生器,能分别产生三角波、锯齿波和方波。2 并利用 8255(自行定义)进行输出波形选择。3 并对 8255 选择输出波形,将以上波形显示在示波器屏幕上。4 设计电路并在实验台上连接线路。三 设计原理及方案设计原理1 D/A 转换是把
2、数字量转换成模拟量的变换,实验台上 D/A 电路输出的是模拟电压信号。其特点是接收、保持和转换的是数字信息,不存在随温度和时间的飘移问题,因此电路的抗干扰性能较好。2 本次实验采用 8 位 D/A 转换器 DAC0832 芯片,其特点为价格低廉、接口简单及转换控制容易等特点。这类产品由 8 位输入锁存器、8 位 DAC 寄存、8 位 D/A 转换电路及转换控制电路组成,能和 CPU 数据总线直接相连,属中速转换器,大约在1 微秒内将一个数字输入转换成模拟输出。3 利用 8255 可编程并行接口芯片,实现数据的输入/输出,实验中用 8255PA 口做输出,接 LED 二极管,用 8255PB 口
3、作输入,接 8 个乒乓开关。设计方案1 设计实验整体思路。2 拟订实验计划。3 画实验流程图。4 以 8255 并行输入输出控制为主线设计总体实验程序框架,利用 8255 选择控制所显示的波形。5 设计锯齿波。6 设计方波。7 设计三角波。8 将 3 种波形设计代码嵌入到 8255 并行输入输出控制程序中。9 连接线路、示波器。10 运行程序,观察实验现象。11 对程序进行检查、调整。DAC0832 原理图及引脚图:8255 引脚图:四 实现方法1 实验框图(1)开 始置 计 数 器 初 值波 形 数 据启 动 D/A否 是转 换 完 毕 ?8255输 入 输 出 芯 片乒 乓 开 关 选 择
4、 波 形LED发 光 示 波 器 显 示结 束(2)波 形 数 据锯 齿 波方 波三 角 波2实验电路及连线2 汇 编语言连线 连接孔 1 连接孔 21 DA_CS CS22 -5V-+5V LED 灯3 -5V-+5V 示波器4 8255_CS CS15 PA0 L06 PA1 L17 PA2 L2CS0832 equ 0a000hmode equ 092h ;方式 0PortA equ 8000h ;PortAPortB equ 8001hPortC equ 8002hCAddr equ 8003h ;控制字地址code segmentassume cs:code;主程序start pro
5、c nearmov al, modemov dx, CAddr out dx, al ;输出控制字;PortA 输出wait: mov dx, portain al, dxtest al, 01hjnz call_wave1 ;调用子程序 wave1test al, 02hjnz call_wave2 ;调用子程序 wave2test al, 04hjz waitcall wave3 ;调用子程序 wave3jmp wait ;跳转call_wave1: call wave1 ;wave1:锯齿波jmp startcall_wave2: call wave2 ;wave2:方波jmp star
6、t;子程序 wave1wave1 proc nearmov al, 0l1: mov dx, CS0832out dx, alinc alpush axcall dealy ;调用 dealymov dx, portain al, dx test al, 01h ;分配 01hpop axjz retu1 ;等于零运行 retu1jmp l1 ;跳转retu1: ret ;重置wave1 endp;wave1 子程序:dealydealy procmov cx, 1000lop: mov bx, 1lop1: nopdec bxjnz lop1loop lopretdealy endp;子程序
7、 wave2wave2 proc nearmov al, 0mov dx, CS0832out dx, alcall dealy1 ;调用 dealy1mov al, 255out dx, al ;调用 dealy1call dealy1mov dx, portain al, dx test al, 02h ;分配 02hjz retu2 ;等于零运行 retu2jmp wave2retu2: ret ;重置wave2 endp;wave2 子程序:dealy1dealy1 procmov cx, 30000lop2: mov bx, 10lop3: nopdec bxjnz lop3loop
8、 lop2retdealy1 endp;子程序 wave3:三角波wave3 proc nearmov al, 0ffhll: inc almov dx, CS0832l2: out dx, alinc aljnz l2l3: dec alout dx, aljnz l3push ax mov dx, portain al, dxtest al, 04h ;分配 04hpop axjz retu3 ;等于零运行 retu3jmp llretu3: ret ;重置wave3 endpcode ends end start ;结束五实施结果点击“运行”按钮后,拨动 L0 开关,输出锯齿波信号,LE
9、D 灯按特定规则闪亮,示波器显示锯齿波。拨动 L1 开关,输出方波信号,LED 按特定规则闪亮,示波器显示方波。拨动 L2 开关,输出三角波信号,LED 按特定规则闪亮,示波器显示三角波。在示波器上观察各种波形,可计算出相应的频率与周期。六改进意见及建议在设计实验方案前拟定更加清晰细腻的实验思路及流程图,这样更有利于接下来更具体的实验步骤和相关细节。能制定更多的选择及输出相关波形的方式,如利用按键进行波形选择等等。改进波形代码,使之所输出的波形更加清晰、明显,易于观察。七设计体会通过这次课程设计,提高了自己综合应用所学的理论知识解决实际工程设计和应用问题的能力,加强了自己动手、动脑和理论联系实
10、际的能力,培养了自己敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题的能力。微机原理及接口技术是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使自己学会系统地综合运用所学的理论知识,提高在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。通过这次的设计,使自己熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤。在独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题等过程中,真正做到了理论联系实际,提高了动手能力和分析问题、解决问题的能力
11、。通过本次实验使自己熟练掌握微机系统与接口扩展电路的设计方法,熟练应用 8086 汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,也熟悉了微机系统的硬软件开发工具的使用方法。当然在本次课程设计中,也让我发现了自己的诸多不足之处,很多微机原理的基础知识掌握仍旧不够扎实,在设计过程中也犯下了很多低级错误,导致了实验设计的效率受到了影响,也走了不少弯路。在纠正这些错误的过程中,也使自己走出了很多以前存在的认识误区。总之,这次的课程设计,对自己的提高是巨大的。最后,还是要郑重的感谢老师在本次 4 天的课程设计过程中耐心的指导和帮助,因此,本小组才能成功的完成本次设计。谢谢老师!八参考文献厉荣卫, 微机原理与接口技术 ,科学出版社。陈志英, 单片机技术实验指导书 ,厦门理工学院出版社。杨全胜, 现代微机原理与接口技术 ,电子工业出版社。刘乐善, 微型计算机接口技术原理及应用 ,华中理工大学出版社。同组人:顾欣 杨彪2008 年 7 月 3 日