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

標題: 單片機驅動LED發光矩陣的使用心得 [打印本頁]

作者: zxwdown    時間: 2018-10-14 22:47
標題: 單片機驅動LED發光矩陣的使用心得
從網上購得一枚發光矩陣,到網店查看相關資料,無賴找不到任何相關資料,只能從發光矩陣的標識入手尋找使用方法,器件上有
ELM-1882UYWB/S530-A3,C0506U。接口有八個引腳:5V,A,B,C,SER,SCK,RCK,GND。

到網上查找ELM-1882UYWB使用方法,沒找到,找SER,SCK,RCK相關資料,發現是串行移位寄存器的接口,其中5V,GND是電源引腳,SER是數據引腳,SCK是時鐘引腳,RCK是片選引腳,A,B,C行地址引腳。將ABC接P0口的012腳,SER、SCK、RCK接P0口345引腳,先按網上所述編寫字符顯示程序如下:

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit ser=P0^3;
sbit sck=P0^4;
sbit rck=P0^5;
int waitnum=1;
void delay(uint ii){uint i;for(i=0;i<ii;i++);}
void SendByte(uchar cc)
{uchar c=cc;int i;
  for(i=0;i<8;i++)
   {if(c&0x80)ser=1;
    else ser=0;
    c<<=1;
    sck=0;
    sck=1;
    }
    rck=0;
    rck=1;
}
uchar vc[][8]={{0x1c,0x22,0x32,0x2a,0x26,0x22,0x1c,0x00},//0
                 {0x08,0x0c,0x08,0x08,0x08,0x08,0x1c,0x00},//1
                 {0x1c,0x22,0x20,0x18,0x04,0x02,0x3e,0x00},//2
                 {0x1c,0x22,0x20,0x18,0x20,0x22,0x1c,0x00},//3
                 {0x10,0x18,0x14,0x12,0x3e,0x10,0x10,0x00},//4
                 {0x3e,0x02,0x1e,0x20,0x20,0x22,0x1c,0x00},//5
                 {0x18,0x04,0x02,0x1e,0x22,0x22,0x1c,0x00},//6
                 {0x3e,0x20,0x10,0x08,0x04,0x04,0x04,0x00},//7
                 {0x1c,0x22,0x22,0x1c,0x22,0x22,0x1c,0x00},//8
                 {0x1c,0x22,0x22,0x3c,0x20,0x10,0x0c,0x00},//9
                 {0x00,0x18,0x24,0x42,0x42,0x7e,0x42,0x42},//A
               {0x00,0x3c,0x44,0x44,0x3c,0x44,0x44,0x3c},//B
                 {0x00,0x38,0x44,0x04,0x04,0x44,0x38,0x00},//C
                };
void main()
{int i,j,k=0;
  while(1)
  {for(j=0;j<500;j++)
      for(i=0;i<8;i++)
         {P0=i;
          SendByte(vc[k][ i]);
          }
          delay(30000);
          k++;
   if(k==13)k=0;
   }
  }

發現能顯示,但有兩個問題,首先是顯示重景,每個字符都象是兩個字符錯位疊加,顯示不是很清楚,其次是顯示字符轉換時都帶著上個字符的最后一行數據,效果有些別扭。經分析,重影問題的產生是由于顯示時先傳送顯示數據,再改變顯示行,這樣數據傳送完成后,顯示行還沒變,在舊的顯示行就顯示新的數據,顯示行改變后,新的數據又在新的顯示行顯示,所以就重影。到于顯示有殘留是因為每個字符顯示完后,轉換顯示字符時,上一個字符的最后一行數據還在顯示,直到新字符的第一行顯示時才擦掉,解決這個問題就是字符顯示后將最后一行數據擦除,這樣顯示就清爽了。修改后的main()函數如下。
void main()
{int i,j,k=0;
  while(1)
  {for(j=0;j<500;j++)
      for(i=0;i<8;i++)
         {SendByte(vc[k][ i]);
          P0=i;
          }
          SendByte(0);
          k++;
   if(k==13)k=0;
   }
  }




作者: dumn    時間: 2018-10-15 14:42
我今天中午用keil4 實測 用的樓主源碼,我的矩陣根本沒有顯示啊,只有數碼管有反應
作者: dumn    時間: 2018-10-15 15:10
我用keil4 用了樓主的源碼,因為我是開發板上的源碼,就改了下引腳借口,燒錄進去我的矩陣沒有反應,只有數碼管有反應,樓主知道怎么回事嗎
作者: zxwdown    時間: 2018-10-15 22:31
不知你引腳定義有沒有錯,A、B、C、接P0的0、1、2腳,P0的第3、4、5腳分別是SER,SCK,RCK,
作者: dumn    時間: 2018-10-16 12:30
借用樓主思想,改了一下。
#include<reg52.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;

sbit SRCLK=P3^6;
sbit rCLK=P3^5;
sbit SER=P3^4;

#define COMMONPORTS                P0
//áDÑ¡
unsigned char code TAB[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
//¶ÎÑ¡
unsigned char code CHARCODE[18][8]=
{

{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}, //0

{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00}, //1

{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00}, //2

{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00}, //3

{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00}, //4

{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5

{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6

{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00}, //7

{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}, //8

{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}, //9

{0x00,0x00,0x7F,0x48,0x48,0x30,0x00,0x00}, //P

{0x00,0x00,0x7F,0x48,0x4C,0x73,0x00,0x00}, //R

{0x00,0x00,0x7F,0x49,0x49,0x49,0x00,0x00}, //E

{0x00,0x00,0x3E,0x41,0x41,0x62,0x00,0x00}, //C

{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00}, //H

{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00}, //I

{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00}, //N

{0x38,0x44,0x42,0x21,0x21,0x42,0x44,0x38}};  //°®DÄ

void delay(unsigned int time )
{
        unsigned int i,j;
        for(i=0;i<time;i++)
                for(j=0;j<121;j++);
}


void hc595send(u8 dat)
{
        u8 a;
        SRCLK=0;
        rCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;

                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
        rCLK=1;
        _nop_();
        _nop_();
        rCLK=0;
}


void main()
{
         unsigned char tab,j;
         unsigned int i;
         while(1)
         {
                 for(i=0;i<50;i++)
                {
                        for(tab=0;tab<8;tab++)
                        {
                                hc595send(0x00);
                                COMMONPORTS=TAB[tab];
                                hc595send(CHARCODE[j][tab]);
                                delay(2);
                        }
                }
                j++;
                if(j==18)
                {
                        j=0;
                }
         }
}


作者: dumn    時間: 2018-10-16 12:35
這是效果圖

微信圖片_20181016123235.jpg (42.62 KB, 下載次數: 69)

微信圖片_20181016123235.jpg

微信圖片_20181016123242.jpg (46.98 KB, 下載次數: 75)

微信圖片_20181016123242.jpg

微信圖片_20181016123224.jpg (54.34 KB, 下載次數: 79)

微信圖片_20181016123224.jpg

作者: zxwdown    時間: 2018-10-16 14:06
佩服,你之前失敗是什么原因?還有你用的是什么單片機,我的單片機只能定義少數變量,像你這樣定義一個8X18數組編譯不過,會報數據段太大,只能128個字節以內,所以我本想定義0-F十六進制的十六個字符,但受限變量規模不行。
作者: wlsbll    時間: 2018-10-16 16:47
樓主,這跟數碼管靜態顯示的消影是一個道理
作者: zxwdown    時間: 2018-10-16 18:36
wlsbll 發表于 2018-10-16 16:47
樓主,這跟數碼管靜態顯示的消影是一個道理

謝謝,我剛玩單片機,還沒有消影這個概念,你的這回復對我很有幫助。
作者: 快樂眼淚    時間: 2018-10-16 19:12
謝謝樓主分享!單片機學習中
作者: dumn    時間: 2018-10-17 08:03
wlsbll 發表于 2018-10-16 16:47
樓主,這跟數碼管靜態顯示的消影是一個道理

我的是51單片機,之前失敗的原因,具體我也不清楚,我覺得是你發送字符函數,跟我的板子,不太一樣吧。
作者: 撲通小鹿    時間: 2019-6-19 14:12
dumn 發表于 2018-10-16 12:30
借用樓主思想,改了一下。
#include
#include

你好!我想學你的心形矩陣led怎么做的。特別想做,但是沒有學單片機很吃力哦
這么聯系你嗎?

作者: zxule    時間: 2019-6-19 18:23
好像有鬼影?什么模塊
作者: zxwdown    時間: 2019-6-20 06:15
周栩樂 發表于 2019-6-19 18:23
好像有鬼影?什么模塊

是有重影,原因是當時程序沒有消影,只要做消影處理就好。模塊是從網上買的,什么型號不太清楚,模塊上有如下標注:ELM-1882UYWB/S530-A3,C0506U。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩色视频| 一区二区三区韩国 | 中文字幕日韩欧美一区二区三区 | 成年男女免费视频网站 | 亚洲国产精品区 | 久久久久久久久久影视 | 韩日中文字幕 | 久久新 | 中文字幕人成人 | 性高湖久久久久久久久aaaaa | 亚洲一区欧美 | 日一区二区 | 玩丰满女领导对白露脸hd | 免费观看一区二区三区毛片 | 男女羞羞网站 | 一区在线视频 | 成人一级毛片 | 日韩一区二区久久 | 久久国产精品网站 | 国产精品九九九 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 三级视频网站 | 亚洲综合一区二区三区 | 毛片一区二区三区 | 国产精品久久一区二区三区 | 久久99精品视频 | 日韩在线视频一区 | 亚洲精品www. | 亚洲欧美在线视频 | 日韩精品一区二区三区四区 | 精品一区久久 | 亚洲男女激情 | 久久精品这里精品 | 成人一级视频在线观看 | 视频一区二区在线观看 | 日本二区| 国产精品高清在线 | 成人国产精品免费观看视频 | 黄网免费看 | 久久精品国产免费 | 成人羞羞国产免费视频 |