找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我自己用8×8連16×16,為什么不能用啊,只有第八行和第16行亮

[復制鏈接]
跳轉到指定樓層
樓主
ID:453993 發(fā)表于 2018-12-25 01:33 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


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

使用道具 舉報

沙發(fā)
ID:446674 發(fā)表于 2018-12-25 09:16 | 只看該作者
請說清楚問題,發(fā)照片、程序、電路圖
回復

使用道具 舉報

板凳
ID:155507 發(fā)表于 2018-12-25 09:25 | 只看該作者
程序呢?線路圖呢?什么都沒有,人家想幫你也幫不上呀

我給你來個試試
  1. /*-----------------------------------------------
  2.   名稱:595控制4漢字點陣屏
  3.   修改:無 51單片機
  4.   內容:屏+5V、GND連接電源5V
  5.         P0.0-P0.3分別連接A、B、C、D,用于控制16行,通過2路HC138控制
  6.         SCK時鐘連接P2.5
  7.         LATCH鎖存連接P2.6
  8.         R1紅色數(shù)據(jù)信號連接至P0.4
  9.         G1綠色數(shù)據(jù)信號連接至P2.4,如果使用單紅色屏此信號無需連接
  10.         OE使能端一般接GND,可以用IO引腳PWM控制亮度
  11.         或者使用此引腳控制拖尾現(xiàn)象。
  12.   現(xiàn)象:使用普通速度51系列單片機。單個漢字屏出現(xiàn)紅色“德”
  13. ------------------------------------------------*/
  14. #include<reg52.h>

  15. sbit T_STR = P2^6;       //鎖存引腳,屏上標識位STR
  16. sbit R1    = P0^4;       //數(shù)據(jù)引腳,屏上標識R1
  17. sbit G1    = P2^4;       //數(shù)據(jù)引腳,屏上標識G1
  18. sbit T_CLK = P2^5;       //時鐘引腳,屏上標識位CLK
  19. sbit OE    = P2^1;       //使能引腳,屏上標識EN/OE

  20. unsigned char tab[8];
  21. unsigned char DIS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//行數(shù)據(jù)

  22. /*-----------------------------------------------
  23.              16x16漢字取模數(shù)據(jù)
  24. ------------------------------------------------*/
  25. unsigned char code hztest[][32]=    //二維數(shù)組,目的是減少運算,可以用最基本的一維數(shù)組,每個漢字有32個字節(jié)數(shù)據(jù)
  26. {
  27. /*--  文字:  德  --*/
  28. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  29. 0x08,0x02,0x08,0x02,0xF4,0x7F,0x02,0x02,0xE9,0x3F,0x28,0x25,0x24,0x25,0xE6,0x3F,
  30. 0x05,0x00,0xF4,0x7F,0x04,0x02,0x04,0x24,0xA4,0x44,0xA4,0x50,0x94,0x10,0x04,0x1F,

  31. /*--  文字:  飛  --*/
  32. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  33. 0x00,0x00,0xFF,0x03,0x00,0x02,0x00,0x22,0x00,0x12,0x00,0x0A,0x00,0x06,0x00,0x0A,
  34. 0x00,0x12,0x00,0x22,0x00,0x04,0x00,0x04,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x40,

  35. /*--  文字:  萊  --*/
  36. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  37. 0x10,0x04,0x10,0x04,0xFF,0x7F,0x90,0x04,0x80,0x00,0xFC,0x1F,0x80,0x00,0x88,0x08,
  38. 0x90,0x04,0xFE,0x3F,0xC0,0x01,0xA0,0x02,0x90,0x04,0x8C,0x18,0x83,0x60,0x80,0x00,
復制代碼



led16x16_2.jpg (277.76 KB, 下載次數(shù): 13)

led16x16_2.jpg
回復

使用道具 舉報

地板
ID:155507 發(fā)表于 2018-12-25 10:03 | 只看該作者

  1. /*-----------------------------------------------
  2.   名稱:595控制4漢字點陣屏
  3.   修改:無 51單片機
  4.   內容:屏+5V、GND連接電源5V
  5.   現(xiàn)象:使用普通速度51系列單片機。單個漢字屏出現(xiàn)紅色“德”
  6. ------------------------------------------------*/
  7. #include<reg52.h>

  8. sbit T_STR = P2^6;       //鎖存引腳,屏上標識位STR
  9. sbit R1    = P0^4;       //數(shù)據(jù)引腳,屏上標識R1
  10. sbit G1    = P2^4;       //數(shù)據(jù)引腳,屏上標識G1
  11. sbit T_CLK = P2^5;       //時鐘引腳,屏上標識位CLK
  12. sbit OE    = P2^1;       //使能引腳,屏上標識EN/OE

  13. unsigned char tab[8];
  14. unsigned char DIS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//行數(shù)據(jù)

  15. /*-----------------------------------------------
  16.              16x16漢字取模數(shù)據(jù)
  17. ------------------------------------------------*/
  18. unsigned char code hztest[][32]=    //二維數(shù)組,目的是減少運算,可以用最基本的一維數(shù)組,每個漢字有32個字節(jié)數(shù)據(jù)
  19. {
  20. /*--  文字:  德  --*/
  21. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  22. 0x08,0x02,0x08,0x02,0xF4,0x7F,0x02,0x02,0xE9,0x3F,0x28,0x25,0x24,0x25,0xE6,0x3F,
  23. 0x05,0x00,0xF4,0x7F,0x04,0x02,0x04,0x24,0xA4,0x44,0xA4,0x50,0x94,0x10,0x04,0x1F,

  24. /*--  文字:  飛  --*/
  25. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  26. 0x00,0x00,0xFF,0x03,0x00,0x02,0x00,0x22,0x00,0x12,0x00,0x0A,0x00,0x06,0x00,0x0A,
  27. 0x00,0x12,0x00,0x22,0x00,0x04,0x00,0x04,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x40,

  28. /*--  文字:  萊  --*/
  29. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  30. 0x10,0x04,0x10,0x04,0xFF,0x7F,0x90,0x04,0x80,0x00,0xFC,0x1F,0x80,0x00,0x88,0x08,
  31. 0x90,0x04,0xFE,0x3F,0xC0,0x01,0xA0,0x02,0x90,0x04,0x8C,0x18,0x83,0x60,0x80,0x00,

  32. };
  33. /*-----------------------------------------------
  34.              向595寫入一個字節(jié) 單紅色
  35. ------------------------------------------------*/
  36. void InputByte( unsigned  char DataR1) //寫一個字節(jié)
  37. {
  38. unsigned  char i;
  39. for(i=8; i>0; i--)
  40. {
  41. R1 = !(DataR1&0x01);                  
  42. T_CLK = 0;
  43. T_CLK = 1;
  44. DataR1 = DataR1 >> 1;
  45. }
  46. }
  47. /*-----------------------------------------------
  48.              向595寫入兩個字節(jié) 雙色
  49. ------------------------------------------------*/
  50. /*
  51. void Input2Byte( unsigned  char DataR1,unsigned  char DataG1) //寫一個字節(jié)
  52. {
  53. unsigned  char i;
  54. for(i=8; i>0; i--)
  55. {
  56. R1 = !(DataR1&0x01);   
  57. G1 = !(DataG1&0x01);               
  58. T_CLK = 0;
  59. T_CLK = 1;
  60. DataR1 = DataR1 >> 1;
  61. DataG1 = DataG1 >> 1;
  62. }
  63. }
  64. */

  65. /*-----------------------------------------------
  66.             初始化定時器,做為動態(tài)掃描
  67. ------------------------------------------------*/
  68. void Init_Timer1(void)
  69. {
  70. TMOD |= 0x10;                             
  71. EA=1;                      //總中斷使能
  72. ET1=1;                     //定時中斷使能
  73. TR1=1;                     //打開定時器開關
  74. }


  75. /*-----------------------------------------------
  76.                       主程序
  77. ------------------------------------------------*/
  78. main()
  79. {
  80. Init_Timer1(); //初始化定時器

  81. while(1)
  82. {
  83.   //可以加入其它的控制程序
  84. }
  85. }

  86. /*-----------------------------------------------
  87.              定時器執(zhí)行動態(tài)掃描
  88. ------------------------------------------------*/
  89. void Timer1_isr(void) interrupt 3
  90. {

  91. static unsigned char count,j;
  92. unsigned char i;
  93. TH1=0xff;                //重裝初值
  94. TL1=0;


  95. T_STR=0;       //鎖存釋放
  96.    
  97. for(j=0;j<1;j++) //取每個漢字的前2個字節(jié),數(shù)據(jù)傳輸完成后鎖存輸出即可 j表示漢字個數(shù),如果是3個漢字屏就可以修改成3
  98.         {
  99.     InputByte(~hztest[j][i]);
  100.     InputByte(~hztest[j][i+1]);
  101.         }
  102. OE=1;  //暫時關閉屏幕,防止出現(xiàn)鬼影,如果沒有使用該引腳控制則會出現(xiàn)拖影現(xiàn)象。
  103. T_STR=1;      //鎖存有效,此時一行的數(shù)據(jù)顯示到屏上
  104. P0=DIS[15-count]|0xf0;//用P0口的前4位控制16行,屏內部通過4-16譯碼器工作,循環(huán)掃描其他15行
  105. OE=0;//使能
  106. count++;
  107. i+=2;              //累加調用下一行數(shù)據(jù)
  108. if(count==16)
  109.     count=0;
  110. if(i==32)
  111.     i=0;

  112. }
復制代碼
回復

使用道具 舉報

5#
ID:453993 發(fā)表于 2018-12-25 10:50 來自觸屏版 | 只看該作者
Arvin0011 發(fā)表于 2018-12-25 09:16
請說清楚問題,發(fā)照片、程序、電路圖

#include <reg51.h>
unsigned char i;
sbit DATA1=P3^7;
sbit DATA2=P3^5;
sbit CLCK1=P3^6;
sbit CLCK2=P3^4;
#define uchar unsigned char
#define uint unsigned int
void shuru_1();
void shuru_2();
unsigned char num,k,temp1,temp2,zuo=0;
unsigned int timecount;
unsigned char code lie[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*74hc154顯示代碼從左到右16列依次選通*/
unsigned char code hang[288]={
0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,

0x02,0x02,0x0A,0xEA,0xAA,0xAA,0xAA,0xAF,0xAA,0xAA,0xAA,0xEA,0x0A,0x02,0x02,0x00,
0x82,0x4A,0x2A,0x1E,0x0B,0x4A,0x8A,0x7A,0x02,0xFA,0x4B,0x4A,0x4A,0xFA,0x02,0x00,

0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,

0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,

0x40,0x40,0xC0,0x5F,0x55,0x55,0xD5,0x55,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,
0x20,0x60,0x3F,0x25,0x15,0x15,0xFF,0x90,0x47,0x29,0x11,0x2D,0x43,0x80,0x80,0x00,

0x10,0x10,0xD0,0xFF,0x90,0x10,0x44,0x54,0xD4,0x74,0x5F,0x54,0xD4,0x54,0x44,0x00,
0x04,0x03,0x00,0xFF,0x00,0x01,0x12,0x11,0x14,0x14,0xFF,0x14,0x14,0x11,0x12,0x00,


0x00,0xF8,0x0C,0x0B,0x08,0x08,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x43,0x80,0x40,0x3F,0x00,0x00,


0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,0x20,0x7F,0x00,0x00,

0x10,0x60,0x02,0x8C,0x00,0xF0,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x04,0x04,0x7E,0x01,0x00,0xFF,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0xFF,0x00,0x00,

};
void shuru_1()
{uchar t;
for(t=0;t<8;t++)
{
temp1<<=1;
DATA1=CY;
CLCK1=1;
CLCK1=0;
}
}
void shuru_2()
{
uchar t;
for(t=0;t<8;t++)
{
temp2<<=1;
DATA2=CY;
CLCK2=1;
CLCK2=0;
}
}
void main(void)
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void serve_led()interrupt 1 using 0
{ k=2;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
P2=0xff;
P2 = lie[num];
temp1=hang[num*2+zuo];
shuru_1();
P2 = lie[num];
temp2=hang[zuo+(num*2+1)];
shuru_2();
num++;
if(num==16)
{
num=0;
}
timecount++;
if(timecount==100)
{num=0;
timecount=0;
zuo=zuo+2;
if(zuo==272)
{
zuo=0;
}
}
}

75b1c773b64caa50.png (82.57 KB, 下載次數(shù): 12)

75b1c773b64caa50.png
回復

使用道具 舉報

6#
ID:453993 發(fā)表于 2018-12-25 11:01 來自觸屏版 | 只看該作者
angmall 發(fā)表于 2018-12-25 09:25
程序呢?線路圖呢?什么都沒有,人家想幫你也幫不上呀

我給你來個試試

#include <reg51.h>
unsigned char i;
sbit DATA1=P3^7;
sbit DATA2=P3^5;
sbit CLCK1=P3^6;
sbit CLCK2=P3^4;
#define uchar unsigned char
#define uint unsigned int
void shuru_1();
void shuru_2();
unsigned char num,k,temp1,temp2,zuo=0;
unsigned int timecount;
unsigned char code lie[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*74hc154顯示代碼從左到右16列依次選通*/
unsigned char code hang[288]={
0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,

0x02,0x02,0x0A,0xEA,0xAA,0xAA,0xAA,0xAF,0xAA,0xAA,0xAA,0xEA,0x0A,0x02,0x02,0x00,
0x82,0x4A,0x2A,0x1E,0x0B,0x4A,0x8A,0x7A,0x02,0xFA,0x4B,0x4A,0x4A,0xFA,0x02,0x00,

0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,

0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,

0x40,0x40,0xC0,0x5F,0x55,0x55,0xD5,0x55,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,
0x20,0x60,0x3F,0x25,0x15,0x15,0xFF,0x90,0x47,0x29,0x11,0x2D,0x43,0x80,0x80,0x00,

0x10,0x10,0xD0,0xFF,0x90,0x10,0x44,0x54,0xD4,0x74,0x5F,0x54,0xD4,0x54,0x44,0x00,
0x04,0x03,0x00,0xFF,0x00,0x01,0x12,0x11,0x14,0x14,0xFF,0x14,0x14,0x11,0x12,0x00,


0x00,0xF8,0x0C,0x0B,0x08,0x08,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x43,0x80,0x40,0x3F,0x00,0x00,


0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,0x20,0x7F,0x00,0x00,

0x10,0x60,0x02,0x8C,0x00,0xF0,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x04,0x04,0x7E,0x01,0x00,0xFF,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0xFF,0x00,0x00,

};
void shuru_1()
{uchar t;
for(t=0;t<8;t++)
{
temp1<<=1;
DATA1=CY;
CLCK1=1;
CLCK1=0;
}
}
void shuru_2()
{
uchar t;
for(t=0;t<8;t++)
{
temp2<<=1;
DATA2=CY;
CLCK2=1;
CLCK2=0;
}
}
void main(void)
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void serve_led()interrupt 1 using 0
{ k=2;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
P2=0xff;
P2 = lie[num];
temp1=hang[num*2+zuo];
shuru_1();
P2 = lie[num];
temp2=hang[zuo+(num*2+1)];
shuru_2();
num++;
if(num==16)
{
num=0;
}
timecount++;
if(timecount==100)
{num=0;
timecount=0;
zuo=zuo+2;
if(zuo==272)
{
zuo=0;
}
}
}

75b1c773b64caa50.png (82.57 KB, 下載次數(shù): 12)

75b1c773b64caa50.png
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表