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

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)矩陣LED不能實(shí)現(xiàn)的效果

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:466499 發(fā)表于 2019-1-17 22:00 來(lái)自手機(jī) | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
前幾天在論壇得到許多大佬的指導(dǎo)成功驅(qū)動(dòng)了36個(gè)LED燈。目前還是很懵逼,12列全部高電平也就是LED1-12為全為1,y=0xfff;  第一行L1置低,第二第三行L2-L3置高x=0x6;第一行的綠燈全亮。如何實(shí)現(xiàn),第一行的綠燈從1號(hào)燈開(kāi)始一個(gè)一個(gè)滅到12號(hào)燈,在1號(hào)綠燈滅的同時(shí)第三行的從25號(hào)燈一個(gè)一個(gè)亮到36號(hào),1滅,25亮。2滅,26亮。3滅,27亮。4滅,28亮。5滅29亮…。貌似靜態(tài)顯示和動(dòng)態(tài)顯示都不能實(shí)現(xiàn)

IMG_20190111_112752.jpg (981.41 KB, 下載次數(shù): 32)

IMG_20190111_112752.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:21069 發(fā)表于 2019-1-18 02:39 | 只看該作者
貌似?當(dāng)時(shí)誰(shuí)提出來(lái)點(diǎn)亮幾十個(gè)LED時(shí)我說(shuō)用點(diǎn)陣做,但是,你卻沒(méi)有按點(diǎn)陣的思路來(lái)操作!如果是按點(diǎn)陣方式來(lái)做應(yīng)該是8個(gè)I/O取縱,其于取橫!這樣你要點(diǎn)一個(gè)燈時(shí)用取模軟件直接取模就得到數(shù)組值就OK的,也不用復(fù)雜的計(jì)算。這就同點(diǎn)陣點(diǎn)一個(gè)燈是一樣的。

評(píng)分

參與人數(shù) 1黑幣 +15 收起 理由
#include51.h + 15 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:123289 發(fā)表于 2019-1-18 08:20 | 只看該作者
你的空間想力不夠啊。
建議:
每6ms切換一行顯示,一直永遠(yuǎn)循環(huán)。試試吧。
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2019-1-18 11:28 | 只看該作者
給你寫(xiě)一個(gè)示例程序,因?yàn)橛肔ED仿真視覺(jué)不好,用LED點(diǎn)陣屏代替演示。


#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit code0 =P2^0;//列
sbit code1 =P2^1;
sbit code2 =P2^2;
sbit code3 =P2^3;
sbit code4 =P2^4;
sbit code5 =P2^5;
sbit code6 =P2^6;
sbit code7 =P2^7;
sbit code8 =P0^0;
sbit code9 =P0^1;
sbit code10=P0^2;
sbit code11=P0^3;

sbit Column0=P1^0;//行
sbit Column1=P1^1;
sbit Column2=P1^2;       

uint  code table[]={0x001,0x002,0x004,0x008,0x010,0x020,0x040,0x080,0x100,0x200,0x400,0x800,0x0fff};
uint num=0x0000;
uchar i,j,k;
bit a;
void PX(uint i)                                        //寫(xiě)入12位數(shù)據(jù)
{   
    code0 =i&0x01;i>>=1;       
    code1 =i&0x01;i>>=1;
    code2 =i&0x01;i>>=1;
    code3 =i&0x01;i>>=1;
    code4 =i&0x01;i>>=1;
    code5 =i&0x01;i>>=1;
    code6 =i&0x01;i>>=1;
    code7 =i&0x01;i>>=1;       
    code8 =i&0x01;i>>=1;
    code9 =i&0x01;i>>=1;
    code10=i&0x01;i>>=1;
    code11=i&0x01;
}
void Timer0Init(void)                //1毫秒@12.000MHz
{
        TMOD |= 0x01;                //設(shè)置定時(shí)器模式
        TL0 = 0x18;                //設(shè)置定時(shí)初值
        TH0 = 0xFC;                //設(shè)置定時(shí)初值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
        EA=1;                        //開(kāi)總中斷
        ET0=1;                        //開(kāi)T0中斷
}

void main()
{        
        Timer0Init();
        PX(0x0000);
        while(1)               
        {
                if(a==1)
                {
                        a=0;
                        switch(j)//動(dòng)態(tài)逐行顯示
                        {
                                case 0:
                                        P1&=0xf8;//P1低3位清0
                                        P1|=0x01;//P1低3位賦值
                                        num&=0xf000;//num低12位清0
                                        num|=table;//num低12位賦值
                                        PX(num);j++;//num值寫(xiě)入列端口
                                break;

                                case 1:
                                        P1&=0xf8;
                                        P1|=0x02;
                                        num&=0xf000;
                                        num|=table;
                                        PX(num);j++;
                                break;

                                case 2:
                                        P1&=0xf8;
                                        P1|=0x04;
                                        num&=0xf000;
                                        num|=table;
                                        PX(num);j=0;
                                break;
                        }
                        if(++k==3)//流水燈
                        {               
                                k=0;
                                i++;
                                if(i==12) i=0;
                        }
                }
        }                                                                               
}
void timer0() interrupt        1
{
        TL0 = 0x18;                //設(shè)置定時(shí)初值
        TH0 = 0xFC;                //設(shè)置定時(shí)初值
        a=1;
}

回復(fù)

使用道具 舉報(bào)

5#
ID:466499 發(fā)表于 2019-1-18 12:41 來(lái)自手機(jī) | 只看該作者
yzwzfyz 發(fā)表于 2019-1-18 08:20
你的空間想力不夠啊。
建議:
每6ms切換一行顯示,一直永遠(yuǎn)循環(huán)。試試吧。

動(dòng)態(tài)顯示確實(shí)讓我很懵逼,6ms切換一行一直循環(huán)人眼看到的就是全亮了啊。1號(hào)燈滅的同時(shí)25號(hào)燈亮,逐個(gè)移位過(guò)去,靜態(tài)和動(dòng)態(tài)都不能實(shí)現(xiàn)
回復(fù)

使用道具 舉報(bào)

6#
ID:466499 發(fā)表于 2019-1-18 12:43 來(lái)自手機(jī) | 只看該作者
weidoit 發(fā)表于 2019-1-18 12:05

謝謝大神!我試試
回復(fù)

使用道具 舉報(bào)

7#
ID:466499 發(fā)表于 2019-1-18 12:44 來(lái)自手機(jī) | 只看該作者
真心感謝你們
回復(fù)

使用道具 舉報(bào)

8#
ID:149389 發(fā)表于 2019-1-18 12:48 | 只看該作者

  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit Green_En=P1^0;
  5. sbit Blue_En=P1^1;
  6. sbit Red_En=P1^2;
  7. uchar index;
  8. uchar num;

  9. //綠色逐個(gè)熄滅
  10. uint code Green[]=
  11. {
  12.   0x0fff,0x07ff,0x03ff,0x01ff,0x00ff,0x007f,0x003f,0x001f,0x000F,0x0007,0x0003,0x0001,0x0000,
  13. };
  14. //藍(lán)色拉幕效果
  15. uint code Blue[]=
  16. {
  17.   0x0801,0x0402,0x0204,0x0108,0x0108,0x0090,0x0060,0x00f0,0x01F8,0x03FC,0x7FE,0x0FFF,0x0000,
  18. };
  19. //紅色逐個(gè)點(diǎn)亮
  20. uint code Red[]=
  21. {
  22.   0x0000,0x0001,0x0003,0x0007, 0x000F,0x001f,0x003f,0x007f,0x00ff,0x01ff,0x03ff,0x07ff,0x0fff,
  23. };
  24. //延時(shí)
  25. void delay5ms(void)   //誤差 0us
  26. {
  27.     unsigned char a,b;
  28.     for(b=185;b>0;b--)
  29.         for(a=12;a>0;a--);
  30. }
  31. //主程序
  32. void main()
  33. {
  34.   while(1)
  35.   { //從數(shù)組中讀取數(shù)據(jù)送至 P3 和 P2 口顯示
  36.     for (index=0;index<60;index++)                //累計(jì)xx次,換下一幀效果。
  37.     {
  38.       P3=Green[num]/256;
  39.       P2=Green[num]%256;
  40.       Green_En=0;
  41.       delay5ms();
  42.       Green_En=1;

  43.       P3=Blue[num]/256;
  44.       P2=Blue[num]%256;
  45.       Blue_En=0;
  46.       delay5ms();
  47.       Blue_En=1;

  48.       P3=Red[num]/256;
  49.       P2=Red[num]%256;
  50.       Red_En=0;
  51.       delay5ms();
  52.       Red_En=1;
  53.     }
  54.     num++;
  55.     num=num%13; //到達(dá)幀數(shù),從新開(kāi)始。
  56.   }
  57. }



復(fù)制代碼
附上Proteus仿真結(jié)果。






回復(fù)

使用道具 舉報(bào)

9#
ID:466499 發(fā)表于 2019-1-18 12:48 來(lái)自手機(jī) | 只看該作者
wulin 發(fā)表于 2019-1-18 11:28
給你寫(xiě)一個(gè)示例程序,因?yàn)橛肔ED仿真視覺(jué)不好,用LED點(diǎn)陣屏代替演示。



非常感謝!無(wú)以言表我試試,雖然現(xiàn)在還不是很理解
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久模特 | 欧美a级成人淫片免费看 | 久久久久久久久国产 | 婷婷激情综合 | 午夜在线小视频 | 国产日韩久久 | 色播99 | 国产色片 | 一区二区三区不卡视频 | 免费人成激情视频在线观看冫 | 日韩av视屏 | 国产精品视频久久 | 成年人在线观看 | 欧美日韩国产一区二区三区 | 国产精品国产精品国产专区不片 | 久久成人免费视频 | 国产一区二区在线免费 | 欧美aaaaa| 国产95在线| 国产精品久久久久久久久大全 | 亚洲国产精品一区二区三区 | 久久久久久av | 成人福利视频 | 成年网站在线观看 | 在线婷婷| 中文字幕亚洲精品 | 成人精品视频在线 | av入口| 伊人久久伊人 | 免费观看一级黄色录像 | 福利一区在线观看 | 99re6在线 | 欧美网址在线观看 | 九九热精品视频在线观看 | 成人久久18免费网站图片 | 欧美一级在线免费观看 | 中文字幕一区二区三区在线观看 | 日韩av一区在线观看 | 日本aⅴ中文字幕 | 少妇性l交大片免费一 | 色视频成人在线观看免 |