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

QQ登錄

只需一步,快速開始

搜索
查看: 2088|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

TM1638.h 單片機(jī)C語言頭文件

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:604063 發(fā)表于 2019-9-5 22:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. /* --EL------------------------------ ------------*/
  2. /* -----------------通用--------------------*/
  3. /*------------------------------------------------*/
  4. //CE-片選 DAI-數(shù)據(jù)輸入 DAO-數(shù)據(jù)輸出 CLK-時(shí)鐘 STB—鎖存  CLR-復(fù)位 addr-地址//
  5. #include "EL_Allhead.H"
  6. #include "EL_TM1638.H"
  7. unsigned char idata TM1638_CacheTab[16];//顯示緩存
  8. unsigned char code  TM1638_SEGTab[]={0x5f,0x0c,0x9b,0x9e,0xcc,0xd6,0xd7,0x1c,0xdf,0xde};        //數(shù)碼管0-9

  9. void TM1638_SPI(unsigned char dat) //TM1638
  10. {
  11.         unsigned char i;
  12.         TM1638_CE =0;           //給有效的片選信號(hào)(片選信號(hào)是低電平有效)                 
  13.         for(i=0;i<8;i++)//開始傳送8位數(shù)據(jù),每循環(huán)一次傳送一位數(shù)據(jù)
  14.         {
  15.                 TM1638_CLK =0;
  16.                 Delay1us(1);
  17.                 dat>>=1;//移位數(shù)據(jù),低位在前!
  18.                 TM1638_DAI=CY;
  19.                 TM1638_CLK =1;
  20.                 Delay1us(1);
  21.         }
  22. }
  23. void TM1638_DispData()//傳送數(shù)據(jù),并顯示
  24. {
  25.         static unsigned char i;
  26.         TM1638_CE = 1;TM1638_CLK = 1;TM1638_DAI = 1;
  27.         TM1638_SPI(0x40);//寫數(shù)據(jù)到顯示寄存器,采用地址自動(dòng)加一
  28.         TM1638_CE = 1;
  29.         TM1638_SPI(0xc0);//顯示寄存器的00H單元開始
  30.         for(i=0;i<16;i++)
  31.                 TM1638_SPI(TM1638_CacheTab[i]);//給顯示寄存器送數(shù)據(jù),
  32.         TM1638_CE = 1;
  33.         TM1638_SPI(0x8b);//顯示控制參數(shù),點(diǎn)亮數(shù)碼屏幕,亮度可以通過改變低三位調(diào)節(jié)
  34.         TM1638_CE = 1;
  35. }
  36. void TM1638_ClrData()//清除數(shù)據(jù)/
  37. {
  38.    unsigned char i;
  39.    TM1638_CacheTab[0]=0x01; //關(guān)機(jī)指示燈
  40.    for(i=1;i++;i<16)
  41.            TM1638_CacheTab[i]=0;
  42. }
  43. /***陳列數(shù)據(jù)處理函數(shù)**傳入 數(shù)據(jù),位置(0-9)10顯示***/
  44. void TM1638_CfgData(unsigned char _Num,unsigned char _WeiData)  //陳列數(shù)據(jù)/
  45. {
  46.         unsigned char i=0, j=0;
  47.         if(_Num>1)_WeiData=TM1638_SEGTab[_WeiData]; //數(shù)碼管0-9 轉(zhuǎn)換
  48.         if(_Num<8) //1-8位
  49.         {
  50.                 for (i = 0; i < 16; i =i+2)
  51.                 {
  52.                         if ((_WeiData & 0x01) == 0x01)
  53.                                 TM1638_CacheTab[i]|=(0x01<<_Num); //1
  54.                         else
  55.                                 TM1638_CacheTab[i]&=~(0x01<<_Num); //0
  56.                         _WeiData =(_WeiData>>1);
  57.                 }
  58.         }
  59.         else if(_Num<10) //9-10位
  60.         {
  61.                 _Num = _Num - 8;
  62.                 for (i=1;i<16;i=i+2)
  63.                 {
  64.                         if (_WeiData&0x01==0x01)
  65.                                 TM1638_CacheTab[i]|=(0x01<<_Num); //1
  66.                         else
  67.                                 TM1638_CacheTab[i]&=~(0x01<<_Num); //0
  68.                         _WeiData =(_WeiData >> 1);
  69.                 }
  70.         }
  71.         else
  72.         {        
  73.                 TM1638_DispData();//傳送數(shù)據(jù),并顯示
  74.         }
  75. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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