微机原理课程设计报告.doc_第1页
微机原理课程设计报告.doc_第2页
微机原理课程设计报告.doc_第3页
微机原理课程设计报告.doc_第4页
微机原理课程设计报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口技术课程设计 目 录一设计内容1二设计原理及方案1三汇编源程序代码2四实施结果10五课程设计体会13六参考文献141. 设计内容利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计波形输出的切换方式。主要功能:本题用到8255,dac0832芯片1. 产生四种波形2. 键盘切换波形3. 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波)2. 设计原理及方案 设计原理:D/A转换器(DAC0832)产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如三角波、正弦波、锯齿波、方波等。8255A实现波形切换:从8255的C口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出三角波、正弦波、锯齿波、方波等。通过键盘切换波形,DAC0832输出各种波形,同时共阴极数码管显示按键号:1-三角波,2-正弦波,3-锯齿波,4-方波。电路原理图(设计连接图):3. 汇编源程序代码;*功能说明*;题目二 利用D/A设计波形发生器 ;利用D/A设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,;至少设计一种波形切换方式。;功能:本项目用到8255,DAC0832芯片;1 产生四种波形;2 键盘切换波形;3 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波);*主程序*io3 EQU 600h ;8255io4 EQU 800h ;DAC 0832;*数据段定义data segmentsin_wave db 200,195,181,159,131 db 100,69,41,19,5,0,0 ;正弦波幅值LED DB 06H,5BH,4FH,66H ;共阴极段码表data ends;*code segmentassume cs:code,ds:datastart:mov ax,data ;建立DS段地址mov ds,axcall jian;*三角波san:mov Bx,255SAN3:MOV CX,BXmov al,0mov dx,io4san1:out dx,al ;三角波形上升段call delayinc alloop san1mov cx,BXmov al,BLmov dx,io4san2:out dx,al ;三角波形下降段call delaydec alloop san2call jian;*正弦波sin: mov cx,11mov bx,0mov dx,io4lea si,sin_wavesin1:mov al,sibx ;正弦波下降段out dx,alcall delay1inc bxloop sin1mov cx,11sin2:mov al,sibx ;正弦波上升段out dx,alcall delay1dec bxloop sin2call jian;*锯齿波juchi: mov Bx,255juchi1:mov cx,bxmov al,blmov dx,io4juchi2:out dx,al ;下降沿call delaycall delaydec alloop juchi2call jian;*方波fang:mov Bx,255fang1:mov al,bl ;高电平段mov dx,io4out dx,alcall delay1MOV al,0 ;低电平段out dx,alcall delay1call jian;*延时delay proc;延时子程序一push axpush bxpush cxpush dxmov cx,50lp0:noploop lp0pop dxpop cxpop bxpop axretdelay endp delay1 proc;延时子程序二push axpush bxpush cxpush dxmov cx,1250lp1:noploop lp1pop dxpop cxpop bxpop axretdelay1 endp ;*键盘选波形jian proc nearjian1: mov al,10001000B ;c口高四位输入 MOV DX,io3+6HOUT DX,AL ;送控制字MOV AL,0MOV DX,io3+4HOUT DX,AL ;c口低四位为0即行输出为0nokey:in al,dx ;读c口高四位and al,0f0H ;屏蔽c口低四位cmp al,0f0Hjz nokey ;无键按下则循环call delay1;延时in al,dxshr al,1 ;列信息存于al低四位shr al,1shr al,1shr al,1mov bl,0 ;初始列变量BL为0mov cx,4jian2:shr al,1 ;逐列检测,找出为0信号jnc jian3inc blloop jian2jian3:mov al,10010001b ;c口低四位输入mov dx,io3+6hout dx,al ;送控制字mov al,0mov dx,io3+4hout dx,al ;c口高四位为0即列输出为0in al,dxand al,0fh ;屏蔽高四位cmp al,0fhjz jian1 ;出错从头来mov bh,0 ;初始行变量为0mov cx,4jian4:shr al,1jnc jian5inc bh ;初始行变量BH为0loop jian4jian5:shl bh,1shl bh,1add bh,bl ;BH为键号MOV CH,BH ;保存键号在ch中MOV AL,BH ;数码管显示波行号LEA BX,LED ;1三角波2正弦波3锯齿波4方波XLATout dx,alMOV DX,IO3+2OUT DX,ALMOV BX,155 ;幅值一MOV DX,IO3IN AL,DXcmp ch,0jz sancmp ch,1jz sincmp ch,2jz juchicmp ch,3jz fangretjian endpcode endsend start4. 实施结果(1)键盘选择1三角波(2)键盘选择2正弦波(3)键盘选择3锯齿波:(4)键盘选择4矩形波 5. 课程设计体会在为期近两周的微机原理课程设计中,我们小组利用所学微机的理论知识进行软硬件整体设计,同时锻炼了我们理论联系实际,提高我们的综合应用能力。我们这次的课程设计是以微机为基础,设计并开发能输出多种波形(如三角波,正弦波,锯齿波,方波等)的发生器,同时能够通过8255A实现共阴极数码管数字的显示。我们掌握了各个芯片(如0832,8255A等)的功能特性及接口方法,并能运用其实现一个简单的微机应用系统功能器件。在平时的学习中,我们所学的知识都是课本上的,再机房的练习大家也都是分散对各个章节的内容进行练习。因此,缺乏一种系统的设计锻炼。在课程结束之后,这样的课程设计有助于我们将知识系统的总结在一起。在这次的软件设计中,程序设计采用的是汇编语言。同时运用Proteus软件进行芯片的连接与组合,进行调试仿真。汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好地发挥硬件的功能。但是,汇编语言也存在编写的代码非常难懂,不好维护,难于调试的缺点。因此,在大型的程序设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级汇编语言,经过多年的发展,现已成为专业水平的高级语言。由于真正意义上的程序设计还不多,因此还不是很得心应手,所以再设计中遇到一些问题和难点。比如:在程序设计中如何实现程序结构的最优化,以达到较高的质量,这是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论