附学生课程设计(编辑修改稿)内容摘要:

中断向量 mov dx,intoff mov ax,intseg mov ds,ax mov ax,2572h int 21h sti 中断服务子程序: 要想启动 0809 进行转换,首先必须有一个 start 信号,该信号为: 8 在转换的时候通过 EOC 信号来判断转换是否结束,当 EOC 信号由 0 变为 1 时就代表转换结束,此时让 OE引脚为 1,这时转换出来的数据就输出了,部分代码如下: mov dx,303h mov al,10011001B out dx,al mov dx,303h。 送启动信号 mov al,00h out dx,al nop mov al,01h out dx,al nop mov al,00h out dx,al mov dx,302h query: in al,dx test al,10h jz query mov dx,300h in al,dx inc dx out dx,al 注意在每次转换完后都必须将 C 端口置位: mov dx,303h。 将 C 口复位 ,以保证下次能正确转换数据 mov al,90h out dx,al mov dx,302h mov al,0ffh out dx,al 在中断服务子程序结束之前,必须发中断结束命令: mov al,20h。 结束中断 out 20h,al out 0a0h,al 在进入 A/D 转换之前,必须开发 72H 号中断: in al,0a1h。 设置中断屏蔽寄存器,系统开放 72 号中断 and al,0fbh out 0a1h,al 9 五.程序流程图 主程序 中 断 服 务 子 程 序 六. 调试 分析 进入主菜单后选择 1 进行 8255 的初始化,这时候会发现在实验板上的一半灯亮,一半灭,同时提示 8255 is ok。 选择 2 后进入 8253 的初始化,可以用示波器观察输出的波形,同时显示 8253 is ok ,选择 3 后进入 A/D 转换,将转换来的数据一路送二极管显示,一路送显示器。 在调试的过程中,有很多技巧,刚开始的时候,我把所有的电路都连接好调试,结果那样带来了很多的麻烦,而且也不容易找出错误的所在,最后我把所以的线都拆掉,一个器件一个器件的调试,先从 8255 开始,直到 8255能正确输出数据的时候才开始下一步的测试,然后再测试 0809,在测试 0809 的时候遇到了一个小问题,就是每次转换来的数据都一样,除非让 8255 复位,经过认真的分析,才知道是 8255 的 C 端口的控制信号没有置位,接下来测 10 试的是 8253,一开始,分频率总是不对,计数初值没有问题,经过仔细检查才发现 8253 的芯片出了问题,电源引脚断了,换芯片后就没有问题了,在设计中断的时候,一开始不能让其自动产生中断,后来查阅资料才知道是在中断服务子程序中没有结束中断引起的,这些故障调试通过后 ,整个设计就完成了。 七.原理图设计 八.收获、体会和建议 本次课程设计 ,我学到了很多的东西 ,对汇编语言程序设计加深了理解和掌握 ,我们这次设计的要求主要是熟悉微型计算机技术中所学到的几中芯片的使用,掌握它们的初始化编程,并学会他们的基本应用,这是一个比较全面的设计,和以前的实验相比较复杂很多,一方面要求我们设计硬件电路,另一方面 需要对设计的硬件电路进行编程,这就需要软件和硬件相结合,具体的电路具体分析,在此次设计中还用到了中断,通常来说,中断是很复杂,很难的去调试。 在此设计中遇到了很多困难,一开始的时候,硬件电路测试都没成功,最后把所有的电路都拆了,一个一个测试,进行数据转换的时候,开始转换出来的数据都一样的,无论电位是否发生变化,经过仔细分析才知道是8255 没有复位,在中断的产生过程中,由于没有写中断结束也带来了一定的困难。 这次课程设计后,我对学硬件有了一定的体会,它要求。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。