汇编设计Word格式文档下载.docx

上传人:b****6 文档编号:16783262 上传时间:2022-11-26 格式:DOCX 页数:14 大小:319.60KB
下载 相关 举报
汇编设计Word格式文档下载.docx_第1页
第1页 / 共14页
汇编设计Word格式文档下载.docx_第2页
第2页 / 共14页
汇编设计Word格式文档下载.docx_第3页
第3页 / 共14页
汇编设计Word格式文档下载.docx_第4页
第4页 / 共14页
汇编设计Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汇编设计Word格式文档下载.docx

《汇编设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汇编设计Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

汇编设计Word格式文档下载.docx

A8254EQU06C0H;

计数器0的接口地址

CON8254EQU06C6H;

控制口

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

DATASEGMENT

TEMPWORDDW0000H;

放置当前要调的是哪一位

TEMPTDB01H,00H,00H;

临时数据

TIMEDB00H,00H,00H;

时(睡觉次数)、分、秒

DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;

定义16进制数字

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

PUSHDS

PUSHSI

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETIRQ7;

取中断入口地址

MOVSI,00C4H;

中断矢量地址

MOV[SI],AX;

IRQ7的偏移矢量

MOVAX,CS;

段地址

MOVSI,00C6H

IRQ7的段地址矢量

CLI

POPSI

POPDS

;

初始化主片8259

MOVAL,11H

OUT20H,AL;

ICW1

MOVAL,08H

OUT21H,AL;

ICW2

MOVAL,04H;

IR2接口上接从片

ICW3

MOVAL,01H

ICW4

从片

MOVAL,11H

OUT0A0H,AL;

ICW1

MOVAL,30H

OUT0A1H,AL;

MOVAL,02H

ICW3,终端类型码是010,中断源是IR2

MOVAL,01H

MOVAL,0FDH

OCW1=11111101B,只有IR1不被屏蔽

MOVAL,6BH

主片8259,OCW1=01101101B

STI

时钟显示

MOVAX,DATA

MOVDS,AX

MOVSI,3000H

MOVAL,00H

MOV[SI],AL;

清显示缓冲

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOV[SI+4],AL

MOV[SI+5],AL

LEADI,TIME

MOVDX,MY8255_CON;

写8255控制字

MOVAL,81H;

C口低四位输入,A、B口输出

OUTDX,AL

计数器

PUSHDX

PUSHAX

MOVDX,CON8254

MOVAL,00110000B;

计数器0,16位计数,方式0,二进制

MOVDX,A8254

MOVAL,00H;

计数初值为18432(十进制)

OUTDX,AL;

写低8位

MOVAL,48H;

写高8位

POPAX

POPDX

BEGIN:

CALLDIS;

调用显示子程序

CALLCLEAR;

清屏

CALLCCSCAN;

扫描

JNZINK1

JMPBEGIN

INK1:

CALLDIS

CALLDALLY

CALLCLEAR

CALLCCSCAN

JNZINK2;

有键按下,转到INK2

;

确定按下键的位置

INK2:

MOVCH,0FEH

MOVCL,00H

COLUM:

MOVAL,CH

MOVDX,MY8255_A

OUTDX,AL

MOVDX,MY8255_C

INAL,DX;

IN为输入字节或字

L4:

TESTAL,08H;

isL4?

JNZNEXT

L4

ADDAL,CL

CALLSETIME;

清零

JMPCONTINUE

KCODE:

ADDAL,CL

CALLPUTBUF

CONTINUE:

PUSHAX

KON:

调用显示子程序

清屏

扫描

JNZKON

POPAX

NEXT:

INCCL;

次数加1

TESTAL,08H

JZKERR

ROLAL,1;

左移

MOVCH,AL

JMPCOLUM

KERR:

CCSCAN:

键盘扫描子程序

INAL,DX

NOTAL

ANDAL,0FH

RET

CLEAR:

MOVDX,MY8255_B;

清屏子程序

MOVAL,00H

DIS:

PUSHAX;

显示子程序

MOVSI,3000H

MOVDL,0DFH

MOVAL,DL

AGAIN:

PUSHDX

MOVAL,[SI]

MOVBX,OFFSETDTABLE

ANDAX,00FFH

ADDBX,AX

MOVAL,[BX]

MOVDX,MY8255_B

INCSI

TESTAL,01H

JZOUT1

RORAL,1

MOVDL,AL

JMPAGAIN

OUT1:

DALLY:

PUSHCX;

延时子程序

MOVCX,0006H

T1:

MOVAX,009FH

T2:

DECAX

JNZT2

LOOPT1

POPCX

PUTBUF:

PUSHDI

MOVSI,DI;

存键盘值到相应位的缓冲中

MOV[SI],AL

DECDI

CMPDI,2FFFH

JNZGOBACK

GOBACK:

POPDX

RET

SETIME:

LEASI,TEMPT

MOVAH,01H

MOV[SI],AH

LEASI,TEMPWORD

L43:

只有分、秒置0

MOVAH,00H

MOV[SI+1],AH

MOV[SI+2],AH

SETIMEND:

IRQ7:

STI;

中断服务子程序,自动修改时间

计数器0?

16位计数,方式0,二进制

计数器初值是18432(十进制)

MOVDL,00111100B

MOVCL,00000101B

MOVDH,10011001B

LEASI,TIME

MOVAL,[SI+2];

秒数

ADDAL,01H

DIVDL;

取模60

MOV[SI+2],AH;

AH=余数(D),装回去

MOVAH,[SI+1];

分钟

ADDAL,AH;

AL=秒位的进位(0或1),分+1或0

DIVCL;

取模5

MOV[SI+1],AH;

AH=模(余数),装回去

MOVAH,[SI];

小时

ADDAL,AH;

取分位进位

MOVAH,00H;

防止混

DIVDH;

取模99

MOV[SI],AH;

模(余数)=新时间,装回去;

将时钟时间写入到6个内存块中

MOVDL,00001010B;

=10

MOVAX,0000H

MOVAL,[DI+2];

读取秒

DIVDL

MOV[SI],AH;

放余数

MOV[SI+1],AL;

放商

MOVAL,[DI+1];

读取分

MOV[SI+2],AH

MOVAL,[DI];

读取睡觉次数(小时)

MOV[SI+4],AH

MOV[SI+5],AL

MOVAL,20H

OUT0A0H,AL

中断结束命令

IRET

CODEENDS

ENDSTART

七、实验结果:

1、已实现功能:

记录时间和睡觉次数,并通过8段数码管显示

设置复位键,按下复位键使时间清零,而睡觉次数不会清零。

2、未实现功能:

定时报警功能和同时亮灯闪烁功能。

实验心得:

经历了一周的课程设计,我感慨颇多,我认识到自己学到的知识在实践中的应用,课程设计中每一天遇到的情况还在我脑海里回旋,它给我带来了意想不到的效果。

课程设计是运用所学知识实践自我的最好途径。

亲身实践,而不是闭门造车。

实现了从理论到实践再到理论的飞跃。

增强了认识问题,分析问题,解决问题的能力。

为学习知识,锻炼能力,打下了良好的基础。

同时还需我们在以后的学习中用知识武装自己,用书本充实自己,为以后工作打下更坚固的基础!

通过这次的课程设计,我认清了自己的位置,发现了自己的不足,对课本上的知识有了更深层次的理解。

这让我认识到自身努力学习知识并将之与具体设计相结合的重要性。

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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