PIC18F452 的 PORTB 不工作
PORTB of PIC18F452 not working
我正在尝试 MikroC pro for PIC 编译器中可用的示例,该示例从 EEPROM 写入和读取一些位,并在连接到 PIC18F452 MCU 的 LED 上显示结果。
代码是用C写的,我是用proteus模拟的。我的原理图如下:
PORTB 上的引脚显示逻辑发生变化,但它们无法打开 LED。我知道这不是硬件问题,而是软件问题。
你能看看我的 C 代码并告诉我我做错了什么吗:
char ii; // loop variable
void main(){
ADCON1 = 0x07;
PORTB = 0;
PORTC = 0;
PORTD = 0;
TRISB = 0;
TRISC = 0;
TRISD = 0;
for(ii = 0; ii < 32; ii++) // Fill data buffer
EEPROM_Write(0x80+ii, ii); // Write data to address 0x80+ii
EEPROM_Write(0x02,0xAA); // Write some data at address 2
EEPROM_Write(0x50,0x55); // Write some data at address 0150
Delay_ms(1000); // Blink PORTB and PORTC LEDs
PORTB = 0xFF; // to indicate reading start
PORTC = 0xFF;
Delay_ms(1000);
PORTB = 0x00;
PORTC = 0x00;
Delay_ms(1000);
PORTB = EEPROM_Read(0x02); // Read data from address 2 and display it on PORTB
PORTC = EEPROM_Read(0x50); // Read data from address 0x50 and display it on PORTC
Delay_ms(1000);
for(ii = 0; ii < 32; ii++) { // Read 32 bytes block from address 0x80
PORTD = EEPROM_Read(0x80+ii); // and display data on PORTD
Delay_ms(250);
}
}
从示意图来看,您似乎将端口 B 上的 LED 条形图连接错了(极性似乎与其他两个条形图的极性相反)。
我正在尝试 MikroC pro for PIC 编译器中可用的示例,该示例从 EEPROM 写入和读取一些位,并在连接到 PIC18F452 MCU 的 LED 上显示结果。
代码是用C写的,我是用proteus模拟的。我的原理图如下:
PORTB 上的引脚显示逻辑发生变化,但它们无法打开 LED。我知道这不是硬件问题,而是软件问题。
你能看看我的 C 代码并告诉我我做错了什么吗:
char ii; // loop variable
void main(){
ADCON1 = 0x07;
PORTB = 0;
PORTC = 0;
PORTD = 0;
TRISB = 0;
TRISC = 0;
TRISD = 0;
for(ii = 0; ii < 32; ii++) // Fill data buffer
EEPROM_Write(0x80+ii, ii); // Write data to address 0x80+ii
EEPROM_Write(0x02,0xAA); // Write some data at address 2
EEPROM_Write(0x50,0x55); // Write some data at address 0150
Delay_ms(1000); // Blink PORTB and PORTC LEDs
PORTB = 0xFF; // to indicate reading start
PORTC = 0xFF;
Delay_ms(1000);
PORTB = 0x00;
PORTC = 0x00;
Delay_ms(1000);
PORTB = EEPROM_Read(0x02); // Read data from address 2 and display it on PORTB
PORTC = EEPROM_Read(0x50); // Read data from address 0x50 and display it on PORTC
Delay_ms(1000);
for(ii = 0; ii < 32; ii++) { // Read 32 bytes block from address 0x80
PORTD = EEPROM_Read(0x80+ii); // and display data on PORTD
Delay_ms(250);
}
}
从示意图来看,您似乎将端口 B 上的 LED 条形图连接错了(极性似乎与其他两个条形图的极性相反)。