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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機實現花樣點陣,效果跟光立方差多少?

[復制鏈接]
跳轉到指定樓層
樓主
ID:151033 發表于 2016-11-29 17:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
點陣花樣顯示

采用HC6800-EM3 V3.0開發板,使用STC89C52RC單片機,四片74HC595串行移位寄存器驅動16*16led點陣,軟件通過指針查表實現點陣的花樣顯示。輕松用點陣實現光立方效果,但跟光立方相比弱爆了

1.點陣效果如下圖:
見附件


2.程序清單如下:

(1)控制點陣花樣顯示函數


//控制點陣花樣顯示函數

  1. #include <REG52.H>
  2. #include "array.h"

  3. //--宏定義函數變量--//
  4. #define uchar unsigned char
  5. #define uint  unsigned int
  6. #define ulong unsigned long

  7. //--定義SPI要使用的 IO--//
  8. sbit MOSIO = P3^4;
  9. sbit R_CLK = P3^5;
  10. sbit S_CLK = P3^6;

  11. //--全局函數聲明--//
  12. void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0);

  13. void main(void)
  14. {   
  15.    int k, i, ms;

  16.    //--定義一個指針數據指向畫面--//
  17.    uchar *p[] = {
  18.          tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8,tab9, tab10,
  19.                      tab11, tab12, tab13, tab14, tab15,tab16, tab17, tab18,tab19, tab20,
  20.                      tab21, tab22, tab23, tab24, tab25,tab26, tab27, tab28,tab29, tab30,
  21.                tab31, tab32, tab33, tab34, tab35,tab36, tab37, tab38,tab39, tab40,
  22.                      tab41, tab42, tab43, tab44, tab45,tab46, tab47, tab48,tab49, tab50,
  23.                      tab51, tab52, tab53, tab54, tab55,tab56, tab57, tab58,tab59, tab60,
  24.                tab61, tab62, tab63, tab64, tab65,tab66, tab67, tab68,tab69, tab70,
  25.                tab71, tab72, tab73, tab74, tab75,tab76, tab77, tab78,tab79, tab80,
  26.                tab81};


  27.      //顯示GO,停留時間較長
  28.                  i=0;
  29.                  for(ms = 80; ms > 0; ms--)     //停留時間較長
  30.                         {
  31.                                 for(k = 0; k < 16; k++)                        //顯示G0圖案
  32.                                 {                                                        
  33.                                         //--因為字模軟件取的數組是高電平有效,所以列要取反--//
  34.                                         HC595SendData(~(*(p[i] + 2*k + 1)),~(*(p[i] + 2*k )),
  35.                                                        tab0[2*k],tab0[2*k + 1]);
  36.                                 }
  37.                         }

  38.                                  
  39.         while(1)
  40.         {
  41.                 for(i = 1; i < 80; i++)                      //總共80個畫面
  42.                 {
  43.                         for(ms = 10; ms > 0; ms--)    //停留時間較短
  44.                         {
  45.                                 for(k = 0; k < 16; k++)                        //顯示一個畫面
  46.                                 {                                                        
  47.                                        
  48.                                         HC595SendData(~(*(p[i] + 2*k + 1)),~(*(p[i] + 2*k )),
  49.                                                        tab0[2*k],tab0[2*k + 1]);
  50.                                 }

  51.                                 HC595SendData(0xff,0xff,0,0);                                //清屏                 
  52.                         }
  53.                 }                                                                                
  54.         }
  55. }

  56. /*******************************************************************************
  57. * 函 數 名         : HC595SendData
  58. * 函數功能                     : 通過595發送四個字節的數據
  59. * 輸    入         : BT3:第四個595輸出數值
  60. *                  * BT2: 第三個595輸出數值
  61. *                  * BT1:第二個595輸出數值
  62. *                  * BT0:第一個595輸出數值
  63. * 輸    出         : 無
  64. *******************************************************************************/

  65. void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0)
  66. {  
  67.          uchar i;
  68.        
  69.         //--發送第一個字節--//
  70.         for(i=0;i<8;i++)
  71.         {
  72.                 MOSIO = BT3 >> 7 ;        //從高位到低位
  73.                 BT3 <<= 1;
  74.                 S_CLK = 0;
  75.                 S_CLK = 1;               
  76.         }

  77.         //--發送第一個字節--//
  78.         for(i=0;i<8;i++)
  79.         {
  80.                 MOSIO = BT2 >>7;                //從高位到低位
  81.                 BT2 <<= 1;
  82.                 S_CLK = 0;
  83.                 S_CLK = 1;       
  84.         }

  85.         //--發送第一個字節--//
  86.         for(i=0;i<8;i++)
  87.         {
  88.                 MOSIO = BT1 >> 7;                //從高位到低位
  89.                 BT1 <<= 1;
  90.                 S_CLK = 0;
  91.                 S_CLK = 1;       
  92.         }

  93.         //--發送第一個字節--//
  94.         for(i=0;i<8;i++)
  95.         {
  96.                 MOSIO = BT0 >> 7;                //從高位到低位
  97.                 BT0 <<= 1;
  98.                 S_CLK = 0;
  99.                 S_CLK = 1;
  100.         }
  101.    
  102.         //--輸出--//
  103.         R_CLK = 0; //置低電平
  104.         R_CLK = 1; //片選
  105.         R_CLK = 0; //置低電平
  106. }
復制代碼
(2)點陣圖案顯示數組
見附件
花樣點陣.zip (33.28 KB, 下載次數: 14)




評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2016-12-2 20:06 | 只看該作者
主要是點陣的體積太小了。光立方可以做得很大
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精选一区 | 成人综合伊人 | 亚洲欧美综合 | 天天插天天操 | 色婷婷亚洲 | 日韩一区二区三区视频 | 福利片在线看 | 国产成人精品网站 | 亚洲黄色成人网 | h视频在线播放 | 希岛爱理在线 | 一区二区国产在线 | 美女黄色在线观看 | 欧美日韩成人网 | 精品国产一区二区三区性色av | 欧日韩不卡在线视频 | 祝你幸福电影在线观看 | www久久av | 亚洲成人福利 | 日韩天堂av | 精品视频一区二区三区在线观看 | 极品的亚洲| 精品国产一区二区三区久久久蜜月 | 日本偷偷操 | 国产精品自产拍 | 国产福利久久 | 久久久毛片 | 国产亚洲精品精品国产亚洲综合 | 不卡的av在线 | 亚洲精品成人在线 | 午夜视频免费在线 | 亚洲三区视频 | 国产美女在线观看 | 视频一区中文字幕 | 国产日韩欧美 | 欧美精品一区二区三区四区 在线 | 奇米影视77| 青青草一区二区三区 | 国内自拍偷拍 | 欧美精品在线免费观看 | 日韩一区二区在线视频 |