找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3701|回复: 1
打印 上一主题 下一主题
收起左侧

用74HC595移位寄存器静态显示数码管(参考版程序)

[复制链接]
跳转到指定楼层
楼主
ID:72519 发表于 2015-1-22 01:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:83127 发表于 2015-6-16 09:51 | 只看该作者
怎么没有电路图呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表