微机原理课程设计交通灯模拟控制器Word文档格式.docx

上传人:b****6 文档编号:19987541 上传时间:2023-01-13 格式:DOCX 页数:12 大小:18.22KB
下载 相关 举报
微机原理课程设计交通灯模拟控制器Word文档格式.docx_第1页
第1页 / 共12页
微机原理课程设计交通灯模拟控制器Word文档格式.docx_第2页
第2页 / 共12页
微机原理课程设计交通灯模拟控制器Word文档格式.docx_第3页
第3页 / 共12页
微机原理课程设计交通灯模拟控制器Word文档格式.docx_第4页
第4页 / 共12页
微机原理课程设计交通灯模拟控制器Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理课程设计交通灯模拟控制器Word文档格式.docx

《微机原理课程设计交通灯模拟控制器Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通灯模拟控制器Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理课程设计交通灯模拟控制器Word文档格式.docx

4、显示时间子程序:

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

参考资料:

1.《微型计算机接口技术及应用》

2.《汇编语言程序设计》

3.《微型计算机汇编语言程序设计》

一、教科书中关于IBM-PC/XT机系统硬件的内容,包括8250(串行口控制器),8253,8255,8259等。

二、DOS系统功能调用。

INT21H

1、显示

显示单个字符

入参:

AH=02H

DL=字符ASCII值

出参:

显示字符串

AH=09H

DS:

DX此寄存器对指向内存中字符串的首地址,字符串以$结束

2、键盘

检查键盘状态

AH=0BH

AL=00H无输入0FFH有一字符

读键盘字符

AH=08H

AL=字符ASCII值

3、其它

退出程序,返回系统

AH=4CH

取中断矢量

AH=35H

AL=中断类型号

出参:

ES:

BX中断矢量,ES为段地址,BX为偏移地址

置中断矢量

AH=25H

DS:

DX中断矢量,DS为段地址,DX为偏移地址

三、BIOS屏幕功能调用。

INT10H

1、清屏操作

MOVAX,0600H

MOVCX,0000H

MOVDX,184FH

MOVBH,07H

2、移动光标

MOVAH,02H

MOVDH,**;

**为目的地行数(0-24)

MOVDL,**;

**为目的地列数(0-79)

MOVBH,00H

3、禁止光标显示

MOVAH,01H

MOVCX,2000H

4、恢复光标显示

MOVCX,0C0DH

本程序由西南科技大学信息工程学院通信08级电子测试实验室李同学提供,包含全部操作过程源代码解释说明

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

delaymacro;

延时一秒

localdloop

pushax

pushbx

pushdx

movah,00H;

BIOS调用

int1aH

adddl,18;

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

movbl,dl

dloop:

movah,00H

int1ah

cmpdl,bl;

是否累计到1s

jnzdloop;

没到,继续读

popdx

popbx

popax

datasegment;

数据定义

timedb20

timesdb20

bufdb'

00'

;

定义交通路口

table01db'

||N'

table02db'

||'

table03db'

table04db'

table05db'

table06db'

W||E'

table07db'

__________________________'

table08db'

table09db'

table10db'

table11db'

table12db'

table13db'

table14db'

||S'

strdb'

pleaseinputtimes:

'

strcldb'

'

flgdb0

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar;

主函数

movax,data

movds,ax

moves,ax

movah,01h;

清除光标

movcx,2000h

int10h

callinitial

funct:

moval,times

movtime,al

N1:

callshowtime

callgetchar

cmpal,'

r'

调整时间

jneloop1

callchangtime

jmpfunct

loop1:

a'

手动/自动控制状态

jneloop2

callopenclose

loop2:

b'

夜间模式

jneloop3

callnight

loop3:

t'

紧急模式

jneloop4

calltense

loop4:

q'

退出

jneN1

esc:

movah,4ch

int21h

tenseprocnear

movtime,0

movflg,1

calltimebuf

showlinebuf,0,2,0514h,0004h;

红灯;

紧急情况

showlinebuf,0,2,0e10h,0004h;

红灯

showlinebuf,0,2,080bh,0004h;

红灯

showlinebuf,0,2,0c19h,0004h;

tn2:

紧急控制按钮是否按下

jnetn1

tn1:

退出控制按钮是否按下

jnetn2

jmpesc

ret

tenseendp

nightprocnear

calltimebuf

showlinebuf,0,2,0514h,000eh;

黄灯;

夜间显示控制

showlinebuf,0,2,0e10h,000eh;

黄灯

showlinebuf,0,2,080bh,000eh;

黄灯

showlinebuf,0,2,0c19h,000eh;

ng2:

夜间控制按钮是否按下

jneng1

ng1:

jneng2

nightendp

opencloseprocnear;

开关子函数

movtime,0

op:

movflg,0

callshowd

op4:

callgetchar;

调用输入控制字符

o'

手动控制下开

jneop1

jmpop

op1:

c'

手动控制下关

jneop2

callshowd

op2:

jneop3;

jmpesc

op3:

jneop4;

手动/自动控制

jmpfunct

opencloseendp

changtimeprocnear;

改变时间子函数

showlinestrcl,0,2,0043h,000fh

showlinestr,0,19,0030h,000fh

movah,01h

int21h

subal,30h;

将输入时间值转化成

movbl,10输出十进制值

mulbl

movtimes,al

subal,30h

addtimes,al

movtime,al

changtimeendp

showtimeprocnear;

时钟程序

s1:

int16h

jnzs3

delay;

延时一秒

dectime

cmptime,-1

jnes2;

倒计时

incflg

cmpflg,2

jnes2

s2:

jmps1

s3:

ret

showtimeendp

showdprocnear

cmpflg,0

jned1

showlinebuf,0,2,0514h,0002h;

绿灯

showlinebuf,0,2,0e10h,0002h;

jmpd2

d1:

showlinebuf,0,2,080bh,0002h;

showlinebuf,0,2,0c19h,0002h;

d2:

showdendp

timebufprocnear;

显示时间time==>

buf

movdi,offsetbuf

moval,time

movbl,0ah

movah,00h

divbl

addal,30h

addah,30h

movdi[0],al

movdi[1],ah

timebufendp

getcharprocnear;

得到字符

movah,07h

getcharendp

initialprocnear;

初始化交通路口的显示

showlinetable01,0,38,0000h,15

showlinetable02,0,38,0100h,15

showlinetable03,0,38,0200h,15

showlinetable04,0,38,0300h,15

showlinetable05,0,38,0400h,15

showlinetable06,0,38,0500h,15

showlinetable07,0,38,0600h,15

showlinetable08,0,38,0d00h,15

showlinetable09,0,38,0e00h,15

showlinetable10,0,38,0f00h,15

showlinetable11,0,38,1000h,15

showlinetable12,0,38,1100h,15

showlinetable13,0,38,1200h,15

showlinetable14,0,38,1300h,15

initialendp

codeends

endmain

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

当前位置:首页 > 初中教育 > 其它课程

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

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