8x8点阵LED显示键盘输入字母AF.docx

上传人:b****8 文档编号:8956671 上传时间:2023-02-02 格式:DOCX 页数:21 大小:453.12KB
下载 相关 举报
8x8点阵LED显示键盘输入字母AF.docx_第1页
第1页 / 共21页
8x8点阵LED显示键盘输入字母AF.docx_第2页
第2页 / 共21页
8x8点阵LED显示键盘输入字母AF.docx_第3页
第3页 / 共21页
8x8点阵LED显示键盘输入字母AF.docx_第4页
第4页 / 共21页
8x8点阵LED显示键盘输入字母AF.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

8x8点阵LED显示键盘输入字母AF.docx

《8x8点阵LED显示键盘输入字母AF.docx》由会员分享,可在线阅读,更多相关《8x8点阵LED显示键盘输入字母AF.docx(21页珍藏版)》请在冰豆网上搜索。

8x8点阵LED显示键盘输入字母AF.docx

8x8点阵LED显示键盘输入字母AF

课程设计报告

 

课程设计名称:

微机原理与接口技术

系别:

三系

学生姓名:

缪广东

班级:

10计本

(1)

学号:

20100303130

成绩:

指导教师:

巫宗宾

开课时间:

2012—2013学年1学期

1.设计题目

LED显示系统设计

2.主要内容

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。

它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。

通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。

让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。

通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。

通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。

在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。

教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。

学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。

学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。

学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。

学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。

设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

3.具体要求

从键盘输入数字A~F,通过8279芯片读取数据并由8255A芯片的A口与C口分别控制8*8点阵LED的行与列从而显示数字A~F。

四.进度安排

周四

周五

周一

周二

周三

讲课设内容,安排任务

查资料,确定硬件电路方案

画出程序流程图,写出程序清单

画出程序流程图,写出程序清单

写总结报告

五.成绩评定

考核方法:

现场验收(占50%),课程设计报告(占50%)。

考核内容:

学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。

成绩评定:

优,良,中,及格,不及格。

特别说明:

如发现抄袭,按照不及格处理。

正文

1.实验原理

1.8279芯片

8279是可编程的键盘、显示接口芯片。

它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。

8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。

该芯片能自动消抖并具有双键锁定保护功能。

显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。

8279采用单±5V电源供电,40脚封装。

  DB0~DB7:

双向数据总线,用来传送8279与CPU之间的数据和命令。

  CLK:

时钟输入线,用以产生内部定时的时钟脉冲。

  RESET:

复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序

  时钟前置分频器被置为31,RESET信号为高电平有效。

  CS:

片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。

  A0:

缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。

  RD:

读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。

图1.18279引脚图

 

2.4*4键盘显示控制器

编程使得8位数码管初始显示-ABCDEF-,然后在小键盘上每按一个键,8位数码管上显示出相应字符,按9键返回。

下图为键盘显示控制器电路图:

图1.24*4键盘电路图

3.8255A芯片

8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。

8255A的内部结构

8255A内部由PA、PB、PC三个8位可编程双向I/O口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑四部分电路组成。

图1.38255A结构框图和引脚图

8255A的引脚功能

数据总线(8条):

D0~D7,用于传送CPU和8255A间的数据、命令和状态字。

控制总线(6条):

RESET:

复位线,高电平有效。

/CS:

片选线,低电平有效。

/RD、/WR:

读命令线,写命令线,皆为低电平有效。

A0、A1:

地址输入线:

用于选中PA、PB、PC口和控制寄存器中哪一个工作。

并行I/O总线(24条):

用于和外设相连,共分三组

8255A控制字

方式控制字用于设定8255A三个端口工作于什么方式,是输入还是输出方式。

本实验中,A口,B口,C口都是方式0输出,故方式控制字为10000000B=80H

图1.48255A的方式控制字

 

4.8*8点阵LED双色显示器

LED点阵显示系统中各模块的显示方式

有静态和动态显示两种。

静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。

LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5x7点阵显示器用于显示西文字母.5×8点阵显示器用于显示中西文,8x8点阵用于显示中文文字,也可用于图形显示。

用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。

8X8 点阵LED工作原理

从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:

对应的列置1,而行则采用扫描的方法来实现。

一根横柱:

对应的行置0,而列则采用扫描的方法来实现。

图1.58*8点阵LED结构图

 

 二、流程图

图2.1主程序流程图

图2.3显示子程序流程图

盘图2.2键显示子程序流程图

三、实验连线图

图3.1实验连线图

四、源程序

DATASEGMENT

PORTEQU0C400H-0280H

IO8255AEQUPORT+288H;8255端口A地址

IO8255BEQUPORT+289H;8255端口B地址

IO8255CEQUPORT+28AH;8255端口C地址

IO8255CTREQUPORT+28BH;8255控制端口地址

PORT0EQUPORT+2B0H;8279数据口

PORT1EQUPORT+2B1H;8279控制口

TABDB18H,24H,24H,24H,3CH,24H,24H,24H;字母A~F的编码

DB1CH,24H,24H,1CH,3CH,24H,24H,1CH

DB38H,7CH,06H,02H,02H,06H,7CH,38H

DB1EH,22H,42H,42H,42H,42H,22H,1EH

DB3CH,04H,04H,3CH,3CH,04H,04H,3CH

DB3CH,3CH,04H,3CH,3CH,04H,04H,04H

BUFFERDB0H

SEC1DB12H

SEC2DB0AH

SEC3DB0BH

SEC4DB0CH

SEC5DB0DH

SEC6DB0EH

SEC7DB0FH

SEC8DB12H

LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;LED显示0~7编码

DB7FH,6FH,77H,7CH,39h,5EH,79h,71H;LED显示8~F编码

DB73H,3EH,40H

KEYDATADB23H,2BH,33H,3BH,22H,2AH,32H,3AH

DB21H,29H,31H,39H,20H,28H,30H,38H

DATAENDS

STACKSSEGMENT

DB100DUP(?

STACKSENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKS,ES:

DATA

START:

MOVDX,IO8255CTR;写8255控制字,定义A,B,C口都为输出

MOVAL,80H

OUTDX,AL

CLI

MOVAX,DATA

MOVDS,AX

MOVDX,PORT1

MOVAL,00H

OUTDX,AL;设置8279方式字

MOVAL,2AH

OUTDX,AL;设置分频系数

MOVAL,0D0H

OUTDX,AL;清显示

MOVAL,90h

OUTDX,AL;设置从左边开始写入数据

TEST1:

INAL,DX;判断8279工作是否正常

ANDAL,80H

JNZTEST1

KEY1:

CALLKEY;调用键盘显示子程序

LP0:

MOVCX,08H

MOVSI,OFFSETSEC1

LP2:

MOV[SI],BH;键号存入显示缓冲单元

INCSI

LOOPLP2

CMPBH,09H;判断是9键吗?

JALP1

MOVAX,4C00H;是9键返回

  INT21H

LP1:

CALLOFFLED;调用关8*8点阵LED显示子程序

MOVSI,0H;设置字库首地址

STR1:

MOVAL,08H;根据键号找到对应的字库编码地址

SUBBH,0AH

MULBH

ADDSI,AX

CALLDEL1;调用8*8点阵LED显示子程序

JMPKEY1

;--------------键盘扫描子程序-------------------------------

KEYPROCNEAR

MOVDX,PORT1;清显示

MOVAL,0D0H

OUTDX,AL

WREP:

CALLDISP;调用显示子程序

MOVDX,PORT1;判断是否有键输入

INAL,DX

ANDAL,07H

JZWREP;无键则返回WREP

MOVDX,PORT0;有键则读取键值

INAL,DX

MOVBL,AL;键值存入BL

MOVBH,0H;确定键号

MOVSI,OFFSETKEYDATA;取键值表首地址

KEY0:

MOVAL,[SI]

CMPAL,BL;比较是否相等

JNEKEY5;不相等则跳到KEY5

JMPKEY4;相等则跳到KEY4

KEY5:

ADDSI,01H;地址加一

ADDBH,01H;键号加一

CMPBH,10H;键号是否等于16

JNEKEY0;不等则返回KEY0

JMPKEY4;相等则跳KEY4

KEY4:

MOVBUFFER,0H;BUFFER置0

RET

KEYENDP

;---------LED显示子程序--------------------------------------------

DISPPROCNEAR

DISP0:

MOVDX,PORT1;判断8279工作是否正常

INAL,DX

ANDAL,80H

JNZDISP0

MOVSI,OFFSETSEC1;从显示缓冲区取数

MOVCX,8H

DISP1:

MOVBX,OFFSETLED;查字型代码

CLD;方向标志位清0

LODSB;把SI指向的内容送到AL,SI加一

XLAT;将BX为首地址的,偏移地址为AL的内容送给AL

MOVDX,PORT0;送8279显示

  OUTDX,AL

  LOOPDISP1;循环显示8个LED

  RET

DISPENDP

;----------8*8点阵LED持续显示子程序------------------------------------

DEL1PROCNEAR

MOVCX,20H;设置每个数字显示时间间隔参数

DEL2:

PUSHCX

DEL3:

PUSHCX

DEL4:

PUSHSI

CALLDISPW0;调用显示第一个数字子程序

POPSI

LOOPDEL4;继续显示

POPCX

LOOPDEL3

POPCX

LOOPDEL2

RET

DEL1ENDP

;---------8*8点阵LED显示数字子程序---------------------------------

DISPW0PROCNEAR

PUSHCX;保存CX

MOVAH,0FEH

MOVCX,08H;设置循环次数

CLC

DAT1:

MOVDX,IO8255A

MOVAL,AH;开第一行

OUTDX,AL

MOVAL,TAB[SI];读字库,写入列

MOVDX,IO8255C

OUTDX,AL

CALLDELAY0;调用延时子程序

CALLOFFLED;调用重置子程序

INCSI;SI自增

  ROLAH,01H;循环开下一行

  LOOPDAT1;转DAT1

POPCX

RET

DISPW0ENDP

;---------软件延时子程序-------------------------------------

DELAY0PROCNEAR

PUSHCX

MOVCX,20H

DELAY:

PUSHCX

DELA2:

PUSHCX

DELA3:

LOOPDELA3

POPCX

LOOPDELA2

 POPCX

 LOOPDELAY

 POPCX

 RET

DELAY0ENDP

;-----重置所有列子程序--------------------------------------------

OFFLEDPROCNEAR

MOVDX,IO8255C

  MOVAL,0H

 OUTDX,AL

 RET

OFFLEDENDP

;----------------------------------------------------------------

CODEENDS

ENDSTART

 

5、实验结果

图4.1初始化图4.2显示字母A

图4.3显示字母B图4.4显示字母C

图4.5显示字母D图4.6显示字母E

图4.7显示字母F

6、总结

本次课程设计中我主要结合了键盘显示和8*8点阵LED显示两次实验的思想,加以结合及修改,最终完成了字母A~F的显示。

设计步骤:

1.编程使得8位数码管初始显示-ABCDEF-,然后在小键盘上每按一个健,6位数码管上显示出相应字符,按9键返回。

2.读取键盘按下的键号,使用I/O接口芯片8255的A口[0:

7]和C口[0:

7]分别控制LED点阵的行H[0:

7]和列L[0:

7]。

编制程序,使点阵LED显示对应的字母。

3.通过本次课程设计,我学会了8279芯片以及8255A芯片的功能,学会了点阵LED的显示编码设计。

为以后的硬件学习打下了基础。

七、参考资料

1.周明德.微型计算机系统原理及应用.北京:

清华大学出版社

2.张弥左,王兆月,邢立军等.微型计算机接口技术.北京:

机械工业出版社

3.戴梅萼,史嘉权.微型计算机技术及应用.北京:

清华大学出版社

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

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

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

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