亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 單片機(jī)驅(qū)動LED發(fā)光矩陣的使用心得 [打印本頁]

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

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

#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;
   }
  }

發(fā)現(xiàn)能顯示,但有兩個問題,首先是顯示重景,每個字符都象是兩個字符錯位疊加,顯示不是很清楚,其次是顯示字符轉(zhuǎn)換時都帶著上個字符的最后一行數(shù)據(jù),效果有些別扭。經(jīng)分析,重影問題的產(chǎn)生是由于顯示時先傳送顯示數(shù)據(jù),再改變顯示行,這樣數(shù)據(jù)傳送完成后,顯示行還沒變,在舊的顯示行就顯示新的數(shù)據(jù),顯示行改變后,新的數(shù)據(jù)又在新的顯示行顯示,所以就重影。到于顯示有殘留是因為每個字符顯示完后,轉(zhuǎn)換顯示字符時,上一個字符的最后一行數(shù)據(jù)還在顯示,直到新字符的第一行顯示時才擦掉,解決這個問題就是字符顯示后將最后一行數(shù)據(jù)擦除,這樣顯示就清爽了。修改后的main()函數(shù)如下。
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 實測 用的樓主源碼,我的矩陣根本沒有顯示啊,只有數(shù)碼管有反應(yīng)
作者: dumn    時間: 2018-10-15 15:10
我用keil4 用了樓主的源碼,因為我是開發(fā)板上的源碼,就改了下引腳借口,燒錄進(jìn)去我的矩陣沒有反應(yīng),只有數(shù)碼管有反應(yīng),樓主知道怎么回事嗎
作者: 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, 下載次數(shù): 69)

微信圖片_20181016123235.jpg

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

微信圖片_20181016123242.jpg

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

微信圖片_20181016123224.jpg

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

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

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

你好!我想學(xué)你的心形矩陣led怎么做的。特別想做,但是沒有學(xué)單片機(jī)很吃力哦
這么聯(lián)系你嗎?

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

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




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1