微机课程设计任务书Word格式.docx

上传人:b****1 文档编号:1403318 上传时间:2023-04-30 格式:DOCX 页数:32 大小:173.86KB
下载 相关 举报
微机课程设计任务书Word格式.docx_第1页
第1页 / 共32页
微机课程设计任务书Word格式.docx_第2页
第2页 / 共32页
微机课程设计任务书Word格式.docx_第3页
第3页 / 共32页
微机课程设计任务书Word格式.docx_第4页
第4页 / 共32页
微机课程设计任务书Word格式.docx_第5页
第5页 / 共32页
微机课程设计任务书Word格式.docx_第6页
第6页 / 共32页
微机课程设计任务书Word格式.docx_第7页
第7页 / 共32页
微机课程设计任务书Word格式.docx_第8页
第8页 / 共32页
微机课程设计任务书Word格式.docx_第9页
第9页 / 共32页
微机课程设计任务书Word格式.docx_第10页
第10页 / 共32页
微机课程设计任务书Word格式.docx_第11页
第11页 / 共32页
微机课程设计任务书Word格式.docx_第12页
第12页 / 共32页
微机课程设计任务书Word格式.docx_第13页
第13页 / 共32页
微机课程设计任务书Word格式.docx_第14页
第14页 / 共32页
微机课程设计任务书Word格式.docx_第15页
第15页 / 共32页
微机课程设计任务书Word格式.docx_第16页
第16页 / 共32页
微机课程设计任务书Word格式.docx_第17页
第17页 / 共32页
微机课程设计任务书Word格式.docx_第18页
第18页 / 共32页
微机课程设计任务书Word格式.docx_第19页
第19页 / 共32页
微机课程设计任务书Word格式.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机课程设计任务书Word格式.docx

《微机课程设计任务书Word格式.docx》由会员分享,可在线阅读,更多相关《微机课程设计任务书Word格式.docx(32页珍藏版)》请在冰点文库上搜索。

微机课程设计任务书Word格式.docx

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

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

(4)读写控制逻辑:

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

2.2.2芯片8255的引脚

8255A的引脚如图2-2所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

D7~D0(数据线):

三态、双向数据线,与CPU数据总线连接,用来传送数据。

CS:

片选信号线,低电平有效时,芯片被选中。

A1,A0(portaddress):

地址线,用来选择内部端口。

RD:

读出信号线,低电平有效时,允许数据读出。

WR:

写入信号线,低电平有效时,允许数据写入。

RESET:

复位信号线,高电平有效时,将所有内部寄存器清0。

PA7~PA0(端口A):

A口输入/输出信号线。

PB7~PB0(端口B):

B口输入/输出信号线。

PC7~PC0(端口C):

C口输入/输出信号线。

VCC:

+5V电源。

GND:

电源地线。

图2-2芯片8255引脚图

2.2.3芯片8255的工作方式

芯片8255A主要有三种工作方式

方式0---基本输入输出方式;

方式1---选通输入输出方式;

方式2---双向选通输入输出方式。

2.3设计思路和电路原理图

2.3.1设计思路

设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮;

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁。

闪烁3次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。

延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。

闪烁3次后,再切换到1、3路口方向;

之后,重复上述过程。

交通灯系统如图2-3所示。

图2-3十字路口交通灯系统示意图

通过8254计数,每1ms刷新一次,CX计数不为零,计数值减1,刷新1000次,持续一秒钟;

使用8254实现了PA7~PA0控制二极管的亮灭,PB7~PA0控制数码管的显示。

通过设置控制字,使8255的C口高四位输出,低四位输入,PC4和PC5对数码管进行位控,让两位十进制数同时显示。

2.3.2红黄绿灯的表示

在设计的过程中我们采用了六个灯,但是需要连接了8根线,所以做了如下的规定:

R表示红灯,G表示绿灯,Y表示黄灯,E表示方向东,W表示方向西,S表示方向南,N表示方向北。

所以在设计中采用如下的规定:

A7~A5分别代表东西方向红黄绿灯,A4~A2分别代表南北方向红黄绿灯,A1~A0无意义。

2.3.3硬件电路的接线图

整个系统硬件电路的接线图如图2-4所示。

图2-4系统硬件电路接线图

8255连接说明如下:

8255数据端口连接系统总线数据段D0~D7

8255RD连接系统IOR

8255WD连接系统IOW

8255CS连接IOY3

8255寄存器地址输入信号A0A1连接系统总线A0A1

8255PA端连接外设二极管(PA端A7~A2对应二极管D7~D2),作为输出

8255PB端连接外设LED,作为输出

8255PC端低位输入高位输出C0连接8254OUT端作为输入;

C4~C5连接X1~X2作为输出,控制LED显示十位个位

8254连接说明如下:

8254数据端口连接系统总线数据段D0~D7

8254RD连接系统IOR

8254WD连接系统IOW

8254CS连接IOY2

8254寄存器地址输入信号A0A1连接系统总线A0A1

8254CLK0连接1KHZ

8254GATE0连接+5V

8254OUT0连接8255C0端

.3软件编程模拟交通灯控制系统

3.1编程软件MF2KP

本次编写程序用到的主要是老师给我们的那个小程序,也就是MF2KP,这个软件里面本身也有一些经典的程序,我在编写程序之前先是看了一下这些程序,感觉里面的一些程序模块也是挺有用的,有的也可以借鉴一下;

此软件编写程序之后,运行之前需要先看一下程序中出错的地方,按照下面的提示将错误的地方改正过来,这样才能生成相应的文件,否则根本无法调试运行,此软件使用起来比较方便,但是存储容量比较小,有一些比较大的程序不能够在里面运行,这是该软件的缺点。

3.2程序流程图

本次软件编程的程序流程图如图3-1所示。

N

图3-1程序流程图

3.3编程技巧与主要知识点

本次用汇编语言进行编程,下面是编写过程中主要涉及的知识点:

1、视频显示程序设计:

一般由DOS或BIOS调用来完成。

有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。

用INT10H即可建立某种显示方式。

用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT21H来实现调用。

2、键盘扫描程序设计:

检测键盘状态,有无输入,并检测输入各值。

例:

利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器。

3、定时器中断处理程序:

在此中断处理程序中,计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。

在系统定时中断处理程序中,有一条中断指令INT1CH指令,在ROMBIOS中,1CH的处理仅一条IRET指令,实际上它并没有做任何工作而只是为用户提供了一个软中断类型号,所以INT1CH指令每秒也将执行18.2次,设计中可用这个定时周期性工作的处理程序来代替原有的1CH程序,实现定时。

4、显示时间子程序:

将计时单元的二进制转换为十进制数加以显示。

3.4源程序清单

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

SHOWLINEMACROSTR,STA,LEN,POS,COL;

显示字符串宏

PUSHDX

PUSHBX

PUSHAX

MOVBP,OFFSETSTR;

显示起始位置

ADDBP,STA;

第几个开始

MOVDX,POS;

位置

MOVCX,LEN;

长度

MOVBX,COL;

颜色

MOVAX,1301H;

字符串显示中断

INT10H

POPAX

POPBX

POPDX

ENDM

TIMEBUF0MACROTIME,BUF;

PUSHBX

MOVDI,OFFSETBUF

MOVAL,TIME

MOVBL,0AH

MOVAH,00H

DIVBL

ADDAL,30H

ADDAH,30H

MOV[DI],AL

INCDI

MOV[DI],AH

DELAYMACRO;

延时一秒

LOCALDLOOP;

利用INT1AH/00H取得中断次数(DX),

PUSHAX

MOVAH,00H;

BIOS调用

INT1AH;

55ms引起一次中断,作为定时信号。

ADDDL,18;

定时1S,需要18个定时单位

MOVBL,DL

INCBL

DLOOP:

MOVAH,00H

INT1AH

CMPDL,BL;

是否累计到1S

JNZDLOOP;

没到,继续读

POPDX

POPAX

DATASEGMENT

TIME_YDB2

TIMEDB10

TIME0DB7

TIME_GDB30

TIME_RDB33

BUF0DB0FH

BUF_XDB'

00'

;

定义交通路口

BUF_YDB'

BUFDB'

TABLE01DB'

'

TABLE02DB'

TABLE03DB

TABLE04DB'

0B3H,'

|'

TABLE05DB'

TABLE06DB'

TABLE07DB'

N'

TABLE08DB'

TABLE09DB'

TABLE10DB13DUP(0C4h),0D9h,'

0C0h,11DUP(0c4h),'

|

TABLE11DB'

TABLE12DB'

0FH,'

TABLE13DB'

TABLE14DB'

----E--'

--W---|---------------------------------------------------------------'

TABLE15DB'

TABLE16DB'

TABLE17DB'

TABLE18DB13DUP(0C4H),0BFh,'

0DAH,11DUP(0C4H),'

TABLE19DB'

TABLE20DB'

|---------------------------------------------------------'

TABLE21DB'

S'

TABLE22DB'

|

TABLE23DB'

TABLE24DB'

STRDB'

PleaseinputtimesR:

G:

Y:

[Y/N]'

STR1DB'

CHANGETIME'

STR2DB'

DOBY'

STR3DB'

NIGHT'

STR4DB'

Quitsystem[Q]'

STR5DB'

NORMAL'

STR6DB'

1.Quitsystem[Q]'

STR7DB'

2.BacktoNORMAL[B]'

STR8DB'

EMERGEN'

STR9DB'

X--G,Y--R:

[X];

X--R,Y--G:

[Y]'

STRCLDB'

STR10DB'

:

'

FLGDB0

FLG0DB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

MAINPROCFAR

MOVAX,DATA

MOVDS,AX

MOVES,AX

FUNCT:

MOVAH,01H;

清除光标

MOVCX,2000H

INT10H

CALLINITIAL

N1:

CALLSHOWTIME

CALLGETCHAR

CMPAL,'

C'

调整时间

JNELOOP1

CALLCHANGTIME

JMPFUNCT

LOOP1:

D'

手动/自动控制状态

CALLDOBY

LOOP4:

Q'

退出

JNEN1

ESC:

MOVAH,4CH

INT21H

DOBYPROCNEAR;

开关子函数

MOVFLG,0

OP:

CALLDO

OP4:

CALLGETCHAR;

调用输入控制字符

Y'

手动控制下开

JNEOP1

MOVFLG,1

JMPOP

OP1:

X'

手动控制下关

JNEOP2

MOVFLG,2

OP2:

JNEOP3;

JMPESC

OP3:

B'

JNEOP4;

手动/自动控制

JMPFUNCT

RET

DOBYENDP

DOPROCNEAR;

CMPFLG,0

JADO0;

SHOWLINEBUF,0,2,0A12H,000EH;

黄灯

SHOWLINEBUF,0,2,1212H,000EH;

SHOWLINEBUF,0,2,0E0CH,000EH;

黄灯

SHOWLINEBUF,0,2,0E18H,000EH;

JMPDO2

DO0:

CMPFLG,1

JNEDO1

SHOWLINEBUF,0,2,0A12H,0002H;

SHOWLINEBUF,0,2,1212H,0002H;

SHOWLINEBUF,0,2,0E0CH,0004H;

SHOWLINEBUF,0,2,0E18H,0004H;

DO1:

SHOWLINEBUF,0,2,0A12H,0004H;

SHOWLINEBUF,0,2,1212H,0004H;

SHOWLINEBUF,0,2,0E0CH,0002H;

SHOWLINEBUF,0,2,0E18H,0002H;

SHOWLINEBUF0,0,1,0C12H,0004H

SHOWLINEBUF0,0,1,1013H,0004H

SHOWLINEBUF0,0,1,0E0FH,0002H

SHOWLINEBUF0,0,1,0E16H,0002H

JMPDO3

DO2:

JNEDO4

SHOWLINEBUF0,0,1,0C12H,000EH

SHOWLINEBUF0,0,1,1013H,000EH

SHOWLINEBUF0,0,1,0E0FH,000EH

SHOWLINEBUF0,0,1,0E16H,000EH

DO4:

CMPFLG,1

JNEDO3

SHOWLINEBUF0,0,1,0C12H,0002H

SHOWLINEBUF0,0,1,1013H,0002H

SHOWLINEBUF0,0,1,0E0FH,0004H

SHOWLINEBUF0,0,1,0E16H,0004H

DO3:

SHOWLINESTR9,0,30,112AH,000FH;

SHOWLINESTR2,0,10,1038H,000FH;

SHOWLINESTR6,0,25,122CH,000FH;

SHOWLINESTR7,0,25,132CH,000FH;

DOENDP

CHANGTIMEPROCNEAR

CALLCHAN

SHOWLINESTR10,0,1,113AH,000FH

MOVAH,01H

INT21H

SUBAL,30H;

将输入时间值转化成

MOVBL,10;

输出十进制值

MULBL

MOVTIME_R,AL

SUBAL,30H

ADDTIME_R,AL

SHOWLINESTR10,0,1,113FH,000FH

MOVTIME_G,AL

ADDTIME_G,AL

SHOWLINESTR10,0,1,1144H,000FH

MOVTIME_Y,AL

ADDTIME_Y,AL

CH1:

JECH2

N'

JNECH1

MOVBL,10

MOVTIME_R,BL

MOVBL,5

MOVTIME_G,BL

MOVBL,4

MOVTIME_Y,BL

CH2:

CHANGTIMEENDP

CHANPROCNEAR

SHOWLINESTR,0,40,1126H,000FH

SHOWLINESTR1,0,10,1038H,000FH

SHOWLINETABLE17,0,25,122CH,000FH

CHANENDP

SHOWTIMEPROCNEAR

XORAL,AL

MOVFLG,AL

MOVFLG0,AL

MOVAL,TIME_R

MOVTIME,AL

MOVAL,TIME_G

MOVTIME0,AL

S1:

INT16H

JNZS3

DELAY;

延时一秒

DECTIME

CMPTIME,-1

JNES2;

不等于-1,显示,否则·

·

CMPFLG,2

JES

CMPFLG,1

JES0

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

当前位置:首页 > 人文社科 > 法律资料

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

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