久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

16X16點陣上面實現倒計時的單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:341254 發表于 2018-5-30 11:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  •                   LED點陣實驗 (顯示數字)                                                                         *
  •                 行:高電平有效,低16位  列:低電平有效,高16位
  • ******************************************************************************************/
  • #include <REG51.H>
  • #include <intrins.h>
  • #define  NOP() _nop_()  // 定義空指令 ,這個函數在庫 <intrins.h> 中
  • //SPI IO
  • sbit MOSIO = P3^4;
  • sbit R_CLK = P3^5;
  • sbit S_CLK = P3^6;
  • //變量聲明
  • unsigned long column;   //點陣列
  • unsigned long row;      //點陣行
  • unsigned long dt;
  • //點陣顯示數組
  • unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
  •                              0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};
  • unsigned char code tab1[] = {0,0,0,0,0,0,8,24,14,36,8,66,8,66,8,66,8,66,8,66,8,66,8,36,62,24,0,0,0,0,0,0};
  • unsigned char code tab2[] = {0,0,0,0,0,0,24,24,36,36,66,66,66,66,66,66,66,100,66,88,66,64,66,64,36,36,24,28,0,0,0,0} ;
  • unsigned char code tab3[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,66,66,36,66,24,66,36,66,66,66,66,36,66,24,60,0,0,0,0};
  • unsigned char code tab4[] = {0,0,0,0,0,0,24,126,36,34,66,34,66,16,66,16,66,8,66,8,66,8,66,8,36,8,24,8,0,0,0,0};
  • unsigned char code tab5[] = {0,0,0,0,0,0,24,56,36,36,66,2,66,2,66,26,66,38,66,66,66,66,66,66,36,36,24,24,0,0,0,0};
  • unsigned char code tab6[] = {0,0,0,0,0,0,24,126,36,2,66,2,66,2,66,26,66,38,66,64,66,64,66,66,36,34,24,28,0,0,0,0};
  • unsigned char code tab7[] = {0,0,0,0,0,0,24,32,36,48,66,40,66,36,66,36,66,34,66,34,66,126,66,32,36,32,24,120,0,0,0,0};
  • unsigned char code tab8[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,32,66,24,66,32,66,64,66,64,66,66,36,34,24,28,0,0,0,0};
  • unsigned char code tab9[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,66,66,32,66,32,66,16,66,8,66,4,36,66,24,126,0,0,0,0};
  • unsigned char code tab10[] = {0,0,0,0,0,0,24,8,36,14,66,8,66,8,66,8,66,8,66,8,66,8,66,8,36,8,24,62,0,0,0,0};
  • unsigned char code tab11[] = {0,0,0,0,0,0,24,24,36,36,66,66,66,66,66,66,66,66,66,66,66,66,66,66,36,36,24,24,0,0,0,0};
  • unsigned char code tab12[] = {0,0,0,0,0,0,60,28,34,34,34,65,1,65,1,65,1,65,113,65,33,65,34,65,34,34,28,28,0,0,0,0};
  • //函數聲明
  • void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
  • /*************主函數*****************************/
  • void main(void)
  • {
  •    int k,i,ms;
  •    i = 16;                                                                                                                                  //顯示時間
  •    while(1)
  •    {
  •      for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //親
  •            {
  •          HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                   //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                            //愛
  •            {
  •          HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •           HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //的
  •            {
  •          HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //顧
  •            {
  •          HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //客
  •            {
  •          HC595SendData(~tab5[2*k +1],~tab5[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //歡
  •            {
  •          HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //迎
  •            {
  •          HC595SendData(~tab7[2*k +1],~tab7[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //使
  •            {
  •          HC595SendData(~tab8[2*k +1],~tab8[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //用
  •            {
  •          HC595SendData(~tab9[2*k +1],~tab9[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //普
  •            {
  •          HC595SendData(~tab10[2*k +1],~tab10[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //中
  •            {
  •          HC595SendData(~tab11[2*k +1],~tab11[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          while(1)
  •          {
  •                       for(ms = i; ms > 0; ms--)
  •              {
  •            for(k = 0; k < 16; k++)                                                                                                //中
  •                {
  •              HC595SendData(~tab12[2*k +1],~tab12[2*k],tab0[2*k],tab0[2*k + 1]);
  •                }
  •              }
  •          for(ms = i; ms > 0; ms--)
  •              {
  •            for(k = 0; k < 16; k++)                                                                                                //中
  •                {
  •                      HC595SendData(0xff,0xff,0,0);
  •                 }
  •            }
  •          }                                                                        //清屏
  •    }
  • }
  • /*********************************************************************************************************
  • ** 函數名稱: HC595SendData
  • ** 功能描述: 向SPI總線發送數據
  • *********************************************************************************************************/
  • void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
  • {
  •   unsigned char i;
  •   for(i = 0; i < 32; i++)
  •    {
  •    if(i > 23 )
  •    {
  •       if((BT0 << (i - 24)) & 0x80)
  •       {
  •             MOSIO = 1;
  •           }
  •           else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •    else if(i > 15 & i < 24 )
  •    {
  •         if((BT1 << (i - 16)) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進行邏輯運算
  •       {
  •             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  •           }
  •         else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •     else if(i < 16 & i > 7 )
  •    {
  •       if((BT2 << (i - 8)) & 0x80)
  •       {
  •             MOSIO = 1;
  •           }
  •           else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •         else
  •         {
  •                   if((BT3 << i) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進行邏輯運算
  •       {
  •             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  •           }
  •         else
  •           {
  •             MOSIO = 0;
  •           }
  •         }
  •         S_CLK = 0;
  • //        NOP();        //產生方形波
  •         S_CLK = 1;
  •    }
  •   R_CLK = 0; //set dataline low
  • // NOP();   //產生方形波
  •   R_CLK = 1; //片選
  • }


[color=rgb(51, 102, 153) !important]復制代碼




下面是顯示漢字的程序:
  •                                                            /*****************************************************************************************
  • *                                                                                                                                                         *
  • *                         LED點陣實驗 (顯示數字)                                                                         *
  •                 行:高電平有效,低16位  列:低電平有效,高16位
  • ******************************************************************************************/
  • #include <REG51.H>
  • #include <intrins.h>
  • #define  NOP() _nop_()  // 定義空指令 ,這個函數在庫 <intrins.h> 中
  • //SPI IO
  • sbit MOSIO = P3^4;
  • sbit R_CLK = P3^5;
  • sbit S_CLK = P3^6;
  • //變量聲明
  • unsigned long column;   //點陣列
  • unsigned long row;      //點陣行
  • unsigned long dt;
  • //點陣顯示數組
  • unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
  •                              0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};
  • unsigned char code tab1[] = {96,2,28,10,16,18,16,2,254,63,16,2,16,18,112,18,24,10,22,10,16,36,16,42,16,49,156,32,0,0,0,0};
  • unsigned char code tab2[] = {0,30,252,9,72,8,144,4,254,63,66,32,252,31,32,0,240,15,80,4,136,2,4,1,194,6,56,56,0,0,0,0};
  • unsigned char code tab3[] = {144,0,144,0,208,63,72,32,40,16,12,2,10,2,136,10,136,18,72,18,72,34,40,34,8,2,136,3,0,0,0,0};
  • unsigned char code tab4[] = {0,0,0,0,60,240,102,156,67,130,0,0,0,0,0,0,0,0,0,0,48,24,96,8,192,7,0,0,0,0,0,0};
  • //函數聲明
  • void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
  • /*************主函數*****************************/
  • void main(void)
  • {
  •    int k,i,ms;
  •    i = 16;                                                                                                                                  //顯示時間
  •    while(1)
  •    {
  •      for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //我
  •            {
  •          HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                   //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                            //愛
  •            {
  •          HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •           HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = i; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //你
  •            {
  •          HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  •          for(ms = 30; ms > 0; ms--)
  •          {
  •        for(k = 0; k < 16; k++)                                                                                                //笑臉
  •            {
  •          HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]);
  •            }
  •          }
  •          HC595SendData(0xff,0xff,0,0);
  •    }
  • }
  • /*********************************************************************************************************
  • ** 函數名稱: HC595SendData
  • ** 功能描述: 向SPI總線發送數據
  • *********************************************************************************************************/
  • void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
  • {
  •   unsigned char i;
  •   for(i = 0; i < 32; i++)
  •    {
  •    if(i > 23 )
  •    {
  •       if((BT0 << (i - 24)) & 0x80)
  •       {
  •             MOSIO = 1;
  •           }
  •           else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •    else if(i > 15 & i < 24 )
  •    {
  •         if((BT1 << (i - 16)) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進行邏輯運算
  •       {
  •             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  •           }
  •         else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •     else if(i < 16 & i > 7 )
  •    {
  •       if((BT2 << (i - 8)) & 0x80)
  •       {
  •             MOSIO = 1;
  •           }
  •           else
  •           {
  •             MOSIO = 0;
  •           }
  •    }
  •         else
  •         {
  •                   if((BT3 << i) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進行邏輯運算
  •       {
  •             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  •           }
  •         else
  •           {
  •             MOSIO = 0;
  •           }
  •         }
  •         S_CLK = 0;
  • //        NOP();        //產生方形波
  •         S_CLK = 1;
  •    }
  •   R_CLK = 0; //set dataline low
  • // NOP();   //產生方形波
  •   R_CLK = 1; //片選
  • }



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美久久久久久久久中文字幕 | 精品视频免费 | 99久久婷婷国产精品综合 | 久久亚洲国产精品日日av夜夜 | 国产成人免费视频网站高清观看视频 | 久久精品色欧美aⅴ一区二区 | 亚洲视频在线免费观看 | 亚洲一区中文字幕在线观看 | 国产精品久久久久无码av | 久久成人免费视频 | 久久国产精品一区 | 天堂精品视频 | 九九热精品在线 | 伊人久久精品一区二区三区 | 大象一区 | 国产一区二区在线免费 | 黄色大片免费网站 | 美女久久久 | 蜜月va乱码一区二区三区 | 国产乱码高清区二区三区在线 | 久久久久久久一区 | 一区二区三区av | 国产亚洲欧美日韩精品一区二区三区 | 亚洲一区二区黄 | 国产aa| 国产一区二区 | 色就干| 超碰97免费 | 韩日一区二区三区 | 日韩精品视频在线观看一区二区三区 | 久久成人国产精品 | 亚洲美女视频 | 成人h动漫精品一区二区器材 | 欧美日韩精品一区二区天天拍 | 99在线国产 | 九九久久久久久 | 日本在线免费视频 | 蜜臀久久 | 久久出精品 | 麻豆a级片| 91看片在线观看 |