硬件设计课程设计Word文档下载推荐.docx

上传人:b****6 文档编号:21088870 上传时间:2023-01-27 格式:DOCX 页数:19 大小:316.09KB
下载 相关 举报
硬件设计课程设计Word文档下载推荐.docx_第1页
第1页 / 共19页
硬件设计课程设计Word文档下载推荐.docx_第2页
第2页 / 共19页
硬件设计课程设计Word文档下载推荐.docx_第3页
第3页 / 共19页
硬件设计课程设计Word文档下载推荐.docx_第4页
第4页 / 共19页
硬件设计课程设计Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

硬件设计课程设计Word文档下载推荐.docx

《硬件设计课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《硬件设计课程设计Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

硬件设计课程设计Word文档下载推荐.docx

通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。

给8279的输入相应的数字,使数码管显示倒计时你数字,利用8279编码,实现热键的功能。

关键字:

8255交通灯控制82538279

目录

复杂交通灯的设计与编程实现1

一.需求分析:

1

1.1背景1

1.2需求规定1

二.可行性论证报告2

2.1基本设计内容分析2

2.2分析流程图2

2.3课程设计的设备及环境3

三.系统设计3

3.1基本功能设计3

3.2流程图4

四、硬件实现说明5

五、实验总结与体会7

六、参考资料9

复杂交通灯的设计与编程实现

1.1背景

制作一个十字路口的交通灯,用来实现指挥一个路口车辆行人的顺利安全通行。

编写一个交通灯控制程序,实现东西路口与南北路口状态灯的转换。

使用LED显示单元的两组LED数码管分别模拟十字路口的两组交通灯。

用红黄绿led灯来显示人行道行人的通过与停止情况。

由于行驶中的车辆要停下来要一些时间,要求绿灯亮后黄灯亮几秒,给人员足够的时间反应,然后等变为红灯。

应该有紧急情况处理机制,遇到一些特殊情况特殊需要时启动紧急键可以控制交通灯。

1.2需求规定

模拟十字路口的红绿灯,倒计时数码管显示。

交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,配合倒计时显示管构成简单的交通指挥系统。

红绿黄灯的具体设计如下:

A.南北路口红灯亮,东西路口绿灯亮,延时30秒,led数码管倒计时显示;

B.南北路口红灯亮,东西路口绿灯灭、黄灯闪烁,闪烁时会有3秒延时;

C.南北路口绿灯亮,东西路口红灯亮,延时30秒,led倒计时显示;

D.南北路口绿灯灭、黄灯闪烁,东西路口红灯亮,闪烁时会有3秒延时;

E.转到A

热键区设置

设置热键1,第一次按下,南北路口红灯灭、东西路口绿灯亮、并且led数码管倒计时显示停止,再次按下恢复原始状态。

设置热键2,第一次按下,东西路口红灯灭、南北路口绿灯亮、并且led数码管倒计时显示停止,再次按下恢复原始状态。

设置热键3,第一次按下,南北路口红灯亮、东西路口绿灯亮、并且led数码管倒计时显示停止,再次按下恢复原始状态。

设置热键4,第一次按下,南北路口黄灯亮、东西路口黄灯亮、并且led数码管倒计时显示停止,再次按下恢复原始状态。

二.可行性论证报告

2.1基本设计内容分析

选取两组红黄绿led灯作为东西方向和南北方向的交通灯,led灯的亮灭由8255进行控制,延时由8253实现,led数码管倒计时显示和热键设置由8279控制。

将8253的0端口和1端口进行进行级联实现1秒的延时。

将8255A的A口和B口设为输出方式,实现对红绿灯的控制。

8255A的C口为输入方式。

将8253输出信号输入到8255的C0端口,8255通过对C0端口输入信号的高低电平的判断,实现延时控制。

给8279的输入相应的数字,使数码管显示倒计时你数字。

利用8279编码,实现热键的功能。

2.2分析流程图

2.3课程设计的设备及环境

微型计算机原理与接口技术教学实验系统一台,计算机一台,排线若干

经上述的分析,此实验可以实现。

三.系统设计

3.1基本功能设计

如右图所示的交通灯路口

先初始化可编程器件8255和8253,设置初始值为30放在CX中用来计数(定为30秒),开始显示南北路口红灯亮,东西路口绿灯亮,延时30秒,led数码管倒计时显示,判断CX的值是否为0,不为0,则继续上一状态。

为0则转下一个状态南北路口红灯亮,东西路口绿灯灭、黄灯闪烁的状态,再判断计数值CX是不是=0,没有则继续显示这个状态,有的话进入下一个状态,从新设置初始值为30放在CX中用来计数,显示南北路口绿灯亮,东西路口红灯亮,判断计数值CX有没有=0.如果不等于0,则继续上一状态。

如果等于0则进入下一个状态南北路口绿灯灭、黄灯闪烁,东西路口红灯亮的状态,再判断计数值是不是=0,没有则继续显示这个状态,有的话转回到START继续执行,不停的循环来实现交通灯的功能。

3.2流程图

注:

有的流程图比如热键原理都是一样的,所以只画出一个流程图

四、硬件实现说明

整个设计总共需要三个芯片,分别为8253,8255,8279;

设计的主要由8255芯片对系统进行整体控制。

8255芯片分析:

8255芯片图如下:

本设计通过对8255进行编码,实现8255控制红绿黄灯的亮或灭。

六个灯泡对应的端口如下表:

L7

L6

L5

L4

L3

L2

PA0

PA1

PA2

PA3

PA4

PA5

南北红灯

南北黄灯

南北绿灯

东西红灯

东西黄灯

东西绿灯

初始化:

************8255初始化

MOVDX,PORTCON;

写8255控制字,A、B口均为方式0输出,

MOVAL,10000001B;

c口高四输出,低四输入

OUTDX,AL

8279芯片分析:

8279芯片图如下

提供的实验箱中,8279已经与led七段数码管连接好,仅需要给8279片选信号,编码也很简单,只需要对8279进行初始化编程,然后向状态口输入要显示的数据,输入命令让8279显示即可。

而且8279与键盘也是内部连好的,只需要程序控制。

不过由于8279以前没接触过,刚开始还是有点困难。

;

************初始化8279

MOVDX,Z8279

MOVAL,LEDMOD

OUTDX,AL

MOVAL,LEDFEQ

……….

;

************子程序

DISPLAY:

MOVDX,Z8279

MOVAL,90H

OUTDX,AL

七段码设定:

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,76H

8253芯片分析:

本设计只用到了8253的两个端口0和1。

0端口的输入信号clk0为1MHz,1端口的输入信号clk1为out0。

将1端口的输出信号out1送到8255的C0端口。

首先要对8253初始化编程,然后对0和1端口分别送入计数初值,实现定时功能。

初始化及计数值:

DELAY:

8253-1秒延时子程序

MOVDX,CONTROL

MOVAL,00110101B;

通道0,工作于方式2

MOVDX,COUNT0;

通道0写入计数初值

MOVAL,00H

MOVAL,10H

MOVDX,CONTROL;

写入控制字

MOVAL,01110001B;

通道1,工作于方式0

MOVDX,COUNT1;

通道1写入计数初值

五、实验总结与体会

本次课程设计实现了用8253、8255和8279芯片完成了复杂的交通灯指挥系统。

经过了几个星期的不懈努力,总算是圆满的完成了任务。

刚开始接触实验的时候,感觉很简单,需求分析很快就能上手,根据老师的要求进行设计,很快就有了大体的思路。

8253与8255以前都学习过,看一下书基本都能回忆起来,第二节课我们就将8253与8255的初始化,以及大体的循环程序搞定。

8255是控制红绿灯的核心芯片,具体的与led灯的连接参见硬件分析。

这一部分可以是说最简单的部分了。

接着,便出现了一个问题。

数码管的显示与热键的设置。

这样一个没有倒计时的显示的交通灯系统是实现了。

但8279却是一个老大难问题,从来没有接触过,而且老师给的资料又太乱。

看着都头痛,于是开始求助XX、Google。

8279是提供显示功能的芯片,在网上搜到的一些资料,自己看的也稀里糊涂,不是很明白。

最后只有再次请教老师了,老师又给了一些资料,让自己看,我自己又到图书馆借了一本有关8279芯片的书。

经过若干天的学习,终于搞懂了一点点,知道怎样初始化芯片。

知道的数码管显示与热键的一些基本内容。

由于关于8279的资料大部分都是讲解键盘的,而我们还需要显示部分的,所以还是不太理解,还有一个原因以前汇编没学习好。

最后还是得请教老师,经过老师的分析,自己也更进一步的掌握了芯片。

最后终于实现了8279的显示功能,只不过只能显示一位。

这已经过去两周了。

第四周我们终于有了重大突破,班里有小组做电子时钟也需要使用8279,同样也要用到数码管的显示问题,他们采取了取余的方法,经过一番努力,最终我们也实现了双位显示。

这样,具有倒计时显示的简单红绿灯交通指挥系统就完成了。

最后就是热键问题,相比较前面而言,热键的设置是这一个系统的大头,但是由于之前搞数码管的显示,因此,在设置热键时就不像之前的那么迷茫,一周的时间就搞定了的基本的框架,中途也遇到了很多的麻烦,但是在许询问老师和同学之后,都一一解决了。

还帮了班级里其他小组的忙,呵呵,挺开心的。

通过此次课程设计,我们又重新温习了汇编语言,并对汇编语言有了更深一层的掌握,为以后应用汇编打下了良好的基础。

此外,还学会了8279芯片的应用,巩固了对芯片的编程能力,提高了自己的动手能力。

最后感谢老师在实验过程中对我们的指导,谢谢。

——余彬

本实验相对来说还是比较困难的。

刚开始设置8255和8253比较简单的,我们用了一节课的时间就已经完成了led灯的正常显示。

交通灯最难懂的是8279的键盘以及数码管显示,两节课在浑浑噩噩中度过,没办法就去图书馆找相关的资料,只要机房有课就来做实验,后来把数码管的显示给做好了,我非常高兴。

虽然8279是困难点,不过我在自己学习8279中获得了很多乐趣,我发现其实很多芯片可以自己去学习了,我们在学习中不仅要获得一些基础知识,更要学会的是学习的方法,如何去掌握、获取更多的芯片。

在学习8279的时候我一直拿着《微机接口与原理技术》这本书,学到了一些汇编语言的技巧,这些是我在课堂上不曾得到的知识。

在编程过程中要时刻注意一些细节,比如刚开始的PUSHcs,POPDS;

虽然这两句话没觉得有什么用途,但是在8279的显示中是至关重要的。

其实有些编程需要技巧的,不如说数码管显示,如果只是0-9的倒计时是比较简单的,但这是两位数的倒计时,就需要实现个位与十位的分离,后来在老师的提示下,我用除法div将十位变成个位,将个位变成余数分别放入显示ram中,我们就成功了。

对于热键,我是参考一些资料,主要思想是如果按下此键如0BH,就设置一个循环,除非按下08H键,否则程序一直在循环。

在学习的过程中,我也会去利用我学到的知识帮助同学,这样可以加强我对芯片的了解,最终,我们的强大的交通灯实现了,很有成就感。

--朱成

六、参考资料

1、《微机原理与接口技术》周荷琴、吴秀清编著。

2、husy88te实验指导书

3、8279的相关资料

源代码见附录

附录1:

流程图

附录2:

源代码

附录一:

附录二:

(源代码清单)

DATASEGMENT

PORTCONEQU20BH;

8255控制寄存器地址

PORTAEQU208H;

8255A口地址

PORTBEQU209H;

8255B口地址

PORTCEQU20AH;

8255C口地址

CONTROLEQU203H;

8253控制寄存器地址

COUNT0EQU200H;

计数器0地址

COUNT1EQU201H;

计数器1地址

COUNT2EQU202H;

计数器2地址

Z8279EQU212H;

8279控制口

D8279EQU210H;

8279数据口

LEDMODEQU00H;

左边输入,八位显示外部译码八位显示

LEDFEQEQU38H;

扫描频率

DATAENDS

------------------------------------------

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

PUSHCS

POPDS

************8255初始化

MOVDX,Z8279

MOVAL,LEDMOD

MOVAL,LEDFEQ

MOVDX,PORTA;

亮南北红灯,东西绿灯

MOVAL,00011110B

CALLDELAY;

延时1秒

BEGIN:

--------------------------------------------------

MOVCX,30;

延时30秒

CYC0:

CALLH;

使南北东西红灯亮

MOVDX,PORTA

MOVAL,00011110B;

重置亮南北红灯,东西绿灯

CALLDELAY

CALLDISPLAY

CALLI;

使南北绿灯,东西红灯

LOOPCYC0

MOVCX,03H;

延时3秒

CYC1:

亮南北红灯,东西黄灯

MOVAL,00101110B

CALLDISPLAY;

LOOPCYC1

CYC2:

亮南北绿灯,东西红灯

MOVAL,00110011B

使南北东西全红

CALLG;

使南北红灯,东西绿灯

重置,使南北绿灯,东西红灯

LOOPCYC2

CYC3:

亮南北黄灯,东西红灯

MOVAL,00110101B

延时一秒

LOOPCYC3

JMPBEGIN;

---------------------------------------------------

TC:

MOVDX,PORTC

INAL,DX

TESTAL,01H

JZTC

RET

-------------------------------------------------------------------------------

MOVAX,00H

PUSHCX

MOVAX,CX

MOVBL,0AH

DIVBL

MOVAL,AH

LEABX,LED

XLAT

MOVDX,D8279

MOVAX,CX

POPCX

RET

H:

MOVAL,40H;

写读FIFORAM命令字

MOVDX,Z8279

MOVDX,D8279;

读入FIFORAM内容

CMPAL,0BH

JNZS2

MOVCX,30

MOVAL,11110110B

S1:

CMPAL,08H

JNZS1

S2:

I:

CMPAL,00H

JNZI2

I1:

JNZI1

I2:

G:

CMPAL,01H

JNZG2

G1:

JNZG1

G2:

----------------------------------------------------------------------------

CODEENDS

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1