WHU Electrical Engineering微机课设Word文件下载.docx

上传人:b****6 文档编号:18981444 上传时间:2023-01-02 格式:DOCX 页数:20 大小:69.71KB
下载 相关 举报
WHU Electrical Engineering微机课设Word文件下载.docx_第1页
第1页 / 共20页
WHU Electrical Engineering微机课设Word文件下载.docx_第2页
第2页 / 共20页
WHU Electrical Engineering微机课设Word文件下载.docx_第3页
第3页 / 共20页
WHU Electrical Engineering微机课设Word文件下载.docx_第4页
第4页 / 共20页
WHU Electrical Engineering微机课设Word文件下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

WHU Electrical Engineering微机课设Word文件下载.docx

《WHU Electrical Engineering微机课设Word文件下载.docx》由会员分享,可在线阅读,更多相关《WHU Electrical Engineering微机课设Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。

WHU Electrical Engineering微机课设Word文件下载.docx

系统框图如下:

为实现交通灯的模拟控制,我小组根据以上框图图设计硬件及其连接,解释如下:

(1)用8255作为并行接口连接CPU与外部电路,对外部电路进行控制;

(2)用12根导线与外部红绿灯电路连接;

(3)N1-N15为接口,发光二极管LED1-LED3分别作为第一个路口的黄、红、绿灯,发光二极管LED5-LED7分别作为第二个路口的黄、红、绿灯,发光二极管LED9-LED11分别作为第三个路口的黄、红、绿灯,发光二极管LED13-LED15分别作为第四个路口的黄、红、绿灯;

(4)用图示各PB和PA口控制对应的发光二极管,即对应的各路口红绿灯。

我小组设计的电路原理图如下:

对电路解释如下:

(1)各发光二极管共阳极,当8255得到CPU的信号输出为“1”时,发光二极管熄灭,当8255得到CPU的信号输出为“0”时,发光二极管发光。

(2)对8255进行编程控制,使之输出符合要求,即可使各路口红绿灯按照要求变化。

列表使各路口各色灯与8255各端口对应关系如下:

路口一

路口二

路口三

路口四

PB3

PB0

PA5

PA2

PB1

PA6

PA3

PA0

绿

PB2

PA7

PA4

PA1

程序流程及功能

开始

程序流程图如下:

四个红灯全亮

2、4路口黄灯闪烁8次

熄灭2、4路口绿灯

延时

点亮2、4路口绿灯

1、3路口黄灯闪烁8次

熄灭1、3路灯绿灯

点亮1、3路灯绿灯

延时一段时间

使四个路口的红灯全亮

对于要实现的控制,我小组拟用两种思路编程,分别解释如下:

思路一:

思路一程序分为十个步骤,按步骤进行编程,解释如下:

1.程序初始化。

定义各口地址:

控制口为0FF2BH,A口为0FF28H,B口为0FF29H,C口为0FF2AH。

2.红灯全亮。

先熄灭黄灯和绿灯,步骤为(此段步骤后面会重复使用,那么就称之为“熄亮灯操作”吧):

写8255控制字为92H,使各口处于输入状态,读入A、B两个口的数据存起来,然后根据算得的控制字分别与存入的数据进行“and”或者“or”操作后再改变控制口为80H,将控制字输出到8255,即可改变各灯的亮灭。

如此操作,使黄灯和绿灯熄灭。

同样,用“熄亮灯操作”来使红灯全部亮起来。

3.使1、3路口的绿灯亮。

用“熄亮灯操作”使1、3路口的红灯全部熄灭,绿灯全部亮起来。

2、4路口不变。

则1、3路口进行通车。

4.延时。

用call实现,延时程序在最后给出。

5.1、3路口绿灯熄灭,黄灯亮并闪烁多次。

先用“熄亮灯操作”使绿灯熄灭,再使黄灯亮并灭,对“黄灯亮并灭”这段程序使用loop进行多次重复即可。

6.1、3路口红灯亮,2、4路口绿灯亮。

Loop过程结束后,用“熄亮灯操作”使1、3路口红灯亮,2、4路口绿灯亮,2、4路口方向通车。

7.延时。

同4。

8.2、4路口绿灯熄灭,黄灯亮并闪烁多次。

大概操作同5。

9.之后切换回1、3路口方向。

10.重复上述过程。

思路二:

思路二程序分为十四个步骤,按步骤进行编程,解释如下:

不对8255各控制口的数据进行读入,而是直接输出控制字到8255各口中,设置控制口常为80H,即各口均为输出。

需使红灯全亮,则要使PB口为0FDH,PA口为0B6H,即可使各路口红灯亮,其他灯灭。

3.使1、3路口的绿灯亮,2、4路口红灯亮。

PB口为0FBH,PA口为0AEH。

用call实现,延时程序在最后给出,这里使用长延时delay1。

5.1、3路口绿灯熄灭,黄灯亮,2、4路口红灯亮。

PB口为0F7H,PA口为9EH。

并延时。

6.1、3路口黄灯灭,2、4路口红灯亮。

PB口为0FFH,PA口为0BEH。

7.循环。

对5、6两个步骤进行循环,共八次,用loop函数实现,其中的延时为短延时,用delay2。

8.红灯全亮。

PB口为0FDH,PA口为0B6H。

9.1、3路口红灯亮,2、4路口绿灯亮。

Loop过程结束后,PB口为0FDH,PA口为75H。

2、4路口方向通车。

10.延时。

11.2、4路口绿灯熄灭,黄灯亮并闪烁多次,1、3路口红灯亮。

大概操作同5、6、7,黄灯亮时PB口为0FCH,PA口为0F3H,黄灯灭时PB口为0FDH,PA口为0F7H。

12.红灯全亮。

PB口为0FDH,PA口为0B6H

13.之后切换回1、3路口方向。

14.重复上述过程。

两种思路的区别分析:

在我小组设计的这两种思路中,虽然第二种程序步骤较多,但程序思想更为简单,所写程序也更为简洁。

因为二者之区别在于:

第一种思路在每一次红绿灯变换中都对8255原端口数据进行读入并进行“or”或“and”操作,操作后将其结果再输出到8255中进行控制;

第二种思路则不对8255各端口进行输入操作,算出各状态(共六种状态)的控制字后直接输出,控制各路口各灯。

显而易见,第二种四路较为简洁,在后面的程序中也能体现出来。

具体程序见下一页。

实验程序

方法一程序如下:

CODESEGMENT

ASSUMECS:

CODE

IOCONPTEQU0FF2BH

IOAPTEQU0FF28H

IOBPTEQU0FF29H

IOCPTEQU0FF2AH

ORG10e0H

START:

MOVAL,92H

MOVDX,IOCONPT

OUTDX,AL

MOVDX,IOBPT

INAL,DX

MOVBYTEPTRDS:

[0601H],AL

MOVDX,IOAPT

[0603H],AL

MOVDX,IOCONPT

MOVAL,80H

OUTDX,AL

MOVAL,DS:

[0601H]

ORAL,09H

[0603H]

ORAL,24H

OUTDX,AL

ANDAL,0FDH

ANDAL,0B6H

ORAL,04H

ORAL,92H

CALLDELAY1

IOLED0:

ANDAL,0FBH

ANDAL,0DFH

ORAL,02H

ORAL,08H

ORAL,04

ORAL,10H

MOVCX,8H

IOLED1:

ANDAL,0F7H

CALLDELAY2

ORAL,20H

LOOPIOLED1

ORAL,41H

ANDAL,7DH

CALLDELAY1

ORAL,82H

IOLED2:

ANDAL,0FEH

ORAL,01H

LOOPIOLED2

JMPIOLED0

DELAY1:

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

MOVCX,8000H

DELA1:

LOOPDELA1

CODEENDS

ENDSTART

方法二程序如下:

ORG12e0H

MOVAL,0FDH

MOVAL,0B6H

MOVAL,0FBH

MOVAL,0AEH

MOVAL,0F7H

MOVAL,9EH

MOVAL,0FFH

MOVAL,0BEH

MOVDX,IOBPT

MOVAL,75H

MOVAL,0FCH

MOVAL,0F3H

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

当前位置:首页 > 高中教育 > 理化生

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

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