欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機P1P2P3口采集二進制碼P0口通過595驅動數碼管顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:273939 發表于 2019-4-14 22:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include <reg51.h>
#include <intrins.h>
#define  NOP() _nop_()  /* 定義空指令 */

sbit MOSIO =P0^0;//   DS          第14腳          串行數據輸入 
sbit S_CLK =P0^3;//   STCP          第12腳          存儲寄存器時鐘輸入
sbit R_CLK =P0^1;//   SHCP          第11腳          移位寄存器時鐘輸入


void delay(unsigned int i);      //函數聲名 延時
void HC595SendData(unsigned char SendVal);//函數聲名 595操作
void tabData(unsigned int tab);  //函數聲名數組傳遞
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
// 此表為 //LED 的字模             0     1     2     3     4     5     6     7     8     9     A     b     c     d     E     -    L   P    U    Hidden  _ (20)

   unsigned int i=0;
   unsigned int tab1[2]=0;
   unsigned int tab2[2]=0;
   unsigned int tab3[2]=0;

void main()
  {
   while(1)
         {  
  for(i=0;i<2;i++)
           {
                 delay(100);//        delay(100);delay(100);       
                 tab3[i]=P3; tab2[i]=P2; tab1[i]=P1;                                 
                 if(tab1[0]^tab1[1])  tabData(P1+1); //0-63
                 if(tab2[0]^tab2[1])  tabData(P2+128); //64-128
                 if(tab3[0]^tab3[1])  tabData(P3+256); //128-192   
/*                 tab1[i]=P1;
                 if(tab1[0]^tab1[1])  tabData(P1+1); //0-63   */
                }
         }         
  }

/*********************************************************************************************************
** 函數名稱: 延時函數
*********************************************************************************************************/


void delay(unsigned int i)
{
    unsigned int j;
    for(i; i > 0; i--)
       for(j = 300; j > 0; j--);
}


/*********************************************************************************************************
** 函數名稱: HC595SendData
** 功能描述: 向SPI總線發送數據
*********************************************************************************************************/
void HC595SendData(unsigned char SendVal)
{  
  unsigned char i;
               
  for(i=0;i<8;i++)
   {
           if(SendVal&0x80)
                        MOSIO=0; //set dataline high  0X80  最高位與SendVal左移的最高位 進行邏輯運算
           else
                        MOSIO=1;                                       // 如果為真 MOSIO = 1  


                SendVal<<=1;
           S_CLK=0;
           NOP();
           NOP();
           S_CLK=1;       
   }
}


/*********************************************************************************************************
** 函數名稱: 數組接受
** 功能描述: 接受數組數轉化 發送到595
*********************************************************************************************************/
void tabData(unsigned int LedNumVal)

  {
   unsigned char  HC595ge=0 , HC595bai=0 , HC595shi=0;


              HC595bai = LED7Code[LedNumVal/100];        //百位
              HC595SendData(HC595bai);       

         HC595shi = LED7Code[LedNumVal%100/10];     //十位
              HC595SendData(HC595shi);                                     

                   HC595ge = LED7Code[LedNumVal%10];           //個位
              HC595SendData(HC595ge);


  R_CLK=0; //set dataline low
  NOP();
  NOP();
  R_CLK=1; //片選

  }


通道號顯示通用程序.rar

18.18 KB, 下載次數: 9, 下載積分: 黑幣 -5

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

使用道具 舉報

沙發
ID:1 發表于 2019-4-15 02:30 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:500108 發表于 2019-4-15 07:48 | 只看該作者
謝謝分享學習。。。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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