找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4357|回復(fù): 2
收起左側(cè)

單片機(jī)74Hc595控制列74Hc138控制行8*8點(diǎn)陣程序

[復(fù)制鏈接]
ID:492819 發(fā)表于 2019-4-6 22:10 | 顯示全部樓層 |閱讀模式
根據(jù)別人的程序改編,調(diào)試出來(lái),分享一下,不能只拿不送

制作出來(lái)的實(shí)物圖如下:
IMG_20190406_215823.jpg

單片機(jī)源程序如下:
  1. #include "reg51.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
  2. #include<intrins.h>

  3. typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  4. typedef unsigned char u8;

  5. sbit SRCLK=P3^6;//SH_CP                                          //Hc595接線
  6. sbit RCLK =P3^5;//ST_CP
  7. sbit SER  =P3^4;//DS

  8. sbit IA=P1^0;//行控制線A                                           //Hc138 接線
  9. sbit IB=P1^1;//行控制線B
  10. sbit IC=P1^2;//行控制線C

  11. u8 ledduan[3][8]=                                                             //3個(gè)字符 8位掃描
  12. {
  13.    0x00,0x7C,0x10,0x14,0x74,0x14,0x7E,0x00,                   //正
  14.    0x00,0x66,0x99,0x81,0x81,0x42,0x24,0x18,
  15.    0x00,0x00,0x18,0x3c,0x5a,0x18,0x18,0x00                  //格式必須準(zhǔn)確 沒(méi)有逗號(hào)

  16. };                                                                                         //格式必須準(zhǔn)確 加分號(hào)

  17. /*******************************************************************************
  18. * 函 數(shù) 名         : delay
  19. * 函數(shù)功能                   : 延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us
  20. *******************************************************************************/
  21. void delay(u16 i)
  22. {
  23.         while(i--);        
  24. }

  25. /*******************************************************************************
  26. * 函數(shù)名         : Hc595SendByte(u8 dat)
  27. * 函數(shù)功能                   : 向74HC595發(fā)送一個(gè)字節(jié)的數(shù)據(jù)
  28. * 輸入           : 無(wú)
  29. * 輸出                  : 無(wú)
  30. *******************************************************************************/
  31. void Hc595SendByte(u8 dat)                                      //Hc595掃描程序
  32. {
  33.         u8 a;
  34.         SRCLK=0;      //首先設(shè)移位寄存器為低電平
  35.         RCLK=0;         //再設(shè)存儲(chǔ)寄存器為低電平
  36.         for(a=0;a<8;a++)
  37.         {
  38.                 SER=dat>>7;        //輸入
  39.                 dat<<=1;

  40.                 SRCLK=1;
  41.                 _nop_();
  42.                 _nop_();
  43.                 SRCLK=0;        
  44.         }

  45.         RCLK=1;
  46.         _nop_();
  47.         _nop_();
  48.         RCLK=0;
  49. }



  50. void main()
  51. {                        
  52.         u8 i;        
  53.                 u16 r;
  54.                 u16 j;
  55.       while(1)
  56.       {
  57.                   for(r = 0; r < 80; r++)
  58.                   {
  59.                 P0=0x7f;
  60.                                                    
  61.                 for(i=0;i<8;i++)
  62.                 {
  63.                   switch(i)  
  64.                                   {
  65.                                 case 0:  IA=0;IB=0;IC=0; break;               //Hc138行掃描
  66.                                 case 1:  IA=1;IB=0;IC=0; break;
  67.                                 case 2:  IA=0;IB=1;IC=0; break;
  68.                                 case 3:  IA=1;IB=1;IC=0; break;
  69.                                 case 4:  IA=0;IB=0;IC=1; break;
  70.                                 case 5:  IA=1;IB=0;IC=1; break;
  71.                                 case 6:  IA=0;IB=1;IC=1; break;
  72.                                 case 7:  IA=1;IB=1;IC=1; break;
  73.                                   }   
  74.                   Hc595SendByte(ledduan[j][i]);               
  75.                         delay(100);                   //延時(shí)
  76.                         Hc595SendByte(0x00);  //消隱
  77.                 }
  78.                         
  79.                    }
  80.                   
  81.                         j++;                                // 字符輪流輸出
  82.                 if(j == 3)
  83.                 {
  84.                         j = 0;
  85.                  }
  86.                     
  87.       }               
  88. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:485432 發(fā)表于 2019-6-3 13:01 | 顯示全部樓層
樓主,能發(fā)下兩個(gè)74HC595和一個(gè)8*8點(diǎn)陣如何連接,我搞不懂引腳圖,我郵箱1767020292@qq.com
回復(fù)

使用道具 舉報(bào)

ID:486353 發(fā)表于 2019-5-20 21:50 來(lái)自觸屏版 | 顯示全部樓層
謝謝你,這個(gè)很有用。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表