交通灯计算机硬件课程设计
目录TOC \o "1-3" \h \u
1 课题分析 5
1.1基本功能分析及设计 5
2 硬件设计 5
2.1总电路 5
2.2分电路 7
3 软件设计 10
3.1主程序的设计流程图 10
3.2各子程序的流程图 11
4 扩展功能的实现 14
4.1黄灯过渡 15
5 测试结果及分析 15
5.1实验结果显示 15
5.2系统详细操作说明 22
5.3结果分析 23
6 设计总结 23
6.5总结 27
7 附录 28
7.1参考文献 28
7.2程序清单 28
1 课题分析
1.1基本功能分析及设计
根据课题的功能要求,经过反复的思考和讨论我们决定采用模块化的思想来分析及设计整个课题。
首先我们把功能模块化,对其功能进行细化分解,对于该课题我们可以把它的功能分解为下面几块:显示模块,计时模块,颜色模块,定时模块,选择分支模块,报警模块等。
根据以上各个模块我们就可以分布进行设计和硬件的悬着。首先交通灯的时间显示我们采用8254芯片的定时器和计数器功能功能来实现,其次,对于交通灯的三种颜色我们采用实验箱上的三色LED灯来显示,再有对于车辆数还有闯红灯的演示我们用小键盘来实现,对于闯红灯我们利用LED灯和蜂鸣器同时作用。这样就很容易的设计好各个子功能模块,然后根据整体功能的要求合理的把各个子功能整合起来就能完成整个课题的设计了。这样做的目的和好处是思路清晰,方便设计。
2 硬件设计
2.1总电路
根据分析此次要用到的硬件模块包括8254定时芯片,CPU,8255,可编程并行接口芯片,LED,蜂鸣器等。它们的相关介绍如下:
图1是此次试验所用到的试验箱面板,此次课题就在其上完成
图1 PD-32E操作面板
此次试验的硬件电路仿真图如图2所示
图2 仿真总电路图
硬件连接如下,
8255A:PA0~PA3与键盘行信号P0~P3,PB0~PB3与键盘列信号Q0~Q3连接C口的pc1接8254的控制端口gate0,pc7口接蜂鸣器。8255的口接340, 8254的接译码模块的CS1,CLK1接频率为47KHZ的时钟信号,GATE1接+5V,OUT1接8259(1)的IRQ0;
8259(1)的CS-1接译码模块的CS2,P/1接+5V,INT1接CPU的INTR;
其硬件连接框图如图3所示:
图3 总体框图
2.2分电路
2.21 8255模块
8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0或方式1。工作方式如下:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
各引脚功能如下。
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号; 图4
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号
此次用8255的A口作为键盘的输入B口作为键盘的输出C口的pc1口作为8254的控制端口pc7口用来控制蜂鸣器。
2.22 8254模块
8254的功能用途是:
(1)延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
8254有六种工作方式:
(1)方式0:计数结束中断
(2)方式1:可编程频率发生器
(3)方式2:频率发生器
(4)方式3:方波频率发生器
(5)方式4:软件触发的选通信号
(6)方式5:硬件触发