关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx

上传人:b****3 文档编号:5211129 上传时间:2022-12-14 格式:DOCX 页数:14 大小:18.31KB
下载 相关 举报
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx_第1页
第1页 / 共14页
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx_第2页
第2页 / 共14页
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx_第3页
第3页 / 共14页
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx_第4页
第4页 / 共14页
关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx

《关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx》由会员分享,可在线阅读,更多相关《关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx(14页珍藏版)》请在冰豆网上搜索。

关于动态方向箭头控制及显示接口设计微机原理课程设计说明书.docx

关于动态方向箭头控制及显示接口设计微机原理课程设计说明书

 

天津商业大学通信专业2010级

 

微机原理及接口技术

课程设计说明书

 

设计题目:

动态方向箭头控制及显示接口设计

学号:

20104253

姓名:

范吟雪

完成时间:

2013.1.5

总评成绩:

指导教师签章:

设计题目:

一、设计任务要求:

利用试验箱上的小键盘控制8×8点阵LED显示箭头向上或向下移动。

画出8255连接4×4小键盘(参考附录1)和8×8点阵LED显示接口电路图。

画出8255的地址译码电路,8255的端口地址为A口0E860H、B口0E861、C口0E862H、命令寄存器0E863H

二、电路设计

8255A由数据端口,组控制电路,数据总线缓冲器,读写逻辑部件几部分组成。

三个8位的I/O端口A,B,C,三个端口都可以作为数据I/O口使用,其中,A口和B口都可以既作为输出端口又作为输入端口,只有C口可以作为控制端口实用,并实现8位中的任何一位的置位和复位功能。

有时,A,B口作为数据I/O,而C口作为控制或状态端口,分为上、下两部分,配合A,B口工作。

(1)静态箭头显示原理我们选择将A,B口都作为输出,分别控制8行8列的发光二极管的行和列的电平,经试验得知,PA口口控制的列是低电平有效,即给列低电平0时,该列的发光二极管亮1则灭,而PB口控制的行为高电平有效,给行1时,该行所在的发光二极管亮0灭。

当某二极管所对应的行和列的电平均有效时,该二极管亮。

依据上部分内容,可以写出上下两种箭头的静态初始化控制字。

C口的高四位做输出,低四位做输入,分别控制4行4列的键盘。

同样可以写出初始化程序来选择第一行的2个键有效,以此控制两种箭头的切换。

然后设置8255A的工作方式控制字,各口工作方式均为0,确定为1000001B,写入其控制端口。

完善程序后,再加入时间延时程序,每个初始化都调用该程序,选择合适的时间,并在每次子程序(如向上的箭头)结尾加上循环跳转到程序开头,不断地重复每一个初始化过程,这样,不停地运行,看起来就是连接起来的似乎是不变的静态的两种箭头

(2)动态箭头显示原理接下来考虑实现动态两种箭头显示。

本环节主要是改变程序,应用程序控制来实现动态。

在子程序中加入循环,使每一行或列的同样的初始字在不同的循环次数时显示在不同的行或列,并保证所有的同步循环,以保持箭头的形状,再一次加入延时程序,使完成每次移动的时间适中,不要太快也不要太慢。

这样就实现了各行各列同步移动的现象,也就是动态显示的过程。

(3)键控功能实现原理最后要实现键控功能。

同样是修改汇编程序,首先写入初始字,是第一行的两个键有效,不断地扫描两个键的电平,并从端口中读入信息,由于每次仅有一个键按下去,因此读入的两位码中只有一个是高电平,如是1000的时候,我们将其分别于1,2,4,8进行比较,当相等时则转到相应的箭头程序,判断后等于8,可确定是3键按下,因此转去执行向上的箭头程序,直到下一次的比较成立,则转去相应的程序,以此实现了键控的功能。

三、设计调试总结(包括对设计的目的和意义的认识、本人完成情况、设计中的主要收获和不足)

通过本次微机原理与接口技术的课程设计,进行程序设计编程和技能的基本训练,巩固在课堂上学到的有关软件程序设计的基本知识和方法,通过动手能力的培养,进一步熟练汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

但是,在课程设计过程中也遇到了很多问题,充分了解了自己对课程掌握的不足,不过后来也通过自己的进一步学习和老师同学的帮助解决了问题,最后完成了动态方向箭头控制及显示接口设计,掌握了试验箱上小键盘控制点矩阵的原理,也进一步掌握了8255的工作原理。

二、程序清单

(注:

程序清单使用5号字体,单倍行距排版)

STACK1SEGMENTSTACK

DB256DUP(?

STACK1ENDS

DATASEGMENT

DIS0DB'PRESSANYOFTHEKEYSTOQUIT!

$';提示信息

I8255TYPEDW0003H;8255控制字的地址

I8255ADDADW0000H;8255的A口地址

I8255ADDBDW0001H;8255的B口地址

I8255ADDCDW0002H;8255的C口地址

KEY_SVDB0,0,1,0,2,0,0,0,3

KEY_V_BUFDB?

SCAN_VDB?

KEY_HVDB?

DIS1DB'PCIADDRESS0$';

DIS2DB'PCIADDRESS1$'

DIS3DB'PCIMEMORYADDRESS$'

DIS4DB'PCIINTERRUPTLINE$'

DIS5DB'BIOSNOTSUPPER!

$'

DIS6DB'READPCIBOARDFAIL!

$'

;-------PCIConfigurationSpaceRegisters-------------------------------

PCI_CS_VENDOR_IDEQU0

PCI_CS_DEVICE_IDEQU2

PCI_CS_COMMANDEQU4

PCI_CS_STATUSEQU6

PCI_CS_REVISIONEQU8

PCI_CS_CLASS_CODEEQU9

PCI_CS_CACHE_LINE_SIZEEQU0CH

PCI_CS_MASTER_LATENCYEQU0DH

PCI_CS_HEADER_TYPEEQU0EH

PCI_CS_BISTEQU0FH

PCI_CS_BASE_ADDRESS_0EQU10H

PCI_CS_BASE_ADDRESS_1EQU14H

PCI_CS_BASE_ADDRESS_2EQU18H

PCI_CS_BASE_ADDRESS_3EQU1CH

PCI_CS_BASE_ADDRESS_4EQU20H

PCI_CS_BASE_ADDRESS_5EQU24H

PCI_CS_EXPANSIONEQU30H

PCI_CS_INTERRUPT_LINEEQU3CH

PCI_CS_INTERRUPT_PINEQU3DH

PCI_CS_MIN_GNTEQU3EH

PCI_CS_MAX_LATEQU3FH

;---------------------END-------------------------

ADDRESS_IO_0DW?

ADDRESS_IO_1DW?

DATAENDS

CODESEGMENT'CODE'

ASSUMECS:

CODE,SS:

STACK1,DS:

DATA

START:

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVAH,0B1H;读配置资源

MOVAL,1H

INT1AH

CMPAH,0

JZSTAR1

MOVDX,OFFSETDIS5

JMPM_EXIT

STAR1:

MOVAH,0B1H

MOVAL,02H

MOVCX,8376H

MOVDX,10EBH

MOVSI,0

INT1AH

JNCAA

MOVDX,OFFSETDIS6

MOVAH,9

INT21H

JMPM_EXIT

AA:

MOVAH,0B1H

MOVAL,09H

MOVDI,PCI_CS_BASE_ADDRESS_1

INT1AH

CMPAH,0

JZSTAR2

MOVDX,OFFSETDIS1

MOVAH,9

INT21H

JMPM_EXIT

STAR2:

ANDCX,0FFFCH

MOVAX,CX

MOVADDRESS_IO_0,AX

MOVAH,0B1H

MOVAL,09H

MOVDI,PCI_CS_BASE_ADDRESS_3

INT1AH

CMPAH,0

JZSTAR3

MOVDX,OFFSETDIS1

MOVAH,9

INT21H

JMPM_EXIT

STAR3:

ANDCX,0FFFCH

MOVAX,CX

MOVADDRESS_IO_1,AX

ADDI8255TYPE,AX

ADDI8255ADDA,AX

ADDI8255ADDB,AX

ADDI8255ADDC,AX

MOVAL,3

MOVAH,0

INT10H

MOVDX,OFFSETDIS0;显示提示

MOVAH,9

INT21H

MOVAH,0FFH

MOVDX,I8255TYPE;初始8255的C口pc4~pc7为输出,pc0~3为输入

MOVAL,81H

OUTDX,AL

MOVKEY_V_BUF,0FFH

MAIN_LP:

CALLKEYSCAN

CMPAL,KEY_V_BUF

JZMNLP1

CMPAL,0FFH

JZMNLP1

MOVKEY_V_BUF,AL

CALLDISPLAY1

MNLP1:

CALLTIME

CALLPCKEY

JMPMAIN_LP

M_EXIT:

MOVAX,4C00H

INT21H

DISPHPROCNEAR

PUSHBX

PUSHCX

MOVCX,4

MOVCH,4

DISPH1:

ROLAX,CL

PUSHAX

ANDAL,0FH

ANDAL,30H

CMPAL,'9'

JBEDISPH2

ADDAL,7

DISPH2:

MOVAH,2

MOVDL,AL

INT21H

POPAX

DECCH

JNZDISPH1

POPCX

POPBX

RET

DISPHENDP

DISPLAY1PROCNEAR

CMPAL,10H

JLDSPLY1

RET

DSPLY1:

ADDAL,30H

CMPAL,'9'

JBEDISP_H

ADDAL,7

DISP_H:

MOVAH,2

MOVDL,AL

INT21H

RET

DISPLAY1ENDP

KEYSCANPROCNEAR

MOVKEY_HV,0

MOVSCAN_V,80H

SCAN_LP:

MOVAL,SCAN_V

MOVDX,I8255ADDC

OUTDX,AL

INAL,DX

MOVBL,AL

ANDBL,0FH

MOVAL,BL;;得c口0-3位数据

CMPAL,2

JZCCP1

CMPAL,8

JZCCP41

MOVBX,OFFSETKEY_SV

MOVAH,0

MOVSI,AX

MOVAL,[BX+SI]

ADDAL,KEY_HV

RET

CCP1:

;CALLDISPLAY1

MOVDX,I8255ADDA

MOVAL,0F7H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,10H;显示个位

ROLAL,CL

OUTDX,AL

CALLTIME1

MOVDX,I8255ADDA

MOVAL,0E3H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,08H;显示个位

ROLAL,CL

OUTDX,AL

CALLTIME1

MOVDX,I8255ADDA

MOVAL,0D5H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,04H;显示个位

ROLAL,CL

OUTDX,AL

CALLTIME1

MOVDX,I8255ADDA

MOVAL,0F7H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,02H;显示个位

ROLAL,CL

OUTDX,AL

CALLTIME1

INCCL

CALLPCKEY

DECAL

MOVDX,I8255ADDC

OUTDX,AL

INAL,DX

MOVBL,AL

ANDBL,0FH

MOVAL,BL;;得c口0-3位数据

CMPAL,0

JZCCP1

JMPKEYSCAN

CCP41:

JMPCCP42

CCP42:

JMPCCP4

 

CCP4:

;CALLDISPLAY1

MOVDX,I8255ADDA

MOVAL,0F7H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,08H;显示个位

RORAL,CL

OUTDX,AL

CALLTIME3

MOVDX,I8255ADDA

MOVAL,0E3H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,10H;显示个位

RORAL,CL

OUTDX,AL

CALLTIME3

MOVDX,I8255ADDA

MOVAL,0D5H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,20H;显示个位

RORAL,CL

OUTDX,AL

CALLTIME3

MOVDX,I8255ADDA

MOVAL,0F7H

OUTDX,AL

MOVDX,I8255ADDB

MOVAL,40H;显示个位

RORAL,CL

OUTDX,AL

CALLTIME3

INCCL

CALLPCKEY

DECAL

MOVDX,I8255ADDC

OUTDX,AL

INAL,DX

MOVBL,AL

ANDBL,0FH

MOVAL,BL;;得c口0-3位数据

CMPAL,0

JZCCP4

JMPKEYSCAN

TIME1PROCNEAR

MOVAX,0EFH

T4:

DECAX

MOVBX,0FFFFH

T3:

DECBX

JNZT3

CMPAX,0

JNZT4

RET

TIME1ENDP

TIME2PROCNEAR

MOVAX,0FFFFH

T6:

DECAX

MOVBX,01EFH

T5:

DECBX

JNZT5

CMPAX,0

JNZT6

RET

TIME2ENDP

TIME3PROCNEAR

MOVAX,01EFH

T8:

DECAX

MOVBX,0FFFFH

T7:

DECBX

JNZT7

CMPAX,0

JNZT8

RET

TIME3ENDP

TIME4PROCNEAR

MOVAX,0FFFFH

T10:

DECAX

MOVBX,01EFH

T9:

DECBX

JNZT9

CMPAX,0

JNZT10

RET

TIME4ENDP

KYSC1:

ADDKEY_HV,4

ROLSCAN_V,1

CMPSCAN_V,1

JNZKYSC2

MOVAL,0FFH

RET

KYSC2:

JMPSCAN_LP

KEYSCANENDP

PCKEYPROCNEAR

MOVAH,6

MOVDL,0FFH

INT21H

JEP1

MOVAX,4C00H

INT21H

P1:

RET

PCKEYENDP

TIMEPROCNEAR

MOVAX,0FFH

T2:

DECAX

MOVBX,0FFFH

T1:

DECBX

JNZT1

CMPAL,0

JZT2

RET

TIMEENDP

CODEENDS

ENDSTART

 

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

当前位置:首页 > 解决方案 > 学习计划

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

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