微控制器 89c52 - 7 段复用显示

Microcontroller 89c52 - 7 segment multiplexing display

我有一个用 C 语言编写的 uController 示例程序,用于处理 7 段多路复用显示。

我可以按如下方式访问显示的左侧或右侧部分:

//declarations   
unsigned char xdata left    _at_ 0xFE00;
unsigned char xdata right   _at_ 0xFD00;

//use
left  = 0x06;
right = 0x5B;

它会在左屏幕上打印“1”,在右屏幕上打印“2”。

现在我想知道,它是如何工作的? 0xFE00 地址是从哪里来的以及它是如何恰好将它显示到左屏幕的(我知道这是因为 P2_0 上有 '0' 但我不知道它是如何连接到 'left' 变量的) .

我从来没有给这个野兽编程过,但是看看你的代码、电路图和数据 sheet 表明 LED 对被寻址为外部存储器:8 个数据位(否则端口 0)被连接到段数据引脚和 2 个地址线(否则端口 2)连接到数字 select 引脚。

FE00 的第 8 位为低位,第 9 位为高位。因此,写入地址 FE00 会导致 0 从 P2.0(又名 A8)输出,1 从 P2.1(又名 A9)输出,selecting左侧 LED,数据显示在 P0 上。

FD00的第8位为高位,第9位为低位。因此,写入地址 FD00 会导致 1 从 P2.0(又名 A8)输出,0 从 P2.1(又名 A9)输出,selecting正确的 LED,段数据再次出现在 P0 上。

特殊功能寄存器将设置所需的端口模式。