0

我编写了一个程序,通过端口 0 在 7seg 显示器上显示一些数字。我有一个问题,如果我想使用 exmaple 2 的端口来做,我工作得很好。当我使用端口 0 时,它不起作用。我做错了什么。这是我的代码:

#include <REGX52.H>

char wyswietlacz[2]={0x06, 0x06};
void wyswietlanie(){

P0=0x30 ;
P2_0=0x01;
P2_1=0x00;
P2_0=0;
P2_1=0;
P0=0x30 ;
P2_0=0;
P2_1=1;
P2_0=0;
P2_1=0;
}
void main(void){
  while(1){
    wyswietlanie();
 }
}

以及它是如何工作的: 在此处输入图像描述

4

1 回答 1

0

端口 0 具有开漏输出,请参见其数据表。这意味着每个引脚只能吸收电流,但不能提供电流。你是怎么做到的,只能输出“低”,不能输出“高”。

您可以尝试使用上拉电阻,如果您将端口用作通用 I/O,则需要使用上拉电阻。但是,我不建议这样做,因为从低到高变化的上升沿可能太慢了。并且增加了功耗。

于 2020-07-04T17:20:00.057 回答