我正在编写一个微控制器" PIC 16F877"作为30个LED显示器的寄存器开关,将它们的共阴极连接到地。我不会对PBC bit-4编码的电路有问题,因为它从串口引脚(1, 2,4,8)和引脚(16)是一个脉冲切换器,告诉16F877顺序切换输出端口。
PORTA.0 - 输入切换器脉冲--->串口引脚16
和PORTA.1 tp PORTB.7,都是输出
在每个信号脉冲,微控制器将检查PORTA.0,它将在PORTA.1至PORTB.7的端口上发送5v(逻辑1),这是30个输出端口,当a时,电流必须切断在PORTA.0上检测到新脉冲
我的代码是:
char cnt = 0;
void main () {
ANSEL = 0;
ANSELH = 0;
PORTA = 0;
TRISA = 0b100000; // PORTA.0 as input, PORTA.1 to PORTA.5 as outputs
PORTB = 0;
TRISB = 0; // as a sample code assume we have 6 PORTB outputs
// Plus the above 5 PORTA outputs to run 11 LED Displays
// I want to declare an array as below
string prts[12] = {PORTA.1, PORTA.2, PORTA.3, PORTA.4, PORTA.5, PORTB.0, PORTB.1, PORTB.2, PORTB.3, PORTB.4, PORTB.5, PORTB.6};
do {
if ( PORTA.0 = 0xFF ) {
prts[cnt -- 1] = 0x00; // previous output = low
prts[cnt] = 0xFF; // next output = high
cnt++;
}
while(1)
}
作为上面的示例代码,我想顺序从PORTA.0到PORTB.6(从串口16的每个PORTA.0脉冲开始),微控制器将在下一个选定端口上施加5v电流。数组由" cnt"以前应用的5v端口上的0v和0v,并返回到PORTA.0以再次启动循环(我无法通过FOR执行)...因此
0