8279显示器与8085微处理器接口
Intel 8279用于键盘接口,但也可用于多路复用7段LED显示器接口。要将字符显示到7段显示器上,必须将7段代码存储在显示RAM位置。该芯片的显示RAM可以存储16字节的数据。
写入显示RAM
要写入显示RAM,需要对8279控制端口应用一个特殊命令。以下模式显示写入8279控制端口的RAM命令。
1 | 0 | 0 | Ai | A | A | A | A |
前三位是100。它表示“写入显示RAM”命令。最后四位是AAAA。这些用于选择RAM位置。Ai位是自动递增位。
例如,如果我们想在自动递增模式下写入RAM位置4,则RAM指针将加载地址4。当处理器第一次写入显示RAM时,它将是RAM位置4。然后地址递增到5,依此类推。
以下代码实现了在地址字段中显示ABCD的目标。
MVI A, 10010100 OUT D1H //Write display location 4 in auto increment mode. MVI A, A1H OUT D0H //send A1H at RAM location 4 MVI A, C6H OUT D0H //send C6H at RAM location 5 MVI A, 83H OUT D0H //send 83H at RAM location 6 MVI A, 88H OUT D0H //send 88H at RAM location 7
从显示RAM读取
要从8279的任何RAM位置读取,需要对8279控制端口应用一个特殊命令。以下模式显示从8279控制端口读取的RAM命令。
0 | 1 | 1 | Ai | A | A | A | A |
前三位是011。它表示“从显示RAM读取”命令。最后四位是AAAA。这些用于选择RAM位置。Ai位是自动递增位。显示RAM对于读写操作是相同的。
例如,如果我们想从自动递增模式下的RAM位置4读取,则RAM指针将加载地址4。
如果RAM位置4和5分别存储了A1和C6,则以下代码实现了从RAM读取AB的目标。
MVI A, 01110100 OUT D1H //Read from display location 4 in auto increment mode. IN D0H //Load A with A1, the address value is now pointing to 5 IN D0H //Load A with C6
7段显示器操作有两种模式。这些模式是
译码模式操作
编码模式操作
译码模式操作
在这种模式下,不需要外部译码器,一次使一条扫描线为逻辑0,这将选择特定LED位置以进行显示。在这种模式下,可以连接四个显示器。下表显示8279的SL3-0为显示器显示的模式。
SL3-0 | 所选LED |
---|---|
1110 | LED 0 |
1101 | LED 1 |
1011 | LED 2 |
0111 | LED 3 |
下图说明了如何在译码模式下接口共阳极7段LED显示器。首先,8279芯片在SL3-0上输出1110。这导致显示器0接收其阳极的5V电源,而所有其他LED的阳极都接收0V。
显示RAM位置0的内容由8279在A3-0和B3-0上输出。所有显示器都获得此信息,但字符仅显示在接收5V电源的显示器0上。
接下来,选择线SL3-0加载为1101,因此将选择第二个显示器,并且显示RAM的内容已反映在显示器上。因此,显示器通过刷新内容显示不同的字符。
编码模式操作
这种模式使用广泛,因为在这种模式下,最多可以连接16个显示器。这里需要外部译码器。此模式可用于8字符或16字符显示。对于8字符显示,仅使用SL2-0引脚。SL3未使用。对于16字符显示,所有选择线都使用。
下图说明了如何在编码模式下接口共阳极7段LED显示器。在这个图中,我们假设连接了16个显示器。在这种情况下,SL3-0的值从0000更改为1111,因此只有所选显示器的阳极获得5V电源,而其他显示器的阳极获得0V。
接下来,选择线SL3-0加载为1101,因此将选择第二个显示器,并且显示RAM的内容已反映在显示器上。因此,显示器通过刷新内容显示不同的字符。