计算机原理及应用课设.docx

上传人:b****5 文档编号:6901933 上传时间:2023-01-12 格式:DOCX 页数:16 大小:125.56KB
下载 相关 举报
计算机原理及应用课设.docx_第1页
第1页 / 共16页
计算机原理及应用课设.docx_第2页
第2页 / 共16页
计算机原理及应用课设.docx_第3页
第3页 / 共16页
计算机原理及应用课设.docx_第4页
第4页 / 共16页
计算机原理及应用课设.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机原理及应用课设.docx

《计算机原理及应用课设.docx》由会员分享,可在线阅读,更多相关《计算机原理及应用课设.docx(16页珍藏版)》请在冰豆网上搜索。

计算机原理及应用课设.docx

计算机原理及应用课设

 

计算机原理及应用

课程设计

 

课程名称:

交通灯模拟控制

班级:

0902

姓名:

虞泽赟

学号:

2009302540053

设计目的

希望通过设计,了解8255A芯片的内部结构、工作方式、各引脚功能及I/O的使用,掌握8255A的控制字的意义、功能和设置方法,重点是根据控制要求,对8255A进行初始化编程和应用,培养将理论知识应用于实践的综合能力。

一、课题内容及要求

(1)交通灯的亮灭规律,设有一个十字路口,1、3为南北方向,2、4为东西方向,初试状态为四个路口的红灯全亮.之后,1、3方向通车。

延迟一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次后,1、3红灯亮,而同时2、4路口的绿灯亮。

2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次后,再切换到1、3路口方向,之后,重复上述过程。

(2)通过8255A控制发光二极管。

PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯。

(3)程序中设定好8255A的工作模式,及三个端口均工作在方式0,并处于输出状态。

(4)各发光二极管共阳极。

二、仪器设备

1.稳压电源一台(+5V)

2.启东计算机厂DVCC-598单片机实验系统一套

3.Windows98系统计算机一台

三、设计思路

(1)交通灯的显示

交通的灯的显示是通过LED灯来实现的,由于实验设备中有三种颜色的LED灯,分别是红色、绿色和黄色。

根据设计要求中,共需十二个交通灯,分别是四个路口行车道的红灯,黄灯,绿灯。

所以我们将试验箱的12个LED灯分成四组,将8255的a端口设置在2方式,连接到LED灯上,实现对LED灯输出信号。

(2)时间的控制

由于题目中没有给定红绿灯延迟的时间和黄灯是闪烁次数和闪烁时间,我们根据实际情况进行设定为:

绿灯时间亮起时间13.5秒,黄灯闪烁八次。

(3)黄灯的闪烁问题

对于题目中要求的对于黄灯的闪烁问题,可以通过连续的将黄灯置亮和置灭来实现。

对于两次操作的时间间隔,我们设置为0.5s中,因为太小了,人眼无法觉察得到,太大时,就起不到闪烁的作用。

在中断程序中进行判断如果是黄灯闪烁的时间,则每隔0.5s将其置灭或者置亮一次。

四、程序功能描述及流程图

1.功能描述:

(1)初试状态,四个路口的红灯全亮.

(2)开始运行,1、3路口绿灯亮,2,4口亮红灯。

车辆开始通行。

(3)延迟一段时间后,1,3路口黄灯闪烁8次;2,4路口亮绿灯。

(4)1、3路口绿灯变红,2、4路口红灯变绿,开始通车。

(5)延迟一段时间后,黄灯开始闪烁数次。

(6)2、4路口绿灯变红,1、3路口红灯变绿,开始通车。

2.程序流程图:

五、端口接线及电路连接图

1.端口接线:

8255A

黄灯:

PB3---L1、PB0---L9、PA5---L5、PA2---L13

红灯:

PB1---L3、PA6---L11、PA3---L7、PA0---L15

绿灯:

PB2—L2、PA7—L10、PA4---L6、PA1---L14

2.电路连接图:

PA14PB9PB1PA5PA4PA3PB0PA7PA6PB1PA1PA0

8255

六、

程序代码

CODESEGMENT

ASSUMECS:

CODE

IOCONPTEQU0FF2BH

IOPATEQU0FF28H

IOPBTEQU0FF29H

ORG12e0H

START:

MOVAL,80H

MOVDX,IOCONPT

OUTDX,AL;初始化

MOVDX,IOPAT

MOVAL,10110110B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11111101B

OUTDX,AL;初始全红灯

CALLDELAY1

GOON:

MOVAL,11111011B

OUTDX,AL

MOVDX,IOPAT

MOVAL,01110110B

OUTDX,AL;1、3绿灯,2、4红灯

CALLDELAY1

MOVCX,8

GOON1:

MOVDX,IOPAT

MOVAL,11110110B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11111111B

OUTDX,AL;只有2、4红灯亮

CALLDELAY2

MOVDX,IOPAT

MOVAL,11110110B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11110110B

OUTDX,AL

CALLDELAY2

DECCX

JNZGOON1;黄灯闪烁8次

MOVDX,IOPAT

MOVAL,10101101B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11111101B

OUTDX,AL;1、3红灯,2、4绿灯

CALLDELAY1

MOVCX,8

GOON2:

MOVDX,IOPAT

MOVAL,10111111B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11111101B

OUTDX,AL;只有1、3红灯亮

CALLDELAY2

MOVDX,IOPAT

MOVAL,10011011B

OUTDX,AL

MOVDX,IOPBT

MOVAL,11111101B

OUTDX,AL

CALLDELAY2

DECCX

JNZGOON2;黄灯闪烁8次

JMPGOON;循环

DELAY1:

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

CALLDELAY2

LOOPDELY2

POPCX

POPAX

RET

DELAY2:

PUSHCX

MOVCX,8000H

DELA1:

LOOPDELA1

POPCX

RET;2个延时程序

CODEENDS

ENDSTART

七、实验结果

程序运行后,发光二极管状态表:

(其中0代表灯灭,1代表灯亮和闪烁)

 

状态

西

绿

绿

绿

绿

PB3

PB2

PB1

PB0

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

开始4个红灯亮

0

0

1

0

0

1

0

1

1

0

0

1

该四

个工

作状

态按

此次

序将

重复

出现

南北绿灯亮,东西红灯亮

0

1

0

0

0

1

0

1

0

0

0

1

南北黄灯闪烁,东西红灯亮

1

0

0

0

0

1

1

0

0

0

0

1

南北红灯亮,东西绿灯亮

0

0

1

0

1

0

0

0

1

0

1

0

南北红灯亮,东西黄灯闪烁

0

0

1

1

0

0

0

0

1

1

0

0

发光二极管状态转换图:

(四种状态重复出现)

八、实验中遇到的问题及解决方法

在这次课程设计中,我们组遇到了许多问题。

尽管我们的课题并不是很复杂,但在写程序时还是有许多细节上的问题没有注意,通过跟另外与我们课题相同的一组同学一起讨论,才最终完善了程序。

即使如此,我们在真正做实验时,还是遇到了一些出乎意料的问题。

比如说,当老师检查结果时,我们才发现,初始状态四个红灯全亮的情形没有出现,通过仔细地核查程序,我们最终发现是由于设定的初始全红灯的时间太短了,以至于无法用肉眼辨别出来,在更改了时间后,这个问题才终于得到了解决。

九、实验收获及体会

通过这次的课程设计,令我对微机原理的理论知识以及单片机的程序开发有了更加深刻的认识。

对于微型计算机的程序设计语言也有了更深的理解。

这些都为我今后进一步地学习单片机的设计、开发和应用打下了良好的基础。

另外,这次课程设计使我真正认识到了理论与实际的区别,这在以后的工作和学习中将给予我很重要的提示,使我更加注重理论与实际相结合,注重选择解决问题的思路和方法。

总之,这次课程设计巩固了我所学的知识,提高了我分析、解决问题的能力,加强了我的团队合作意识,令我获益匪浅。

 

附:

交通灯法二

CODESEGMENT

ASSUMECS:

CODE

START:

IOCONFIGEQU0FF2BH

IOAEQU0FF28H

IOBEQU0FF29H

ORG1200H

MAINPROC

CALLINITIAL

MOVAX,1001001001B;四个红灯全亮

CALLASSIGN

CALLDELAYL

CIRCLE:

MOVAX,1010001010B

CALLASSIGN

CALLDELAYL

CALLINTERVAL13

MOVAX,10001010001B

CALLASSIGN

CALLDELAYL

CALLINTERVAL24

JMPCIRCLE

MOVAH,4CH

INT21H

RET

MAINENDP

INITIALPROC;8255A初始化

MOVDX,IOCONFIG

MOVAL,10000000B;PA0,PB0,PC0,均输出

OUTDX,AL

RET

INITIALENDP

DELAYLPROC;延时子程序(长)1S(设定BX和CX参数)40

PUSHCX

PUSHBX

MOVBX,2

CIRCLEDELAYL:

CALLDELAYS

DECBX

JNZCIRCLEDELAYL

POPBX

POPCX

RET

DELAYLENDP

DELAYSPROC;延时子程序(短)约10MS(设定CX参数)2E95//书162

PUSHCX

MOVCX,2H

CIRCLEDELAYS:

LOOPCIRCLEDELAYS

POPCX

RET

DELAYSENDP

ASSIGNPROC;赋值子程序(将信号灯的情况输出至相应口)

MOVDX,0378H

OUTDX,AL

MOVDX,0379H

MOVAL,AH

OUTDX,AL

RET

ASSIGNENDP

INTERVAL13PROC;24变红前的交替状态

PUSHBX

MOVBX,10

CIRCLE13:

MOVAX,1100001100B

CALLASSIGN

CALLDELAYS

MOVAX,1000001000B

CALLASSIGN

CALLDELAYS

DECBX

JNZCIRCLE13

POPBX

RET

INTERVAL13ENDP

INTERVAL24PROC;13变红前的交替状态

PUSHBX

MOVBX,10

CIRCLE24:

MOVAX,100001100001B

CALLASSIGN

CALLDELAYS

MOVAX,000001000001B

CALLASSIGN

CALLDELAYS

DECBX

JNZCIRCLE24

POPBX

RET

INTERVAL24ENDP

CODEENDS

ENDSTART

 

步进电机程序控制:

CODESEGMENT;步进电机5度步进角

ASSUMECS:

CODE

START:

IOCONFIGEQU0FF2BH

IOAEQU0FF28H

IOBEQU0FF29H

ORG1200H

MAINPROC

CALLINITIAL;8255初始化

NOP

MOVBX,100H;参数设置1

CIRCLE:

CALLFORWARD

CALLBACKWARD

DECBX

JNZCIRCLE

MOVAH,4CH

INT21H

RET

MAINENDP

INITIALPROC

MOVDX,IOCONFIG

MOVAL,10000000B;PA0,PB0,PC0,均输出

OUTDX,AL

RET

INITIALENDP

FORWARDPROC

MOVDX,IOA

PUSHCX

MOVCX,0B4H;参数设置10B4H

CIRCLEFORWARD:

MOVAL,03H

OUTDX,AL

CALLDELAY

MOVAL,06H

OUTDX,AL

CALLDELAY

MOVAL,0CH

OUTDX,AL

CALLDELAY

MOVAL,09H

OUTDX,AL

CALLDELAY

LOOPCIRCLEFORWARD

POPCX

RET

FORWARDENDP

BACKWARDPROC

MOVDX,IOA

PUSHCX

MOVCX,5AH;参数设置25AH

CIRCLEBACKWARD:

MOVAL,03H

OUTDX,AL

CALLDELAY

MOVAL,09H

OUTDX,AL

CALLDELAY

MOVAL,0CH

OUTDX,AL

CALLDELAY

MOVAL,06H

OUTDX,AL

CALLDELAY

LOOPCIRCLEBACKWARD

POPCX

RET

BACKWARDENDP

DELAYPROC

PUSHCX

MOVCX,0CCCH;参数设置30CCCH

CIRCLEDELAY:

LOOPCIRCLEDELAY

POPCX

RET

DELAYENDP

CODEENDS

ENDSTART

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

当前位置:首页 > 法律文书 > 调解书

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

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