微机原理
课程设计
班级:
姓名:
学号:
日期:
前言
自 20 世纪 70 年代后期 Intel 公司推出 16 位微处理器 8086/8088 之后,微
处理器以惊人的速度飞速发展。尽管其后续的 80286、80386、80486 以及 Pentium
系列 CPU 结构与功能同 8086/8088 相比已经发生了很大变化,但从基本概念与结
构以及指令格式上来讲,它们依然是经典的 16 位 CPU8086/8088 的延续与提高。
总之,学好 8086/8088,对学习其他 CPU 是大有裨益的。
平时课堂的学习我们往往更加重视 8086/8088 指令的编写,而对构成整个系
统的结构等硬件方面的知识了解不多。所以,进行微机课程设计是非常有必要的。
目录
目录
前言............................................................................................................................................ 1
目录............................................................................................................................................ 2
课程设计任务书........................................................................................................................ 3
总体设计思路............................................................................................................................ 4
一、原设计题目可以简化为如下的循环过程.................................................................4
二、大致应如何实现.........................................................................................................4
硬件设计.................................................................................................................................... 6
一、8086 最小方式系统组成................................................................................................. 6
二、I/O 接口..............................................................................................................................8
三、中断控制器 8259A 与 8254 定时/计数器模块............................................................ 9
四、并行接口芯片 8255A 与交通灯的连接模块..............................................................10
软件设计.................................................................................................................................. 13
1
主程序流程图..........................................................................................................................13
中断服务程序流程图.............................................................................................................15
小结.......................................................................................................................................... 16
参考文献.................................................................................................................................. 16
课程设计图纸.......................................................................................................................... 16
程序清单.................................................................................................................................. 17
课程设计任务书
数字控制系统在交通路灯管理中的应用
设计内容:
设有一十字路口,1、3 为南北方向,2、4 为东西方向。每个路口均有红、
黄、绿三个灯,初始状态为四个路口的红灯亮,3 秒之后,1、3 路口的绿灯亮,
2、4 路口的红灯亮,1、3 路口通车;延时 45 秒后,1、3 路口绿灯闪烁 3 秒,
后绿灯灭,黄灯亮,3 秒后,1、3 路口的红灯亮,而同时 2、4 路口的绿灯亮,
2、4 路口开始通车;延时 40 秒后,2、4 路口绿灯闪烁 3 秒后绿灯灭,黄灯亮,
3 秒后,2、4 路口的红灯亮,同时 1、3 路口的红灯亮(即四个路口的红灯亮),
3 秒之后,1、3 路口的绿灯亮,2、4 路口的红灯亮,重复上面的过程。
2
总体设计思路
一、原设计题目可以简化为如下的循环过程:
State 1: 四个路口红灯亮【保持 3 秒】
State 2:
State 3:
State 4:
State 5:
State 6:
State 7:
1、3 路口绿灯亮,2、4 路口红灯亮【保持 45 秒】
1、3 路口绿灯闪烁,2、4 路口红灯亮【保持 3 秒】
1、3 路口黄灯亮,2、4 路口红灯亮【保持 3 秒】
1、3 路口红灯亮,2、4 路口绿灯亮【保持 40 秒】
1、3 路口红灯亮,2、4 路口绿灯闪烁【保持 3 秒】
1、3 路口红灯亮,2、4 路口黄灯亮【保持 3 秒】
State 8: 返回 State 1
二、大致应如何实现:
由以上简化过程可知,我们应关注两个问题,一个是交通灯状态的控制,一个是
每个状态如何保持一定的时间并切换到另一个状态。现分两点简要叙述如下:
1、交通灯状态的控制
12 个交通灯的状态有:亮、灭、闪烁,共 3 种。可以用 8255A 的某一输入
输出口中的某些位控制。若灯的一端统一接低电平,另一端接到 8255A 的输出
口上,则输出口输出高电平时灯亮,输出低电平时灯灭。灯的闪烁可以由 8254
定时/计数器输出一定频率的方波来控制。
2、状态如何保持一定的时间并切换到另一个状态
可以利用 8254 定时/计数器来达到每个状态的准确定时,定时一到利用
8254 OUT 口电平的变化向 8259A 发出中断请求,进而由 8259A 向更上级的 CPU
发出中断请求,经 CPU 响应后进入相应的中断服务程序。在中断服务程序中可
以使灯切换到另一个状态,并启动该状态的保持计时。如此循环……直到有按
键按下返回 DOS,退出循环。
3
硬件设计
完整电路图详见本报告第 16 页的课程设计图纸。现分块介绍如下:
一、8086 最小方式系统组成:
1、CPU 与 8284A 时钟发生器的连接
4
在 8086CPU 内部没有时钟发生器,当组成微型机系统时,所需的时钟信号由
外部时钟发生器提供。 8284 是专门为 8086 设计的时钟发生器/驱动器。在 8284
中,不仅有时钟信号发生器,还有复位信号 RESET 和准备好信号 READY 产生电路,
这些电路分别向 8086 系统提供时钟信号 CLK(频率是所接晶振频率的 1/3,占空
比为 33%),复位信号 RESET 和准备好信号 READY ,还可向外界提供晶振信号 OSC
(输出频率为所接晶振频率)以及外围芯片所需的时钟信号 PCLK(输出频率是
CLK 的 1/2,占空比为 50%)。此处晶振输入端接的是 15MHz 的晶振,故 CLK 输出
频率为 5MHz,PCLK 输出频率为 2.5MHz。
2、CPU 与 8282 地址锁存器和 8286 数据收发器的连接
5
如图,左边是 3 片 8282 地址锁存器,右边是 2 片 8286 数据收发器。
8282 为 8 位地址锁存器。当 8086 访问存储器时,在总线周期的 T1 状态下发
出地址信号,经 8282 锁存后的地址信号可以在访问存储器操作期间始终保持不
变,为外部提供稳定的地址信号。8282 是典型的 8 位地址锁存芯片,8086 采用
20 位地址,再加上 BHE 信号,所以需要 3 片 8282 作为地址锁存器。
8286 为具有三态输出的 8 位数据总线收发器,用于需要增加驱动能力的系统。
在 8086 系统中需要 2 片 8286。
3、系统存储器的设计
6
两片 EPROM 为 27256。两片 RAM 为 62256。译码器 74LS138 担任片选译码。
其中,2 片 27256 由 MY7 作片选,因此其地址范围为 F0000H-FFFFFH,构成
64KB 的 ROM 存储体;2 片 62256 由 MY1作片选,因此其地址范围为 90000H-9FFFFH,
构成 64KB 的 RAM 存储体。
二、I/O 接口
7