硬件综合实验报告.docx

上传人:b****3 文档编号:11092861 上传时间:2023-05-29 格式:DOCX 页数:38 大小:397.61KB
下载 相关 举报
硬件综合实验报告.docx_第1页
第1页 / 共38页
硬件综合实验报告.docx_第2页
第2页 / 共38页
硬件综合实验报告.docx_第3页
第3页 / 共38页
硬件综合实验报告.docx_第4页
第4页 / 共38页
硬件综合实验报告.docx_第5页
第5页 / 共38页
硬件综合实验报告.docx_第6页
第6页 / 共38页
硬件综合实验报告.docx_第7页
第7页 / 共38页
硬件综合实验报告.docx_第8页
第8页 / 共38页
硬件综合实验报告.docx_第9页
第9页 / 共38页
硬件综合实验报告.docx_第10页
第10页 / 共38页
硬件综合实验报告.docx_第11页
第11页 / 共38页
硬件综合实验报告.docx_第12页
第12页 / 共38页
硬件综合实验报告.docx_第13页
第13页 / 共38页
硬件综合实验报告.docx_第14页
第14页 / 共38页
硬件综合实验报告.docx_第15页
第15页 / 共38页
硬件综合实验报告.docx_第16页
第16页 / 共38页
硬件综合实验报告.docx_第17页
第17页 / 共38页
硬件综合实验报告.docx_第18页
第18页 / 共38页
硬件综合实验报告.docx_第19页
第19页 / 共38页
硬件综合实验报告.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

硬件综合实验报告.docx

《硬件综合实验报告.docx》由会员分享,可在线阅读,更多相关《硬件综合实验报告.docx(38页珍藏版)》请在冰点文库上搜索。

硬件综合实验报告.docx

硬件综合实验报告

 

综合实验报告

(2009--2010年度第2学期)

 

名称:

硬件设计与实践

题目:

交通信号灯

院系:

班级:

学号:

学生姓名:

指导教师:

设计周数:

两周

成绩:

日期:

2010年07月08日

《硬件》综合实验

任务书

一、目的、要求

1.掌握8255的工作方式,掌握用8255集成电路芯片的接口电路硬件设计与连接,编写程序使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的规律变化,同时用二组2位数码管表示南北、东西方向交通信号灯的时间。

2、掌握8259的工作方式,掌握中断程序设计的基本方法和技能,掌握用汇编语言的调试和运行程序的方法。

设计急救车到达时,两个方向交通信号灯全变红,以便让急救车通过。

二、主要内容

1、通过8255,8259可编程接口芯片,利用实验台模拟实现十字路口交通信号灯的变化。

2、画出流程图,硬件连接,编制程序,调试运行。

3、实现十字路口交通信号灯的正常交替变化以及人工指挥交通。

4、特殊情况下急救车紧急通过。

三、进度计划

序号

综合实验内容

完成时间

备注

1

任务需求分析

2010年6月29日

2

软件及硬件设计

2010年7月1日

3

调试运行

2010年7月9日

4

验收,并写课程设计报告

2010年7月10日

四、综合实验成果要求

1.课程设计报告,包括硬件连线图,程序设计流程图,实验数据

2.软件程序,运行结果和结论

五、考核方式

1.分析设计报告(占50%)

2.实验结果验收(占50%)

学生姓名:

陈龙艳

指导教师:

2010年7月8日

一、实验的目的与要求

1.掌握8255的工作方式,掌握用8255集成电路芯片的接口电路硬件设计与连接,编写程序使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的规律变化,同时用二组2位数码管表示南北、东西方向交通信号灯的时间。

2.掌握8259的工作方式,掌握中断程序设计的基本方法和技能,掌握用汇编语言的调试和运行程序的方法。

设计急救车到达时,两个方向交通信号灯全变红,以便让急救车通过。

二、设计内容

设有一十字路口,其道路为南北方向和东西方向,南北东西各用一组发光二极管表示。

此路口交通信号灯的亮灭规律如下:

初态为南北、东西红灯全亮,禁止通行。

1)南北绿灯亮20s,东西红灯亮22s;

2)南北绿灯闪烁;

3)南北绿灯灭,黄灯亮2s;

4)南北黄灯灭,红灯亮22s,东西绿灯亮20s;

5)东西绿灯闪烁;

6)东西绿灯灭,黄灯亮2s;

7)东西黄灯灭;

8)转向1)循环执行。

9)若有急救车到达,两个方向灯全部变红。

急救车过后恢复正常运行。

说明:

南北、东西各用一组2位数码管显示指示灯的剩余时间(倒计时),绿灯闪烁的时间包含在绿灯亮的20s时间内。

三、设计主要思路

1)交通信号灯及数码管显示的控制可通过8255实现。

我们可编程设置8255的PA口为输出,且工作方式为方式0。

其中PA0、PA1、PA2控制南北方向的红、黄、绿灯,PA4、PA5、PA6控制东西方向的红、黄、绿灯;并且设置段码缓存,位码缓存,分别控制数码管的段码和位码。

2)交通信号灯亮、灭的时间及数码管显示的时间通过8253控制,主要用实验箱上F/4端子输出地时钟作为8253的CLK1的计数源,OUT1的输出作为CLK0的输入,使得8253每隔1s向8259发送一次中断请求,OUT0作为中断脉冲,8259实现具体的计数功能。

3)各芯片的主要工作原理和具体的功能:

8253定时/计数器:

其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。

其CLK0、CLK1是计数器0、1的时钟脉冲输入端,GATE0、GATE1是门控脉冲输入端,OUT0、OUT1是输出端。

本次实验设计的8253是工作在1MHZ的脉冲下,计时器的初值分别是100和10000,即每隔一秒发出一次信号。

8255可编程并行接口:

数据总线缓冲器:

这是一个双向三态的8位数据缓冲

器,它是8255A与微机系统数据总线的接口。

输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

三个端口A,B和C:

A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。

B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。

C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

A组和B组控制电路:

这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。

方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。

对C口按位复位命令字可对C口的每一位实现置位或复位。

A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

读写控制逻辑:

用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

本实验主要是使用PA口控制LED显示灯,通过A口输出地二进制编码来实现某一时刻灯亮的情况,“1”表示灯亮,“0”表示灯灭。

8259中断控制器:

初始化命令字(ICW1—ICW4)操作命令字(OCW1—OCW3)程序初始化中分别对各命令字初始化:

ICW1EQU00010011B

ICW2EQU00100000B

ICW4EQU00000001B

OCW1EQU11111110B

CS8259AEQU0B000H

CS8259BEQU0B001H

置初始值

IINITPROCNEAR;中断初始化程序

MOVDX,CS8259A

MOVAL,ICW1

OUTDX,AL

MOVDX,CS8259B

MOVAL,ICW2

OUTDX,AL

MOVAL,ICW4

OUTDX,AL

MOVAL,OCW1

OUTDX,AL

RET

IINITENDP

四、流程图

设计的大体流程图为:

主要思路是,定义数据段,初始化8255,8253,8259芯片,8253芯片设计成每隔一秒钟发出一次信号。

出现紧急情况时,在状态位未复位时将一直保持着南北,东西全是亮红灯,当标志位复位后,将回到当前时间应该出现的状态。

主程序流程图

中断服务程序流程图

时间显示子程序流程图

LED灯显示程序流程图

主要电路图

五、实验心得体会及难点分析

本次实验基本达到了实验目的。

通过本次实验,我基本掌握了数码显示管的使用方法,并且进一步掌握了8253、8255、8259各芯片的使用,进一步熟悉了它们的工作方式以及各控制字的确定,编写,各芯片的初始化程序。

经过设计,更改基本上实现了模拟十字路口的交通信号,即东西红灯亮时南北绿灯亮,当南北绿灯亮的时间小于三秒时进行闪烁,同时,在基本上实现基本程序之后,我们加入了比较简单的紧急情况控制信号,虽然结果看上去并没有什么太难的,但在编写程序和设计时我们花了很多时间,其中遇到了很多问题,但通过同学和老师的帮助、讲解,都一一的解决了。

其中主要遇到的难点如下:

本次实验,我们设计时首先是先将所用到的基本子程序和中断服务程序,先实现基本的功能后,才加上其他的功能。

其中遇到了比较多的问题,首先,在实现数码管显示的时候遇到了问题,我们通过研究数码管显示的实验初步了解了段码和位码,知道了显示数据的方法之一,但是在我们设计程序时是先确定位码,后确定段码的,但是实验显示上出现了一定的问题,主要是因为我们的显示程序中选择段码和位码并不是同步的,在上一次位码中显示了段码的数据后,选择下一个位码时仍然会显示该段码的数据,然后在显示新读入的数据,从而造成了有阴影的结果,我们知道,如果改成使用缓存将数据全部读入再同时显示在数码显示管中,将会解决此问题,但经过更改,程序出现了比较大的错误,未能调试成功。

其次,我们程序中出现的错误也算是我们本次实验的一个难点,就是我们在实现实验时,因为有多个条件跳转语句,因此,我们在跳转上出现的错误比较多,有没跳转对的,有条件出现偏差的,但这些难点都通过重头到尾理一次程序更改过来了。

还有,在加入紧急情况下东西、南北全是红灯亮,时间照常进行,而当紧急信号结束时,为了让LED灯恢复到当前显示的时间所代表的状态下,我们在程序中加入了一些判断语句,但因为多次使用寄存器AX,从而开始的时候程序出现了显示错误,最后,我们在程序中加入了PUSH/POP语句,将其保存、释放,从而使得寄存器内的值不会改变。

具体代码实现为

PUSHAX

MOVDX,PB

INAL,DX

CMPAL,80H

JZDQ1

POPAX

MOVDX,PA

OUTDX,AL

JMPDQ2

DQ1:

POPAX

DQ2:

PUSHAX

.

.

.

T3:

CALLLEDDISP

POPAX

CMPTEMP,0

JZT1

RET

最后,感谢老师的耐心指导,让我们比较顺利的完成了本次实验。

附件:

实验程序代码:

DATASEGMENT

OUTBITEQU08002H

OUTSEGEQU08004H

CONTROLEQU9003H

COUNT0EQU9000H

COUNT1EQU9001H

COUNT2EQU9002H

MODEEQU082H

PAEQU0A000H

PBEQU0A001H

PCEQU0A002H

CTL8255EQU0A003H

ICW1EQU00010011B

ICW2EQU00100000B

ICW4EQU00000001B

OCW1EQU11111110B

CS8259AEQU0B000H

CS8259BEQU0B001H

TEMPDB0

NSRDW0

NSYDW0

NSGDW0

EWRDW0

EWYDW0

EWGDW0

DATAENDS

;*******************************************

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTPROCNEAR

MOVDX,CTL8255

MOVAL,MODE

OUTDX,AL

CLI

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

MOVDX,OUTBIT

MOVAL,0

OUTDX,AL

moval,36h;00110110B;计数器0,16位,方式3,二进制

movdx,CONTROL

outdx,al

movax,10000

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

moval,76h;01110110B;计数器1,16位,方式3,二进制

movdx,CONTROL

outdx,al

movax,100

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

MOVAX,0

MOVDS,AX

MOVBX,4*ICW2

MOVAX,CODE

SHLAX,4

ADDAX,OFFSETIENTER

MOV[BX],AX

MOVAX,0

INCBX

INCBX

MOV[BX],AX

CALLIINIT

MOVAX,DATA

MOVDS,AX

STI

LP:

MOVDX,PB

INAL,DX

CMPAL,80H

JNZLY0

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

MOVAL,00010100B

JMPLY00

LY0:

moval,00010100B

movdx,PA

outdx,al

LY00:

MOVNSG,20

MOVEWR,22

CALLTIMEDISP

MOVDX,PB

INAL,DX

CMPAL,80H

JNZLY1

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

MOVAL,00010010B

JMPLY11

LY1:

moval,00010010B

movdx,PA

outdx,al

LY11:

MOVNSY,2

CALLTIMEDISP

MOVDX,PB

INAL,DX

CMPAL,80H

JNZLY2

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

MOVAL,01000001B

JMPLY22

LY2:

moval,01000001B

movdx,PA

outdx,al

LY22:

MOVNSR,22

MOVEWG,20

CALLTIMEDISP

MOVDX,PB

INAL,DX

CMPAL,80H

JNZLY3

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

MOVAL,00100001B

JMPLY33

LY3:

moval,00100001B

movdx,PA

outdx,al

LY33:

MOVEWY,2

CALLTIMEDISP

JMPLP

STARTENDP

IINITPROCNEAR;初始化子程序

MOVDX,CS8259A

MOVAL,ICW1

OUTDX,AL

MOVDX,CS8259B

MOVAL,ICW2

OUTDX,AL

MOVAL,ICW4

OUTDX,AL

MOVAL,OCW1

OUTDX,AL

RET

IINITENDP

IENTERPROCNEAR;中断服务程序

PUSHAX

PUSHDX

CMPNSG,3

JZL1

CMPNSG,2

JZL2

CMPEWG,3

JZL3

CMPEWG,2

JZL4

JMPCNS

L1:

MOVDX,PA

MOVAL,00010000B

OUTDX,AL

JMPCNS

L2:

MOVDX,PA

MOVAL,00010100B

OUTDX,AL

JMPCNS

L3:

MOVDX,PA

MOVAL,00000001B

OUTDX,AL

JMPCNS

L4:

MOVDX,PA

MOVAL,01000001B

OUTDX,AL

CNS:

CMPNSR,0

JNZC1

CMPNSY,0

JNZC2

CMPNSG,0

JNZC3

JMPCEW

C1:

DECNSR

JMPCEW

C2:

DECNSY

JMPCEW

C3:

DECNSG

CEW:

CMPEWR,0

JNZC4

CMPEWY,0

JNZC5

CMPEWG,0

JNZC6

JMPEXIT

C4:

DECEWR

JMPEXIT

C5:

DECEWY

JMPEXIT

C6:

DECEWG

EXIT:

MOVDX,PB

INAL,DX

CMPAL,80H

JNZJ

MOVAL,00010001B

MOVDX,PA

OUTDX,AL

J:

MOVDX,CS8259A

MOVAL,20H

OUTDX,AL

POPDX

POPAX

IRET

IENTERENDP

TIMEDISPPROCNEAR;时间显示子程序

MOVTEMP,0

T1:

PUSHAX

MOVDX,PB

INAL,DX

CMPAL,80H

JZDQ1

POPAX

MOVDX,PA

OUTDX,AL

JMPDQ2

DQ1:

POPAX

DQ2:

PUSHAX

MOVCH,0

CMPNSR,0

JNZTIME1

CMPNSY,0

JNZTIME2

CMPNSG,0

JNZTIME3

MOVTEMP,1

JMPTIME3

TIME1:

MOVAX,NSR

JMPT2

TIME2:

MOVAX,NSY

JMPT2

TIME3:

MOVAX,NSG

T2:

CMPEWR,0

JNZTIME4

CMPEWY,0

JNZTIME5

CMPEWG,0

JNZTIME6

MOVTEMP,1

JMPTIME6

TIME4:

MOVBX,EWR

JMPT3

TIME5:

MOVBX,EWY

JMPT3

TIME6:

MOVBX,EWG

T3:

CALLLEDDISP

POPAX

CMPTEMP,0

JZT1

RET

TIMEDISPENDP

LEDDISPPROCNEAR;数码管显示子程序

CALLSTOR

MOVAX,BX

CALLSTOR

RET

LEDDISPENDP

STORPROCNEAR

MOVCL,10

DIVCL

CALLCOMP

MOVAL,AH

CALLCOMP

RET

STORENDP

COMPPROCNEAR

cmpal,0

jzd0

cmpal,1

jzd1

cmpal,2

jzd2

cmpal,3

jzd3

cmpal,4

jzd4

cmpal,5

jzd5

cmpal,6

jzd6

cmpal,7

jzd7

cmpal,8

jzd8

cmpal,9

jzd9

d0:

calldisplay0

JMPEX

d1:

calldisplay1

JMPEX

d2:

calldisplay2

JMPEX

d3:

calldisplay3

JMPEX

d4:

calldisplay4

JMPEX

d5:

calldisplay5

JMPEX

d6:

calldisplay6

JMPEX

d7:

calldisplay7

JMPEX

d8:

calldisplay8

JMPEX

d9:

calldisplay9

EX:

RET

COMPENDP

display0procnear

cmpch,0

jzl01

cmpch,1

jzl02

cmpch,2

jzl03

cmpch,3

jzl04

l01:

movdx,8002h

moval,20h

outdx,al

JMPexit0

l02:

movdx,8002h

moval,10h

outdx,al

jmpexit0

l03:

movdx,8002h

moval,08h

outdx,al

JMPexit0

l04:

movdx,8002h

moval,04h

outdx,al

jmpexit0

exit0:

moval,3fh

movdx,8004h

outdx,al

INCCH

RET

display0endp

display1procnear

cmpch,0

jzl11

cmpch,1

jzl12

cmpch,2

jzl13

cmpch,3

jzl14

l11:

movdx,8002h

moval,20h

outdx,al

jmpexit1

l12:

movdx,8002h

moval,10h

outdx,al

jmpexit1

l13:

movdx,8002h

moval,08h

outdx,al

jmpexit1

l14:

movdx,8002h

moval,04h

outdx,al

jmpexit1

exit1:

moval,06h

movdx,8004h

outdx,al

INCch

RET

display1endp

display2procnear

cmpch,0

jzl21

cmpch,1

jzl22

cmpch,2

jzl23

cmpch,3

jzl24

l21:

movdx,8002h

moval,20h

outdx,al

jmpexit2

l22:

movdx,8002h

moval,10h

outdx,al

jmpexit2

l23:

movdx,8002h

moval,08h

outdx,al

jmpexit2

l24:

movdx,8002h

moval,04h

outdx,al

jmpexit2

exit2:

moval,5bh

movdx,8004h

outdx,al

INCch

RET

display2endp

display3procnear

cmpch,0

jzl31

cmpch,1

jzl32

cmpch,2

jzl33

cmpch,3

jzl34

l31:

movdx,8002h

moval,20h

outdx,al

jmpexit3

l32:

movdx,8002h

moval,10h

outdx,al

jmpexit3

l33:

movdx,8002h

moval,08h

outdx,al

jmpexit2

l34:

movdx,8002h

moval,04h

outdx,al

jmpexit3

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2