找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4283|回復: 1
打印 上一主題 下一主題
收起左側

用74HC595移位寄存器靜態(tài)顯示數(shù)碼管(參考版程序)

[復制鏈接]
跳轉到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-22 01:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <REG51.H>
  2. #include <intrins.h>
  3. #define  NOP() _nop_()  // 定義空指令 ,這個函數(shù)在庫 <intrins.h> 中
  4. //SPI IO
  5. sbit MOSI = P3^4;
  6. sbit R_CLK = P3^5;
  7. sbit S_CLK = P3^6;
  8. //函數(shù)聲明
  9. void HC595SendData( unsigned char BT0);
  10. /*************主函數(shù)*****************************/       
  11. void main(void)
  12. {
  13.    while(1)
  14.    {   
  15. HC595SendData(0x82);//驅動共陽數(shù)碼管顯示6                
  16.    }
  17. }

  18. /*********************************************************************************************************
  19. ** 函數(shù)名稱: HC595SendData
  20. ** 功能描述: 向SPI總線發(fā)送數(shù)據(jù)
  21. *********************************************************************************************************/
  22. void HC595SendData( unsigned char BT0)
  23. {  
  24.   unsigned char i;
  25.   for(i = 0; i < 16; i++)//循環(huán)十六次后,就可以用下一個移位寄存器來控制了
  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; //移位結束取出數(shù)據(jù)
  41.   NOP();
  42.   R_CLK = 1; //上升沿有效

  43. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:83127 發(fā)表于 2015-6-16 09:51 | 只看該作者
怎么沒有電路圖呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表