微机原理课程设计--基于8086彩灯控制器的设计内容摘要:

一次数据传送。 CPU 在读操作总线周期的 T3 状态开始处,采样 READY 信号,若发现为低电平,则在 T1 状态结束后,插入等待状态 TW,然后在 TW 开始处,继续采样 READY信号,直至变为有效(高电平),才进入 T4 状态,完成数据传送,以结束总线周期。 ( 6) /TEST(输入) 为检测信号,低电平有效。 本信号由等待指令 WAIT 来检查, /TEST 信号和WAIT 指令配合使用。 当 CPU 执行 WAIT 指令时 , CPU 处于等待状态,并且每隔5 个 T 对该信号进行一次测试,一旦检测到 /TEST 号为低电平,则结束等待状态,继续执行 WAIT 指令下面的指令。 WAIT 指令是使 CPU 与外部硬件同步的, /TEST表 2 S S3 代码组合 相当与外部硬件的同步信号。 ( 7) INTR(输入) 可屏蔽中断请求信号,高电平有效。 CPU 在执行每条指令的最后一个 T 状态时,去采样 INTR 信号,若发现为有效,而中断允许标志 IF 又为 1 时,则 CUP在结束当前指令周期后响应中断请求,转去执行中断处理程序。 ( 8) NMI(输入) 非屏蔽中断请求信号,为一个边缘触发信号,不能由软件 加以屏蔽。 只要在 NMI 线上,出现由低到高的变化信号,则 CPU 就会在结束当前指令后,转去执行非屏蔽中断处理程序。 ( 9) RESET(输入) 复位信号,高电平有效。 复位时该信号要求维持高电平,至少四个时钟周期,若是初次加电,则高电平信号至少要保持 50 微秒。 复位信号的到来将立即结束 CPU 的当前操作,内部寄存器恢复到初始状态。 当 RESET 信号从高电平回到低电平时,即复位后进入重新启动时,便执行从内存 FFFF0H 处开始的指令,通常在 FFFF0H 存放一条无条件转移指令,转移到系统程序的实际入口处。 这样只要系统被复位启 动,就自动进入系统程序。 ( 10) CLK(输入) 时钟信号,它为 CPU 和总线控制电路提供基准时钟。 ( 11)电源和地 VCC 为电源引线,单一的 +5V 电源。 引脚 1 和 2 时为两条 GND 线,要求均要接地。 ( 12) MN//MX(输入) 为最小 /最大模式信号。 它决定 8086 的工作模式。 将此引线接电源 +5V 则8086 工作于最小模式;若此引线接地则 8086 工作在最大模式。 最小模式下的引脚功能 把 MN//MX 引脚连至电源, 8086 处于最小模式,此时引脚 2431 的功能含义如下: ( 1) /INTA(输出): CPU 向外 输出的中断响应信号。 ( 2) ALE(输出):地址锁存允许信号,高电平有效,将地址信息锁存到地址锁存器中。 ( 3) /DEN(输出三态 ):数据允许信号。 ( 4) DT//R(输出三态 ):数据发送 /接收控制信号。 ( 5) /M/L(输出三态 ):访问存储器或 I/O 端口的控制信号。 ( 6) /WR:输出三态 ( 7) HOLD(输入 ) ( 8) HLDA(输出 ) ( 9) /SSO:系统状态信号 四、硬件电路图 五、 程序设计 设计流程图如图 7 所示: 开始 置 8255 控制字 使 B 口数据保存在 BL 中 各端口均为基本输出,且均工作于方式 0 黄灯 L1 亮 图 7 实验流程图 六、 结果讨论 本程序共有分端口设置模块,延时模块,显示模块等几个模块。 经过调试,本程序可以基本实现题目的要求。 黄灯 L1 亮 秒 红灯 间隔 秒依次点亮 秒 绿灯L L L L9 间隔 秒依次点亮 秒 黄灯 L1 熄灭 秒 L LL L5 同时熄灭 秒 L L L L9 同时熄灭 秒 返回初始步,循环显示。 七、 心得体会 通过对基于 8086 彩灯控制 器的汇编实现,对硬件特别是 8253A,8255 并行口的原理和实现都有了很深的了解。 更加深了对汇编语言的使用 . 整个程序中涉及 8253A,8255 并行口的使用,汇编语言熟练掌握的要求。 可以说整个文件中最麻烦的就是进位条件的判断,编程中经常犯想当然的错误。 另外对于中断服务子程序的类型设置问题 ,由于以前对这个概念的理解留于表面,编程中出现了不少奇怪的错误。 再调试中尝试使用了分割法 ,对错误模块进行定位 ,再进行排查 . 在算法实现上要有一定的思路要更能体现设计的目的。 同时上机调试也是十分重要的,在调试的过程中能够不断 的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。 通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力 .通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重延时 秒 红灯 L2,L3,L4,L5 依次亮 秒 绿灯 L6,L7,L8, L9 依次亮 秒 结束 要。 可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现, 就遇到了相当大的难度。 因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。 所以在以后的学习中一方面我要不断的巩固自己所学的理论知识,一方面还要多参加实际操作工作以便提高自己的实际操作能力。 其实这次课程设计的最大收获应该是找到了解决问题的几个很好的途径: 论 ,在自己的网站上也收获了很多,共享让我们共同进步。 此外,我学会了看硬件结构图 ,并学会了自己去独立的完善一个程序,对程序的效用等做思考。 并体会到:问别人只能帮你开拓思路,真正解决问题还是要靠自己去摸索。 当然讨论是很好的学习途径 ,它 会让你事半功倍 . 八、 实验源程序 DATA SEGMENT COM EQU 0096H。 控制口地址 PA EQU 0090H。 A 口地址 PB EQU 0092H。 B 口地址 PC EQU 0094H ; C 口地址 DATA ENDS sda segment stack bdfv dw 100 dup(0) sda ends ; 设置堆栈段 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:sda START: mov dx,COM mov al,10000010H。 PA 输出、 PB 输入、 PC 输出模式 out dx,al ;设。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。