(三)可编程中断控制器8259A
8259A是8086/8088系列的可编程中断控制器,8259A为28个引脚的双列直插芯片。
图7 8259A引脚图 主要功能:
(1)据8级优先级控制,通过联级可以扩展到64级优先控制。 (2)每一级中断可由程序单独屏蔽或允许。 (3)可提供中断类型号传送给CPU。
(4)可以通过编程选择多种不同工作方式。 引脚功能:
D7-D0:双向数据线,三态,与数据总线相连。 IR7-IR0:外设的中断请求信号输入端,输入,中断请求:可以是电平触发,或者边缘触发。 RD:读命令信号,输入,低电平有效,用来控制数据由8259A读 WR:写命令信号,输入,地点平有效,用来控制写到8259 CS:片选信号,输入,通过译码器与地址总线相连
INT:向CPU发出中断请求信号,输出,与CPU的INTR相连 INTA:CPU给8259A的中断响应信号,输入。
(四)D/A转换器DAC0832
NSC公司生产的DAC0832,是一种内部带有数据输入寄存器的8位D/A转化器,采用CMOS工艺制成,芯片内部R-2R梯形电阻网络,用于对参考电压产生的电压进行分流,完成模数转换,转换结果以一组差动电流 IOUT1、IOUT2输出。 引脚的功能:
VREF : 参考电压输入端。根据需要一定大小的电压,由于它是转换的基准,要求数值正确,稳定性好。
VCC:工作电压输入端。 AGAN为模拟地,DGAN为数字地。在模拟电路中,所有的模拟地要连在一起然后将模拟地,数字地连接到一个公共接地点。
DI7-DI0:数据输入。可直接连接到数据总线。
第8页
IOUT1IOUT2:互补的电流输出端。为了输出模拟电压,需加转换电路。
图8 DAC0832引脚图
2.2程序调试
由于此次课程设计涉及内容较多程序较长,所以不适合采用整体调试的方式。因此,采用先逐次调试独立功能模块,再调试组合模块,最后调试整体程序的方法。具体过程如下所示:
1、调试0832产生三种波形程序 2、调试输入频率计算计数初值程序 3、调试8253输出方波程序 4、调试8259产生中断响应程序
5、调试8255通过LED显示数据程序
6、调试输入频率计算计数初值并通过LED显示数据程序 7、调试8253使8259产生中断的程序 8、调试整体程序
2.3 软件系统的使用说明
通过键盘输入要输出的波形的频率,然后选择输出的波形,LED数码显示管上可以显示
输入的频率,模拟示波器显示DAC0832 AUTO端口输出的波形。
第9页
三 课程设计结果分析
3.1 实验结果
图9 程序运行截图
图10 矩形波
图11 三角波
第10页
图12 正弦波
3.2 结果分析
运行程序时,分别产生100HZ、500HZ、1000HZ、1500HZ、1600HZ的波形,结果发现100HZ--1500HZ的波形频率与所设定的频率一致或有极小的偏差,但从1600HZ开始误差逐渐变大,远远偏离所设定的频率,且小于所设定频率。究其原因是:执行中断程序的时间与中断周期的比值越来越大,或者说随着频率增大执行中断响应的时间对输出波形频率的影响越大。所以,频率越高误差越大。
改进方式:精简中断服务程序,减小程序执行时间;在0832输出端加上倍频器,减小0832的输出频率,以此降低误差。
四 课程设计总结
在这次实习中,我巩固了微机课中所学的知识,了解了各种芯片的的用法,各个接口的名称和功能。进一步锻炼了在微型计算机应用方面的实际工作能力,强化了对微机原理学科内容的认识并扩展了知识面。通过设计实验,使我掌握了模拟量 输入/输出通道的设计,常用控制程序的设计方法,数据处理及非线性补偿技术,以及数字控制器的设计方法。 本设计从几个基础的部分着手总结综合运用各种资料最后完成一个数字信号发生器系统。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结 合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。而且在做课程设计的过程中,不仅是考验自己所学的《微机原理与接口技术》知识,更是要锻炼自己的分析问题的能力和解决实际问题的能力,而在在此次课程设计过程中得到了充分的体现。
在此次设计中体也会到了交流知识的重要性,在千篇一律的设计中,显示自己的特色,在实用 性和执行效率间取得平衡,是设计的关键所在。通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我更加深刻的了解微机原理与接口技术,以及在常用 编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型 人才打下良好的基础。
第11页