微控制器在PORTA.0上的每个输入脉冲处顺序(在一个环路中)输出引脚之间切换

时间:2014-09-15 22:25:56

标签: microcontroller

我正在编写一个微控制器" 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

0 个答案:

没有答案