标题: 用74HC595移位寄存器静态显示数码管(参考版程序) [打印本页]

作者: liuda    时间: 2015-1-22 01:58
标题: 用74HC595移位寄存器静态显示数码管(参考版程序)
  1. #include <REG51.H>
  2. #include <intrins.h>
  3. #define  NOP() _nop_()  // 定义空指令 ,这个函数在库 <intrins.h> 中
  4. //SPI IO
  5. sbit MOSI = P3^4;
  6. sbit R_CLK = P3^5;
  7. sbit S_CLK = P3^6;
  8. //函数声明
  9. void HC595SendData( unsigned char BT0);
  10. /*************主函数*****************************/       
  11. void main(void)
  12. {
  13.    while(1)
  14.    {   
  15. HC595SendData(0x82);//驱动共阳数码管显示6                
  16.    }
  17. }

  18. /*********************************************************************************************************
  19. ** 函数名称: HC595SendData
  20. ** 功能描述: 向SPI总线发送数据
  21. *********************************************************************************************************/
  22. void HC595SendData( unsigned char BT0)
  23. {  
  24.   unsigned char i;
  25.   for(i = 0; i < 16; i++)//循环十六次后,就可以用下一个移位寄存器来控制了
  26.    {
  27.   
  28.         if((BT0<< i) & 0x80)  //判断最高位是0还是1
  29.       {
  30.    MOSI = 1;// 如果为真,将1送入移位寄存器
  31. }
  32. else
  33. {
  34.    MOSI = 0;            
  35. }       
  36. S_CLK = 0;//移位一次
  37. NOP();
  38. S_CLK = 1;//上升沿有效
  39.    }  
  40.   R_CLK = 0; //移位结束取出数据
  41.   NOP();
  42.   R_CLK = 1; //上升沿有效

  43. }
复制代码



作者: Gerage    时间: 2015-6-16 09:51
怎么没有电路图呢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1