ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:301.23KB ,
资源ID:10062130      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10062130.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计波形发生器.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计波形发生器.docx

1、微机原理课程设计波形发生器微机原理课程设计波形发生器基本要求:(1) 通过按键选择波形,波形选择(方波、三角波)。8255 A 和0832(2) 通过按键设定波形的频率,同时波形频率在数码管上显示。8255A(3) 频率设定后,通过8253精确计时来设置波形宽度大小,比如方波的占空比。(4) 8259A产生中断,用示波器显示输出波形。附加要求:(1) 通过按键可以增大或者降低频率;(2) 显示正弦波。 一 理论部分1.1 课程设计的目的 21.2 课程设计要求与内容 21.3 总体设计方案 2(1)设计思想及方案论证2(2)总体设计方案框图31.4 系统硬件设计 41.5 系统软件设计 5二

2、实践部分2.1 系统硬件原理简介 62.2 程序调试 92.3 软件系统的使用说明 9三 课程设计结果分析3.1 实验结果 103.2 结果分析 11四 课程设计总结 11五 附录5.1源程序及说明 12波形发生器一 理论部分1.1 课程设计的目的 (1)综合模拟电子线路、数字电子技术和微机原理等多门专业基础课程的知识,使学生对以计算机为核心的通信、测量或控制系统有个全面了解和实践的过程。(2)掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力,强化本学科内容并扩展知识面。(3)体验分析问题、提出解决方案、通过编程等手段实现解决

3、方案、不断调试最终达到设计要求的全过程。(4)培养学生的创造力和对专业的适应性。1.2 课程设计的内容和要求1、通过按键选择波形,波形选择(方波、三角波、正弦波)。8255 A 和08322、通过按键设定波形的频率,同时波形频率在数码管上显示。8255A3、频率设定后,通过8253精确计时来设置波形宽度大小,比如方波的占空比。4、8259A产生中断,用示波器显示输出波形。5、通过按键可以增大或者降低频率;6、画出电路原理图,说明工作原理,编写程序及程序流程图。1.3 总体设计方案(1)设计思想及方案论证由于要求达到模拟信号波形发生,因此要由D/A转换芯片0832来来完成此项任务,由8253形成

4、波形的主要做法是:先输出一个下限电平,将其保持t然后输出一个稍高的电平,在保持t,然后重复此过程,因此需要延长0832输入数据的时间间隔来改变频率。如图1信号发生波形图所示。0832输入的数据的延时可以通过软件完成,也可以通过硬件完成。由于实验要求输出的波的频率可以改变,且精确,所以选用硬件延时 硬件延时主要由计时器8253和中断控制器8259来实现。由8253输出的方波的高低电平,来触发8259的IR0端,8259给CPU中断信号,CPU中断来执行相应的中断子程序,中断子程序为向0832输出数据的程序,通过选择此程序可以产生锯齿波,方波,正弦波。由于0832产生的方波的频率可以控制,所以每次

5、中断执行波形发生程序的时间间隔可以精确控制。以此来控制输出的波形频率。最后通过8255驱动LED数码显示管,实现对输入的频率的显示,由键盘直接输入波形频率,通过LED数码显示管显示。(2)总体设计方案框图总体设计就是先由8255驱动LED显示输入的频率,再通过8253定时中断,中断的子程序来执行输出,输出的信号经过信号发生器形成波形。1.4系统硬件设计硬件设计电路图1.5系统软件设计软件设计流图二 实践部分2.1系统硬件原理简介(一)可编程并行I/O接口芯片8255A8255A可编程并行I/O接口芯片,为40个引脚的双列直插芯片8255A具有3个相互独立的输入/输出通道端口,三种工作方式。方式

6、0基本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式;图5 8255A引脚图引脚功能:RESET:复位信号,高电平有效,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。RD:读命令信号输入,低电平有效,用来控制数据由8255A读WR:写命令信号输入,地点平有效,用来控制写到8255ACS:片选信号输入,通过译码器与地址总线相连D0D7:三态双向数据总线,8255与CPU数据传送的通道,实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。(二)可编程定时/计数器Intel8253Intel8253是一种能够完成定时和计数的芯片,8253内部有

7、3个16位计数器通道,通过对他们编程,每个计数器可以按照6种工作方式工作,并且都可以按2或10进制格式进行计数,最高频率为2HZ。8253还可以用于许多其他场合,比如可作编程方波发生器,分频器等。图6 8253引脚图引脚功能:1、数据缓冲总线数据总线缓冲器是8253与系统总线相连时使用的接口电路,它由8位双相三态缓冲器构成,CPU用输入输出指令对8253进行读写操作的信息都由8位数据总线传输:(1)CPU在对8253进行初始化编程时,向他写入控制字。(2)CPU向某一计时器写入计数初值。(3)从计数器读出计数值。2、读写控制逻辑读写控制逻辑接受系统控制总线送来的输入信号,经由组合后形成控制信号

8、,对各部分操作进行控制。可接受的信号有:(1)CS片选,低电平有效,由数据总线经由IO端口译码电路产生。只有CS低电平时,CPU才能对8253进行读写操作。(2)RD读信号,低电平有效,当RD位地电平时,表示CPU正在读取所选定的计数器的通道的内容。(3)WR写信号,低电平有效。当WR为低电平时,表示CPU正在将计数器初值写入所选中的通道口中,或者将控制字写入内部寄存器中。(4)A1A2 端口选择信号,改变它的值,来选择8253内三个计数器通道。如果8253和与8位数据总线的微机相连,只要将A1A0分别与地址总线相联。如果系统采用的是8086CPU,则数据总线为16位,传输数据时,总是将低8位

9、数据送往偶地址,将高8位送往奇地址。3、计数器8253内部包含三个完全相同俄计数器定时器通道,对3个通道的操作是完全独立的。每个通道都包含1个8位的控制字寄存器,1个16位的减寄存器,和一个锁存器,执行部件是一个16位的减法计数器。每个通道工作时,对输入到CLK引脚上的脉冲按2进制或10 进制格式进行计数。每当输入一个时钟脉冲,计数器减1,当计数器的值减为0时从,从OUT引脚输出一个脉冲信号。GATE引脚上的门控制信号,决定他是否允许计数。(三)可编程中断控制器8259A8259A是8086/8088系列的可编程中断控制器,8259A为28个引脚的双列直插芯片。图7 8259A引脚图主要功能:

10、(1)据8级优先级控制,通过联级可以扩展到64级优先控制。(2)每一级中断可由程序单独屏蔽或允许。(3)可提供中断类型号传送给CPU。(4)可以通过编程选择多种不同工作方式。引脚功能:D7-D0:双向数据线,三态,与数据总线相连。IR7-IR0:外设的中断请求信号输入端,输入,中断请求:可以是电平触发,或者边缘触发。RD:读命令信号,输入,低电平有效,用来控制数据由8259A读WR:写命令信号,输入,地点平有效,用来控制写到8259CS:片选信号,输入,通过译码器与地址总线相连INT:向CPU发出中断请求信号,输出,与CPU的INTR相连INTA:CPU给8259A的中断响应信号,输入。(四)

11、D/A转换器DAC0832NSC公司生产的DAC0832,是一种内部带有数据输入寄存器的8位D/A转化器,采用CMOS工艺制成,芯片内部R-2R梯形电阻网络,用于对参考电压产生的电压进行分流,完成模数转换,转换结果以一组差动电流 IOUT1、IOUT2输出。引脚的功能:VREF : 参考电压输入端。根据需要一定大小的电压,由于它是转换的基准,要求数值正确,稳定性好。VCC:工作电压输入端。AGAN为模拟地,DGAN为数字地。在模拟电路中,所有的模拟地要连在一起然后将模拟地,数字地连接到一个公共接地点。DI7-DI0:数据输入。可直接连接到数据总线。IOUT1IOUT2:互补的电流输出端。为了输

12、出模拟电压,需加转换电路。图8 DAC0832引脚图2.2程序调试由于此次课程设计涉及内容较多程序较长,所以不适合采用整体调试的方式。因此,采用先逐次调试独立功能模块,再调试组合模块,最后调试整体程序的方法。具体过程如下所示:1、调试0832产生三种波形程序2、调试输入频率计算计数初值程序3、调试8253输出方波程序4、调试8259产生中断响应程序5、调试8255通过LED显示数据程序6、调试输入频率计算计数初值并通过LED显示数据程序7、调试8253使8259产生中断的程序8、调试整体程序2.3 软件系统的使用说明 通过键盘输入要输出的波形的频率,然后选择输出的波形,LED数码显示管上可以显

13、示输入的频率,模拟示波器显示DAC0832 AUTO端口输出的波形。三 课程设计结果分析3.1 实验结果 图9 程序运行截图 图10 矩形波 图11 三角波 图12 正弦波3.2 结果分析运行程序时,分别产生100HZ、500HZ、1000HZ、1500HZ、1600HZ的波形,结果发现100HZ-1500HZ的波形频率与所设定的频率一致或有极小的偏差,但从1600HZ开始误差逐渐变大,远远偏离所设定的频率,且小于所设定频率。究其原因是:执行中断程序的时间与中断周期的比值越来越大,或者说随着频率增大执行中断响应的时间对输出波形频率的影响越大。所以,频率越高误差越大。改进方式:精简中断服务程序,

14、减小程序执行时间;在0832输出端加上倍频器,减小0832的输出频率,以此降低误差。四 课程设计总结在这次实习中,我巩固了微机课中所学的知识,了解了各种芯片的的用法,各个接口的名称和功能。进一步锻炼了在微型计算机应用方面的实际工作能力,强化了对微机原理学科内容的认识并扩展了知识面。通过设计实验,使我掌握了模拟量 输入/输出通道的设计,常用控制程序的设计方法,数据处理及非线性补偿技术,以及数字控制器的设计方法。 本设计从几个基础的部分着手总结综合运用各种资料最后完成一个数字信号发生器系统。 通过这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结 合起来,从理论中得出结

15、论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。而且在做课程设计的过程中,不仅是考验自己所学的微机原理与接口技术知识,更是要锻炼自己的分析问题的能力和解决实际问题的能力,而在在此次课程设计过程中得到了充分的体现。 在此次设计中体也会到了交流知识的重要性,在千篇一律的设计中,显示自己的特色,在实用 性和执行效率间取得平衡,是设计的关键所在。通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我更加深刻的了解微机原理与接口技术,以及在常用 编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型 人才打下良好的基础。五

16、附录5.1 源程序及说明;*根据查看端口资源修改下列符号值*IOY0 EQU 3000H ;片选IOY0对应的端口始地址MY8259_ICW1 EQU IOY0+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU IOY0+04H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU IOY0

17、+00H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;实验系统中8259的OCW3端口地址;*IOY1 EQU 3040H ;片选IOY1对应的端口始地址MY8254_COUNT0 EQU IOY1+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY1+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY1+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY1+03H*4 ;8254控制寄存器端口地址;*IOY2 EQU 3080H ;片选IOY2对应的端口始地址M

18、Y8255_A EQU IOY2+00H*4 ;8255的A口地址MY8255_B EQU IOY2+01H*4 ;8255的B口地址MY8255_C EQU IOY2+02H*4 ;8255的C口地址MY8255_MODE EQU IOY2+03H*4 ;8255的控制寄存器地址;*IOY3 EQU 30C0H ;片选IOY3对应的端口始地址DA0832 EQU IOY3+00H*4 ;DA0832的端口地址 ;* STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA1 SEGMENT SINBUF DB 80H,8CH,98H,0A5H,0B0

19、H,0BCH,0C7H,0D1H ;SINBUF正弦波64点采样值 DB 0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH DB 0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH DB 0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,80H DB 7FH,73H,67H,5AH,4FH,43H,38H,2EH DB 25H,1DH,15H,0FH,09H,05H,02H,00H DB 00H,02H,05H,09H,0FH,15H,1DH,25H DB 2EH,38H,43H,4FH,5AH,67H,73H,7FH

20、SANBUF DB 00H,08H,10H,18H,20H,28H,30H,38H ;SANBUF三角波64点采样值 DB 40H,48H,50H,58H,60H,68H,70H,78H DB 80H,88H,90H,98H,0A0H,0A8H,0B0H,0B8H DB 0C0H,0C8H,0D0H,0D8H,0E0H,0E8H,0F0H,0F8H DB 0F8H,0F0H,0E8H,0E0H,0D8H,0D0H,0C8H,0C0H DB 0B8H,0B0H,0A8H,0A0H,98H,90H,88H,80H DB 78H,70H,68H,60H,58H,50H,48H,40H DB 38H,

21、30H,28H,20H,18H,10H,08H,00HFANBUF DB 32 DUP(0),32 DUP(0FFH) ;FANBUF方波64点采样值LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;共阴极数码管0-F对应输入码值 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$ ;提示语任意按键退出DOS 系统MESS1 DB 0DH,0AH,SQUARE-1,0DH,0AH ;功能键提示语 DB TRIANGLE-2,0DH,0AH DB

22、SINE-3,0DH,0AH DB CHANGE THE FREQZ-4,0DH,0AH DB EXIT-5,0DH,0AH,$ MESS2 DB 0DH,0AH,INPUT THE FREQZ:,0Ah,0DH,$ ;提示输入六位频率FLAG4 DB 0H ;判断是否初次执行显示频率FLAG5 DB 0H ;判断是否初次执行输入频率CHOOSE DB 0H ;保存输入的功能键JISHU DW 0H ;保存波形已经输出的频率FREQZ DW ? ;保存输入的频率COUNT DW ? ;保存根据输入频率所计算得的计数初值COUNT1 DB ? ;计数初值低八位COUNT2 DB ? ;计数初值高

23、八位SHUJU DB 10 DUP(0) ;保存输入频率每位的真实值DATA1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA1START: MOV AX,DATA1 ;将DATA1放入数据段 MOV DS,AX P1: CALL INPUT MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,34H ;计数器0,方式2 OUT DX,AL MOV DX,MY8254_COUNT0 ;装入计数初值 MOV AL,COUNT1 ;装入计数初值低字节 OUT DX,AL MOV AL,COUNT2 ;装入计数初值高字节 OUT DX,AL

24、CMP FLAG5,1 ;判断是否初次执行输入频率 JZ AA ;不是则跳转到等待输入功能键 CALL DISPLY ;调用数码管显示输入频率程序KL: CMP FLAG4,1 ;判断是否初次执行显示频率 JZ AA ;不是则跳转到等待输入功能键 LEA DX,MESS1 ;显示输入频率的提示语 MOV AH,09H INT 21H QUERY1:MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,0

25、8H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,01H ;非自动结束EOI OUT DX,AL MOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,0FCH ;打开IR0和IR1的屏蔽位QUERY: MOV AH,1 ;判断是否有按键按下 INT 16H JNZ AA ;有按键则退出 MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 TEST AL,80H ;判断中断是否已响应 JZ QUER

26、Y ;没有响应则继续查询 AND AL,03H CMP AL,00H JE IR0ISR ;若为IR0请求,跳到IR0处理程序 JMP QUERY ;若不是则跳回继续等待 QUIT: MOV AX,4C00H ;结束程序退出 INT 21H AA: MOV FLAG4,0H ;将标志位清零以便下次判断 MOV FLAG5,0H ;将标志位清零以便下次判断 MOV AH,01H ;输入功能键 INT 21H MOV CHOOSE,AL ;将功能键保存 JMP QUERY1 ;跳转到等待程序DISPLY PROC NEAR ;数码管显示程序 MOV DX,MY8255_MODE ;给8255写入控

27、制字 MOV AX,10000000B ;方式0,A口B口输出 OUT DX,ALAA0: MOV AH,1 ;判断是否有按键按下 INT 16H JNZ KL ;有按键则返回 MOV SI,OFFSET SHUJU ;将保存频率的内存地址给SI MOV AH,0FEH ;位选初值 MOV CX,0006H ;位选次数AA1: MOV AL,AH ;AL保存位选 MOV DX , MY8255_A ;端口地址位操作 OUT DX,AL ROL AL,01H ;下一个位地址 MOV AH,AL ;AH保存位选 MOV AL, SI ;地址取待显示内容 MOV BX ,OFFSET LEDTAB

28、;将数字换成显示的七段码 XLAT MOV DX , MY8255_B ;数码管输入的端口地址 OUT DX,AL CALL DELAY ;执行延时 INC SI ;指向下一个内存单元 LOOP AA1 ;循环点亮下一个LED JMP AA0DISPLY ENDP IR0ISR: ;中断服务程序 MOV AL,CHOOSE ;将输入的功能键取出至AL CMP AL,1 ;若为1输出方波 JZ SQUARE CMP AL,2 ;若为2输出三角波 JZ TRIANGLE CMP AL,3 ;若为3输出正弦波 JZ SINE CMP AL,4 ;若为4则跳到X5 JZ X5CMP AL,5 ;若为5则退出 JZ QUIT X5: MOV FLAG5,1 ;标志位置1 JMP P1SQUARE: ;方波产生程序 MOV SI,JISHU ;将计数值放入SI MOV AL,FANBUF+SI ;将输出的数值放入AL MOV DX,DA0832 ;将输出值写入0832 OUT DX,AL INC SI

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1