原创 74hc164 子程序

2008-1-23 11:57 5593 7 7 分类: 汽车电子

在以往的设计中,有可能会出现IO口不够用的情况。扩展IO口的方法和芯片很多,但是我往往选择74hc164来扩展输出口。可能是以前做的大多是消费电子的原因,对硬件成本很敏感。


以下是调试好的子程序,复制的程序中即可用,现在网上流传的程序,总会有这样那样的错误,真不知道是有意的还是无意的。


 


C语言子程序,在holtek的语言环境通过。


作用: 发送一个字节


入口参数: number   ;出口参数: 无


调用全局变量: 无


使用前需定义好clk_164 ,ab_164的管脚。


*******************Transmit and Recive ********************/


void Transmit164(unsigned char number)        // Transmit a byte;
         {unsigned char i="8";
          do{i--;
      CLK_164=0;
      AB_164=(bit)(number&0x80);
      number="number"<<1;
      CLK_164=1;
            }while(i!=0);
         }


  /******************************************************/


// 用74hc164发送一位。


    void Transmit1Bit(unsigned char number)     // Transmit a bit from 74hs164
          {CLK_164=0;
           AB_164=(bit)(number&0x80);
           CLK_164=1;
          }


/**********************************************************/


下面是汇编写的程序,在pic16系列中编译通过。


;***************************************************************SUB_TRANSMIT发送子程序。
;入口参数:W
;出口参数:无
;所用的参数:Transmit_cnta Transmittb
;  扩展74LS164     LS164_CLK     LS164_AB
;            #define  LS164_CLK  XX.X
;            #define  LS164_AB   XX.X
;*****************************************************************
SUB_TRANSMIT  BCF STATUS,RP1               ;BANK0
              BCF STATUS,RP0
              
             MOVWF Transmit_cnta     ;W--》COUNTA,左移一位---》RA2
            
             MOVLW D'8'
             MOVWF Transmittb


AGA_LI1      RRF Transmit_cnta,1
             BTFSC STATUS,C        ;IF C="1" THEN RA2<---1   ELSE 0--->RA2      
             GOTO SETBRA2
             BCF LS164_AB
             GOTO XIA_DISPLAY1
SETBRA2     BSF LS164_AB
XIA_DISPLAY1 NOP
             BSF LS164_CLK  
             NOP
             BCF LS164_CLK   
             NOP
             DECFSZ Transmittb,1
             GOTO  AGA_LI1
             CLRWDT
             RETURN       
;*************************************************************************


我希望能有更多的人来共享子程序。让我们的开发不要老做重复性的基层工作。今天就到这吧。pdfpdf


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条