实验十 7279阵列式键盘实验
实验目的
1、掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法。
2、熟悉键盘的工作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法。
实验内容
HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A 内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279A还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。
HD7279A的指令结构有三种类型:
1)不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲;
2)带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲;
3)读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279的指令,后8个BIT为HD7279A返回的键盘代码。
本实验采用8位共阴极数码管,用查询方式判断。
引脚说明:
引脚 | 名称 | 说明 |
---|---|---|
1,2 | VDD | 正电源 |
3,5 | NC | 无连接,必须悬空 |
4 | VSS | 接地 |
6 | CS | 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据 |
7 | CLK | 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效 |
8 | DATA | 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端:当读取键盘数据时,此引脚在‘读’指令最后一个时钟的下降沿变为输出端 |
9 | KEY | 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平 |
10-16 | SG-SA | 段g——段a驱动输出 |
17 | DP | 小数点驱动输出 |
18-25 | DIG0-DIG7 | 数字0——数字7驱动输出 |
26 | CLKO | 振荡输出端 |
27 | RS | RC振荡器连接端 |
28 | RESET | 复位端 |
控制指令:
HD7279A的控制指令分为二大类——纯指令和带有数据的指令。
纯指令
1.复位(清除)指令A4H
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。
2.测试指令BFH
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试。
3.左移指令A1H
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
使所有的显示自右向左(从第1位向第8位)移动一位(包括处于消隐状态的显示位),但对各位所设置的消隐及闪烁属性不变。移位后,最右边一位为空(无显示)。例如,原显示为
4 | 2 | 5 | 2 | L | P | 3 | 9 |
---|
其中第2位‘3’和第4位‘L’为闪烁显示,执行了左移指令后,显示变为
2 5 2 L P 3 9
第二位‘9’和第四位‘P’为闪烁显示。
4.右移指令A0H
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。
5.循环左移指令A3H
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
与左移指令类似,不同之处在于移动后原最左边一位(第8位)的内容显示于最右位(第1位)。在上例中,执行完循环左移指令后的显示为
2 | 5 | 2 | L | P | 3 | 9 | 4 |
---|
第二位‘9’和第四位‘P’为闪烁显示。
6.循环右移指令A2H
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
在循环左移指令类似,但移动方向相反。
实验步骤
1、把7279阵列式键盘的J9四只短路帽打在上方,J10打在VCC处,用8P排线将JD7和八位动态数码显示的JD11相连,JD8和JD12相连。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“7279 KEY.asm”源程序,进行编译,直到编译无误。
4、全速运行程序,然后等待按键输入,并在有按键按下后显示相应的键号,前一个键号左移。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)