8279键盘显示共15页word资料.docx

上传人:b****5 文档编号:7962962 上传时间:2023-01-27 格式:DOCX 页数:12 大小:22.97KB
下载 相关 举报
8279键盘显示共15页word资料.docx_第1页
第1页 / 共12页
8279键盘显示共15页word资料.docx_第2页
第2页 / 共12页
8279键盘显示共15页word资料.docx_第3页
第3页 / 共12页
8279键盘显示共15页word资料.docx_第4页
第4页 / 共12页
8279键盘显示共15页word资料.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

8279键盘显示共15页word资料.docx

《8279键盘显示共15页word资料.docx》由会员分享,可在线阅读,更多相关《8279键盘显示共15页word资料.docx(12页珍藏版)》请在冰豆网上搜索。

8279键盘显示共15页word资料.docx

8279键盘显示共15页word资料

攀枝花学院电信学院专业基础综合实验

[设计实验室单片机计数器实验]

学生姓名:

学生学号:

院(系):

电信学院

年级专业:

指导教师:

二〇一二年六月

设计准备

1、课程设计的目的

(1)检查学生对本门课程所学知识的掌握程度及对知识的灵活的运用情况。

(2)检查学生对具体问题的分析能力和解决问题的能力。

(3)锻炼学生的实际设计能力。

(4)加强学生对单片机在应用设计中的感性认识,为日后的单片机应用打基础。

2、课程设计的内容和要求

(1)实验要求:

编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。

(2)实验目的:

1)掌握在MSC-51系统中扩展8279键盘显示接口的方法。

2)掌握8279工作原理和编程方法。

(3)设计要求:

1)实验电路及连线。

2)给出实验程序设计框图及程序清单。

3)验证实验的可靠性。

一、8279芯片

8279是一种可编程的键盘/显示器接口芯片。

(1)8279的内部结构图

(2)8279的内部结构及功能

按其功能分为:

键盘功能块;显示功能块;控制功能块;与CPU接口功能块

控制功能块:

控制和定时寄存器,定时和控制,扫描计数器三部分,它主要是用来控制键盘和

显示功能块工作的.

控制和定时寄存器:

用于存贮来自CPU的编程命令,CPU对8279编程以确定键

盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然

后使A0=1,WR=0CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,并经译

码,建立适当的功能.

定时和控制:

它含基本的定时计数器,第一个计数器是一个分频系数为2-31的

前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms

键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的

按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.

扫描计数器:

扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二

进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描

作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1

的译码信号,作为显示器和键盘的译码扫描.

键盘功能块:

返回缓冲器,键盘反跳及控制,8x8FIFO传感器RAM,FIFO/传感器RAM状态.

返回缓冲器与键盘反跳及控制:

8条返回线被返回缓冲器缓冲,在键盘工作方式

中,这几条线被逐个检测,以找出该行键中闭合的键,如果反跳电路测知某键闭合,

则它等待10.3ms,然后重核此键是否仍然闭合,如果仍闭合,那么该键在矩阵中

的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFORAM中

的数据格式如下:

D7D6D5D4D3D2D1D0

CNTLSHIFTSCANRETURN

数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0

来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行.

列的值,如果在传感器阵列中,返回线上的数据直接进入传感器RAM中相应于阵

列中正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置

FIFO/传感器RAM:

一个8x8RAM,在键盘方式和选通方式中它是一个先入先出

(FIFO)存贮器,每一条新的信息顺次写入,然后又按写入的顺序读出,在传感器阵

列扫描方式时,存贮器作为传感器RAM,这时RAM中的各行存着传感器阵列中相

应行的状态.

FIF0/传感器RAM状态:

在键盘或选通方式中,FIFO状态跟踪FIFO中的字符数量

注意它是"满"还是"空",写入或读出过多均被认作出错,当FIFO非空时,状态逻

辑提供一个中断申请IRQ信号,在传感器阵列扫描方式中,若测知某一传感器变

化时,IRQ则为有效高电平.FIFO状态字的低3位表示FIFO中的字符数,F表示

FIFORAM已满;O(overmn)表示越限错误,即试图向已满的FIFO送另一字

符;U(Underdone)表示取空错误,即试图读取已空的FIFO.S/F有两种含义:

在传

感器扫描方式时,S/F表示在传感器RAM中至少包含了一个传感器闭合指示,在

特殊错误方式时S/F位是出错标志,用来指示是否发生了多路同时闭合错误,Du

位表示由于CLEARDISPLAY或CLEARALL命令尚末完成其消除操作而使显示

RAM尚不可用.

显示功能块:

显示功能块包括:

显示寄存器,16X8显示RAM,显示地址寄存器.

显示RAM和显示寄存器:

8279内部有16X8的显示RAM,通过显示寄存器和两个四

位端口0UTA0-3,0UTBO-3来刷新显示,显示器可以是白炽灯,也可以是8段数

码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式,显示RAM

可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示.

显示地址寄存器:

显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正

显示着的那两个4位半字节的地址,读写地址由CPU命令编程,也可置为每次读

写后地址自动加1的工作方式,在设置了正确的工作方式后,显示RAM可直接由

CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数

据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而

I/O接口功能块:

8279通过数据缓冲器与I/O控制,使8279与CPU系统总线接口,I/O控制部分用

CS.A0.RD和WR四条线控制CPU与8279之间的数据交换,数据缓冲器是数据交

换的双向通道,控制信号与数据交换间的逻辑关系见下表:

CSA0WRRD

10CPU从8279读状态

0101CPU向8279写状态

10CPU从8279读数据

001CPU向8279写数据

1XXX数据缓冲器输出呈三态

x为任意数(0或1)

(3)8279的引脚及其功能

引脚图

8279:

采用单一+5V电源供电,40脚封装。

DB0~DB7:

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

CLK:

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

RESET:

复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。

CS:

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

A0:

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

RD:

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

WR:

写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。

RL2—140--VCC

RL3—239--RL1

CLK--338--RL0

IRQ—437--CNTL/STB

RL4--536--SHIFT

RL5--635--SL3

RL6--734--SL2

RL7--833--SL1

RESRT—932--SL0

RD—1031--OUTB0

WR—1130--OUTB1

DB0—1229--OUTB2

DB1—1328--OUTB3

DB2--1427--OUTA0

DB3—1526--OUTA1

DB4--1625--OUTA2

DB5--1724--OUTA3

DB6—1823--BD

DB7--1922--CS

VSS—2021--A0

IRQ:

中断请求输出线,高电平有效,在键盘工作方式下,当FIFO

传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读

时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平

在传感器工作方式中,每当探测到传感器信号变化时,中断线就变为高电平。

SL0~SL3:

扫描线,用来扫描按键开关,传感器阵列和显示数字,这些可

被编程或被译码。

RL0~RL7:

回送线,经过按键或传感器开关与扫描线联接,这些回送线内

部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线

变为低电平;无按键闭合时,均保持高电平。

SHIFT:

换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关

时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。

CNTL/STB:

当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,

对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制

输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO

RAM中。

OUTA3~OUTA0及OUTB3~OUTB0:

显示输出A口及B口,这两个口是16×4切换

的数字显示。

这两个端口可被独立控制,也可看成一个8位端口。

BD:

空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。

VCC:

+5V电源输入线。

VSS:

地线输入线。

(4)8279的编程命令

a.键盘/显示器方式设置

最高位最低位

命令代码000DDKKK

其中DD为显示方式,KKK为键盘方式

DD

008个8位字符显示--左端传入

0116个8位字符显示--左端送入

108个8位字符显示--右端送入

1116个8位字符显示--右端送入

所谓左端送入是显示器根据用户送的先后,从左端一位开始,向右逐位排列,到最右端一位

后,下一位再从最左端显示,在这种显示方式中,显示器的每个显示管和8279中的显示RAM

单元一一对应,RAM中的O地址对应最左面的显示字符,而15号单元对应最右端的显示字符

而右端送入方式是电子计算器中常用的显示方式,第一个送入的数在最右端的显示字符上

而以后每送入一个新数,显示先左移一位然后把送入的数仍放在最右端显示字符上.

KKK

000编码扫描键盘--2键连锁

001译码扫描键盘--2键连锁

010编码扫描键盘--N键巡回

011译码扫描键盘--N键巡回

100编码扫描传感器阵列

101译码扫描传感器阵列

110选通输入,编码显示扫描

111选通输入,译码显示扫描

其中2键连锁和N键巡回是8279对键盘中被按下键的两种处理方式,编码扫描和译码扫描

是SL0-SL3对链盘和显示器的两种扫描形式.

b.程序时钟

命令代码001PPPPP

此命令确定定时和控制中的前置定标器的分频系数,代码PPPPP可形成2-31的数,前置定标

器可对外部时钟分频,以得到内部基频,选基频为100KHZ,可得到前面规定的扫描和反跳时

间,则分频系数为;外部时钟100KHZ复位脉冲过后若无代码送入则自动为31.

c.读FIF0/传感器RAM

命令代码:

010AIXAAAX=任意

此命令用于确定CPU读操作的对象是8279中的FIF0/传感器RAM,并确定8个RAM字节中

哪一个被读,其中AAA表示CPU要读的行,AI为自动加1特征位,在键盘扫描方式中这两者

互不相干,对随后的每次读取8279都按照数据第一次进入的FIF0的同一顺序自动送出数据,

所有随后发生的读,都是读自FIFO,直到写入新命令为止.

在传感器阵列方式中,AAA选择传感器RAM8行中的一行若AI=1,则下一次读取便读自传感

器RAM中的下一行.

d.读显示器RAM

命令代码:

011AIAAAA

CPU对8279写此命令,则确定了CPU以显示器RAM为数据源进行读操作,其中AAAA为显示

器RAM的地址,AI为自动加1特征位,若AI=1,则每读一行RAM之后,行地址自动加1

e.写显示器RAM

命令代码:

100AIAAAA

CPU向8279写此命令,规定了下一步要对8279的显示RAM进行写,寻址方式和自动加1功能均与读显示器RAM相同

f.显示器写入禁止/空格

命令代码:

101XIWIWBLBLX=任意

ABAB

此命令用于屏蔽A或B端口输出及使显示器显示空格,如果显示器用作双排4位显示,则必

须把其中一个4位屏蔽掉这样CPU送入显示器的信息就不会影响另一半,IW为屏蔽特征位,

若对某一端口设置IW=1,则该端口就被屏蔽,有必要注意的是:

B0与D0对应,BL为显示空格

标志位,若某一端口的BL置1,则此端口显示空格.当要使一个单8位输出格式的显示器空

格时,则必须使两个BL标志全都置位,以使显示完全空格.

g.消除

命令代码:

110CDCDCDCFCA

此命令用于按一定格式清显示器RAM的FIF0状态,其中CD规定清除格式:

CDCDCD

0X全"0"(x为任意)

10AB=16进制

1020(0O100000)

11全册"1"

当为"1"时允许清除显示器(或用CA=1)

CF清除FIFO状态(包括中断),若CF=1,则清除FIF0

状态,并对中断线复位自传感器RAM的指示器亦被置于0行CA为总清,其效果相当于CD和

CF的合成,当CA=1时,利用CD指示的清除格式清除显示器RAM,并清除FIF0状态,C孔也使

内部定时重新同步.在显示器RAM被清除期间(约16us)不能写入,同时在此期间FIFO的最

高有效位被置"1"当显示RAM再度变为可用时即自动复位.

h.中断结束/出错方式设置

命令代码:

111EXXXXX=任意

在传感器阵列方式时,此命令使IRQ线变低,并允许对RAM再写(检测到一个传感器位变化

时,IRQ线可能已升高了,因此这样做可阻止在其复位以前把信息再度写入RAM).在N键巡回

工作方式,若E位被编程为"1",则芯片电路将在特殊出错方式下运行.

在N键巡回方式的特殊出错方式下主要用于检查键的多重按下,若在一个回弹周期中发现两

个键被按下,即可看成同时多重按下,并建立出错标志,阻止任何对FIF0的进一步写入,同时

设置中断(如中断尚末设置的话),在此方式中,可用读FIFO状态字命令读出错误标志,而发

CF=1的清除命令,可使出错标志复位.

(5)8279芯片的工作特点

(1)可同时进行键盘扫描及文字显示

(2)键盘扫描模式(ScannedKeyboardMode);

(3)传感器扫描模式(ScannedSensorMode);

(4)激发输入模式(StrobeInputEntryMode);

(5)8乘8键盘FIFO(先进先出);

(6)具有接点消除抖动,2键锁定及N键依此读出模式;

(7)双排8位数或双排16位数的显示器;

(8)右边进入或左边进入。

16位字节显示存储器。

二.实验过程

(1)实验线路图

8*8键盘,16位led显示

(2)实验程序框图

(3)程序清单

1)汇编程序

ORG0000H

SJMPMAIN

ORG0003H

AJMPINT_0

MAIN:

MOVSP,#60H

CLREA

MOVDPTR,#2FFFH

MOVA,#00H

MOVX@DPTR,A

MOVA,#2AH

MOVX@DPTR,A

MOVA,#40H

MOVX@DPTR,A

MOVA,#0DFH

MOVX@DPTR,A

WAIT:

MOVXA,@DPTR

JBACC.7,WAIT

CLRF0

CLR76H

SETBIT0

SETBEA

SETBEX0

MOVR0,#30H

MOVR7,#14H

ATT:

LCALLRDKEY

JB76H,KEYOUT

MOV@R0,A

INCR0

DJNZR7,ATT

SETB76H

KEYOUT:

MOV44H,A

SJMPATT

INT_0:

MOVDPTR,#2FFEH

MOVXA,@DPTR

ANLA,#3FH

SETBF0

RETI

RDKEY:

JBF0,K1

SETBEX0

SJMPRDKEY

K1:

CLRF0

CLREX0

RET

3)C语言程序

#include

#include

/*-------------8279中断处理程序--------------*/

voidint1(void)interrupt2using0

COM8279=0x40;_nop_();_nop_();_nop_();_nop_();_nop_();

keyval=DATA8279;keyflag=1;

/*-------------------主程序-----------------*/

voidmain()

{uchari=0,m;

CPU_init();

show();

while

(1)

if(keyflag)

P1=keyval;

m=matchkey(keyval);

keyval=0;

showkey[6]=duanma[m/10];

showkey[7]=duanma[m%10];

m=0;keyflag=0;

for(i=0;i<16;i++)

{DATA8279=showkey[i];}

delay(10);

(4)仿真结果

(5)实验结论

可靠

希望以上资料对你有所帮助,附励志名言3条:

1、生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗。

2、推销产品要针对顾客的心,不要针对顾客的头。

3、不同的信念,决定不同的命运。

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

当前位置:首页 > 农林牧渔 > 林学

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

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