bozai 发表于 2009-11-1 17:06:30

我也来推荐个宝贝,拆机64*32 LED点阵 28元, 我买的已经驱动成功

第一次推荐东西。

上次taobao做电源买线绕电位器,碰巧看到一个拆机64*32 点阵LED屏幕,买了一块。 今天弄了下,驱动成功。

板子上有8*8点阵模块32块, 32块74HC595,一个7805,两个7406,一个74ls138,1个74ls244, 8个IRF540 大功率MOS管。

拆机的板子,上面一半是红的,下面一半是绿的。 有个别点亮度不均匀。

数量不多,有需要可以去看看:(注,我跟卖家没关系,卖家剩下的质量怎么样我也不清楚,我这块买来都是完整的。请自行评估风险)
http://item.taobao.com/auction/item_detail.jhtml?item_id=c6a0ecea250e38f47918227a81f391c2&x_id=0db2


我写的一段小程序,mega8上用的

这个是效果:
http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498464.JPG
显示汉字 (原文件名:Resize of DSCN3530.JPG)

总共可现实8个汉字


全屏效果:有个别点比较暗
http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498465.JPG
全亮 (原文件名:Resize of DSCN3531.JPG)

测试环境:(屏需要3.5v 和 9v电源)
http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498466.JPG
测试环境,前几天刚完成的电源刚好用上,设到3.5v 限流1A (原文件名:Resize of DSCN3532.JPG)

屏的接口: 这个屏的布局是这样的,用D0~D3,控制4个横条的数据,每条里有8行LED。一整行的数据是一次传完,64bit. 每条里的每行是通过74ls138解码产生的。

http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498467.JPG
屏的接口,这里用四根线D0~D3 (原文件名:Resize of DSCN3533.JPG)


http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498469.JPG
这里面的信号时74ls138 和HC595的时钟和锁存信号 (原文件名:Resize of DSCN3534.JPG)


图中的ABC是74LS138的ABC编码输入,E是输出允许,低电平有效。 S是74HC595的锁存,Y是串行时钟,D0~D3是4排74HC595的数据输入端。


主要的芯片 74HC595: 从芯片上看,这个应该是98年的东西:
http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498471.JPG
(原文件名:Resize of DSCN3538.JPG)

http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498472.JPG
(原文件名:Resize of DSCN3539.JPG)

http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_498473.JPG
(原文件名:Resize of DSCN3535.JPG)


最后附上测试代码: 使用ATmega8
测试代码ourdev_498474.zip(文件大小:41K) (原文件名:led_Screen.zip)

连接方式是:
PB3 -> E
PB0 -> A
PB1 -> B
PB2 -> C
PD4 -> D0
PD5 -> D1
PD6 -> D2
PD7 -> D3
PD2 -> S
PD3 -> Y

wajlh 发表于 2009-11-1 17:11:45

应该是双色的点阵屏,另外一种颜色的引脚空着

bozai 发表于 2009-11-1 17:17:00

我看也以为是,不过貌似用万用表量,没反应。不是的,可能本来厂家节约成本吧,用同一套磨具

ylei12 发表于 2009-11-1 18:28:11

根据你的描述来看,这个是1/8扫描的显示屏?

dengxiaofeng 发表于 2009-11-1 18:39:41

貌似不错嘛

icer 发表于 2009-11-1 18:50:38

又见波仔啊,呵呵

bozai 发表于 2009-11-1 19:08:49

to 【3楼】 ylei12
    是的,要扫描8次显示

wahaha 发表于 2009-11-1 19:51:47

楼主的电源是自己做的?

ju748 发表于 2009-11-1 19:55:56

记号。。已经定了3片

ju748 发表于 2009-11-1 20:30:51

又多定了一片。。哈哈哈能变大矩阵了

hyz_avr 发表于 2009-11-1 20:50:12

哈哈.楼主这块屏和我第一次玩的那些很像..数据和其它信号不在同一个边的排针上..

bozai 发表于 2009-11-1 21:02:30

【7楼】 wahahayes
【9楼】 ju748还真能搞啊
【10楼】 hyz_avr 红尘我拿到手,用万用表量一下就知道了,不过如果把另一边的74ls244拆掉的话,就可以直接用另一边的了

cinderellah 发表于 2009-11-1 21:06:21

bozai又出力作了~强啊~有没有什么特效啊,左移右移,上移下移,炸开~呵呵~

luckroll 发表于 2009-11-1 21:17:46

好东西 正想下手 没了!!!

bozai 发表于 2009-11-1 21:30:53

【12楼】 cinderellah
         刚到手玩啊,还没想到能做什么东西呢,这么大东西也挺费电的,先测试一下,以后有地方用再搞吧

cjr82123 发表于 2009-11-1 22:02:04

刚看了下波的程序,条理清晰。但是有一点不明。
里面有一段:
#define LED_SCREEN_INI()         {\
                          LS138_E_DDR |= 1<<LS138_E_BIT;\
                          LS138_A_DDR |= 1<<LS138_A_BIT;\
                          LS138_B_DDR |= 1<<LS138_B_BIT;\
                          LS138_C_DDR |= 1<<LS138_C_BIT;\
                          HC595_D0_DDR |= 1<<HC595_D0_BIT;\
                          HC595_D1_DDR |= 1<<HC595_D1_BIT;\
                          HC595_D2_DDR |= 1<<HC595_D2_BIT;\
                          HC595_D3_DDR |= 1<<HC595_D3_BIT;\
                          HC595_RCK_DDR |= 1<<HC595_RCK_BIT;\
                          HC595_SRCK_DDR |= 1<<HC595_SRCK_BIT;\
                          LS138_E_L;\
                          LS138_A_L;\
                          LS138_B_L;\
                          LS138_C_L;\
                          HC595_D0_L;\
                          HC595_D1_L;\
                          HC595_D2_L;\
                          HC595_D3_L;\
                          HC595_RCK_L;\
                          HC595_SRCK_L;\
                           }
请问这里不用函数而用宏定义好处是什么呢?

lljyes 发表于 2009-11-1 22:25:54

手工焊过一块,16*16*4,都数不清飞了多少条线了!

bozai 发表于 2009-11-1 23:21:51

to 【15楼】 cjr82123
    没啥,反正只用一次,这样方便使用。 这个会直接内嵌到你调用的地方。 另外也方便移植。 改改管脚定义就能用了

cjr82123 发表于 2009-11-1 23:28:40

OK,谢谢波。

252177861 发表于 2009-11-2 00:04:59

这个真便宜,不过我手头有一块同样大小的了,难的折腾了。

WXing 发表于 2009-11-2 09:12:16

mark!

dmhs31 发表于 2009-11-2 09:19:38

真的比较便宜,现在玩08*30的双色

fool_boy 发表于 2009-11-2 09:53:34

这个要顶

csformat 发表于 2009-11-4 20:51:50

我早就有搞的说

买了2块,还赠我一块废的

偶比较会说话哈

有一块送了朋友,

另一块给我哥哥做了店内招牌的说

我用51的说

52robot 发表于 2009-11-5 10:58:48

楼主,我一直用的是ICC开发坏境。你的程序我有一些不明白的地方,请指教

/*定时器0初始化,用于显示与按键的处理*/
void Timer0_Initial()
{
        display_cnt = 0;        /*清零*/
        //TCNT0=0x00;                        /*定时初值,没有实际意义*/
        //TCCR0A=0x00;
        //TCCR0B=0x03;                /*普通模式,64分频*/
        TCCR0 = 0x03;
        TIMSK |= 1<<TOIE0;
        //TIMSK0 |= 1<<TOIE0;        /*打开溢出中断*/
        sei();                                /*打开总中断*/
}


/*定时器0的中断服务程序,用于显示与按键的处理*/
SIGNAL(TIMER0_OVF_vect)
{

Timer0中断用的是什么中断,为什么初始化程序和中断处理程序中都不用给TCNT0赋值,谢谢。

我没有WinAVR的开发环境,下载了你的程序,烧进去4排点阵中都是最后一排点亮,即从上往下的8,16,24,32排全亮。

bozai 发表于 2009-11-5 16:20:14

回楼上,

    》》 Timer0中断用的是什么中断,为什么初始化程序和中断处理程序中都不用给TCNT0赋值,谢谢。

    我用的是它的溢出中断,所以不管它,它溢出后还会从0开始继续。

    》》 我没有WinAVR的开发环境,下载了你的程序,烧进去4排点阵中都是最后一排点亮,即从上往下的8,16,24,32排全亮。
   
    这个不清楚,你查查线啥的,也有可能有一两个芯片坏了。 对了,还有就是要按照我的连法。

fy024 发表于 2009-11-5 21:55:51

mark

chengpiaopiao 发表于 2009-11-5 22:11:24

顶!!!!!!!!!!

ndust 发表于 2009-11-5 23:15:21

记号

ju748 发表于 2009-11-6 01:19:11

求教:bozai 章其波

您万用表测试好的电路能否详细说明一下或是手绘张图传上来看一下,我接上电源,3.5V我一上电就跌了,大概电流要多少?我用的是老式的电压源,确实电流上不去。

我也是ICC的忠实用户啊。。。GCC都不怎么会,只是知道而已。。。。

我的四块板是剩下的四块。。。595断脚的好几块。。。

mos管也有几块半断的。。伤了。。。。

ju748 发表于 2009-11-6 04:32:14

哈哈,已经点亮,想想还是直接用51点算了。。。

一下就好了。。。哈哈哈。。。做了个595的H全做好了贴上来

bozai 发表于 2009-11-6 08:48:48

楼上真强啊,大半夜还在搞这个

liujunjie 发表于 2009-11-6 09:16:35

我也买了两块,现在正在路上!~
【30楼】 ju748
可否把C51的程序贴出来?最好能带份电路图?嘿嘿
等我的到了,上传图片

soulcoffee 发表于 2009-11-6 09:30:48

昨天问了卖主,说还有15块.我也买了两块,等回来点一下.

cuiyun 发表于 2009-11-7 15:34:41

N98?

cdhzfl 发表于 2009-11-10 10:19:36

先顶一下!我也买了两块

joystring 发表于 2009-11-10 10:44:33

买一块回来玩玩,呵呵

liujunjie 发表于 2009-11-11 12:03:18

我的屏幕也弄好了。
下载了波的程序固件,可以的(谢谢波的分享)

但点击此处打开 ourdev_502215.jpg(文件大小:487K,只有400K以内的图片才能直接显示) (原文件名:图像000.jpg)
点击此处打开 ourdev_502216.jpg(文件大小:489K,只有400K以内的图片才能直接显示) (原文件名:图像003.jpg)
是如果重新编译一下就不可以了,出现的问题和上面一样,只有8、16、24、32行全亮,其余不亮
求救中!~???

ju748 发表于 2009-11-11 15:01:42

回复liujunjie

51下的代码已经上传至帖子 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3697006&bbs_id=9999

有图有真相啊。。。

bbsniua 发表于 2009-11-11 18:57:40

不错!

soulcoffee 发表于 2009-11-11 23:22:03

使用MSP430F149驱动的,还有其他的一些头文件ourdev_502435.rar(文件大小:147K) (原文件名:64x32LEDS.rar)

mio_a701 发表于 2009-11-12 13:40:43

的确超值啊,昨天买了两块,等待到货中。。。。。。。。。。。
谢谢推荐!!!

joystring 发表于 2009-11-12 17:15:03

用波哥的程序,改成48的编译了一下,有一半不亮,不知道怎么搞的

bozai 发表于 2009-11-12 17:26:22

奇怪,这么多有问题的,莫非时序有些问题。

【24楼】 52robot 和 【37楼】 liujunjie的问题相同,难道是时序有问题,我用的是mega8内部8M RC, 刚看了code,有一个中断用到的全局变量没初始化,不过这个编译器会把它放到未初始化段里的。GCC也都是会清零的啊。


可能是时序吧,各位把速度降下来看看是不是有问题。没有的话,就在关键的地方加几个nop吧

joystring 发表于 2009-11-12 18:26:06

我用WINAVR编译的,错误没有,警告不少,IC是ATMEGA48V,内部RC 8M,时序中间也加在了延时,还是一样,1234行不亮5678行亮后面9101112行也不亮......
隔四行亮,不知道是什么原因memset(display_buffer,0x00,256)好像没有定义。

fysisi 发表于 2009-11-12 20:17:02

我买了两块用M16 全部驱动成功!没什么问题 只是不知道字符要怎么移动。请楼主或高手上传代码来学习下


点击此处打开 ourdev_502659.jpg(文件大小:689K,只有400K以内的图片才能直接显示) (原文件名:20091111(002).jpg)
点击此处打开 ourdev_502660.jpg(文件大小:612K,只有400K以内的图片才能直接显示) (原文件名:20091111(004).jpg)

fugeone 发表于 2009-11-12 20:43:32

我买的,还在路上走。。。

52robot 发表于 2009-11-12 20:56:45

to 【43楼】 bozai 章其波
我的问题已经解决,是当时9V没有供电而直接在7805输出端5V的原因,后来万用表量了一下才知道7406的上拉电阻是用的9V的,改接12V后,爽啊。

现在已经做好了上下左右的滚屏和多字滚动显示。

fugeone 发表于 2009-11-12 22:34:08

楼上的何不贴点儿资料呢?

cdhzfl 发表于 2009-11-13 08:32:50

To 52robot: "现在已经做好了上下左右的滚屏和多字滚动显示。"



能否将程序共享或是讲下如何实现上下左右的滚屏和多字滚动显示。

bozai 发表于 2009-11-13 09:06:35

to 【44楼】 joystring
    memset是c库里的东西,这个在编译的时候相应的lib已经加上了

fugeone 发表于 2009-11-13 22:13:42

我的屏也亮了,不过我每个小点阵的最低下一行,全部不亮,不知道硬件改查哪里呢?

fugeone 发表于 2009-11-14 09:18:03

问题解决了,第8行的MOS坏了,换一个上去就好了。。。


不过有好几个点的LED会乱闪,这是为什么咧?有LED行家能指点一二么?

bozai 发表于 2009-11-14 09:50:52

如果是整行(单个8*8里)乱闪的话,那是相应的脚虚焊。单个的话,那个点可能要坏了

chengpiaopiao 发表于 2009-11-14 16:39:36

马克

csuivan 发表于 2009-11-15 10:41:27

好东西啊

fugeone 发表于 2009-11-15 11:10:31

嗯,回头到时候加上焊试一试,不行的话,怕是要拆一个补另外一个咯

fx_sjf 发表于 2009-11-17 18:23:23

多片连起来字做滚动的不知道怎么弄.哪位兄弟有做?

mio_a701 发表于 2009-11-17 19:57:31

前天才拿到,由于手头没有9V的电源,用12V试了试,貌似也能用。

deiwgah 发表于 2009-11-17 20:29:08

晕,没了,谁一起买了四块啊?

soulcoffee 发表于 2009-11-17 21:45:28

mio_a701
积分:9
派别:
等级:------
来自:
前天才拿到,由于手头没有9V的电源,用12V试了试,貌似也能用。

是可以用,我就是用旧电脑电源 是用3.3V 12V点的

fx_sjf 发表于 2009-11-18 11:42:10

12V是供什么地方的?

mghy201 发表于 2009-11-18 21:41:29

屏幕隔两行亮两行 是什么原因??

mghy201 发表于 2009-11-20 08:42:46

是138管脚短路了,新手学习,自问自答,大虾见笑了……

fx_sjf 发表于 2009-11-20 18:19:12

多片应该怎么连接?

soulcoffee 发表于 2009-11-21 20:10:03

多片连接方法
先把接口定义写出
左边接口            右边接口
地 --DO进       地 - - DO出
地 --D1进       地 - - D1出
地 --E出      地 - - E进
地 --C出      地 - - C进
地 --B出      地 - - B进
地 --A出      地 - - A进
地 --S出      地 - - S进
地 --Y出      地 - - Y进
地 --D2进       地 - - D2出
地 --D3进       地 - - D3出
可以看出来,把第一块屏的左边接口和第二块屏的右边接口一对一连接,
从级联后的最左边进D0~D3,最右边进其他的信号线E,C,B,A,S,Y.

mghy201 发表于 2009-11-22 00:42:02

谢谢楼上

mghy201 发表于 2009-11-22 00:48:08

memset  功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
  块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作
  用 法: void *memset(void *s, char ch, unsigned n);
  程序例:
  #include <string.h>
  #include <stdio.h>
  #include <memory.h>
  int main(void)
  {
  char buffer[] = "Hello world\n";
  printf("Buffer before memset: %s\n", buffer);
  memset(buffer, '*', strlen(buffer) );
  printf("Buffer after memset: %s\n", buffer);
  return 0;
  }
  输出结果:
  Buffer before memset: Hello world
  Buffer after memset: ***********
  编译平台:
  Microsoft Visual C++ 6.0
  也不一定就是把内容全部设置为ch指定的ASCII值,而且该处的ch可为int或者其他类型,并不一定要是char类型。例如下面这样:
  int array = {1,4,3,5,2};
  for(int i = 0; i < 5; i++)
  cout<<array<<" ";
  cout<<endl;
  memset(array,0,5*sizeof(int));
  for(int k = 0; k < 5; k++)
  cout<<array<<" ";
  cout<<endl;
  输出的结果就是:1 4 3 5 2
  0 0 0 0 0
  后面的表大小的参数是以字节为单位,所以,对于int或其他的就并不是都乘默认的1(字符型)了。而且不同的机器上int的大小也可能不同,所以最好用sizeof()。
  要注意的是,memset是对字节进行操作,所以上述程序如果改为
  int array = {1,4,3,5,2};
  for(int i = 0; i < 5; i++)
  cout<<array<<" ";
  cout<<endl;
  memset(array,1,5*sizeof(int));// 注意 这里与上面的程序不同
  for(int k = 0; k < 5; k++)
  cout<<array<<" ";
  cout<<endl;
  输出的结果就是:1 4 3 5 2
  16843009 16843009 16843009 16843009 16843009
  为什么呢?
  因为memset是以字节为单位就是对array指向的内存的5个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是1000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。
  所以用memset对非字符型数组赋初值是不可取的!
  楼上说的很对,只是程序执行结果是0 0 0 0;程序不同的地方不在那里。程序如下:
  int array = {1,4,3,5,2};
  for(int i = 0; i < 5; i++)
  cout<<array<<" ";
  cout<<endl;
  memset(array,1,5*sizeof(int)); //这里才是不同的地方
  for(int k = 0; k < 5; k++) //不同不在这里,k=1只是少循环了一次而已
  cout<<array<<" ";
  cout<<endl;
  例如有一个结构体Some x,可以这样清零:
  memset( &x, 0, sizeof(Some) );
  如果是一个结构体的数组Some x,可以这样:
  menset( x, 0, sizeof(Some)*10 );
[编辑本段]memset函数详细说明
  1。void *memset(void *s,int c,size_t n)
  总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。
  2。例子
  main(){
  char *s="Golden Global View";
  clrscr();
  memset(s,'G',6);//貌似这里有点问题//
  printf("%s",s);
  getchar();
  return 0;
  } 
  【这个问题相当大,程序根本就运行不下去了,你这里的S志向的是一段只读的内存,而你memset又试图修改它,所以运行时要出错,修改办法char *s修改为char s[]】
  3。memset() 函数常用于内存空间初始化。如:
  char str;
  memset(str,0,100);
  4。memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘memset(a, '\0', sizeof(a));
  memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a,b; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。
  strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:char a,b;strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。
  5.补充:某人的一点心得
  memset可以方便的清空一个结构类型的变量或数组。
  如:
  struct sample_struct
  {
  char csName;
  int iSeq;
  int iType;
  };
  对于变量
  struct sample_strcut stTest;
  一般情况下,清空stTest的方法:
  stTest.csName='\0';
  stTest.iSeq=0;
  stTest.iType=0;
  用memset就非常方便:
  memset(&stTest,0,sizeof(struct sample_struct));
  如果是数组:
  struct sample_struct TEST;
  则
  memset(TEST,0,sizeof(struct sample_struct)*10);
  6。strcpy
  原型:extern char *strcpy(char *dest,char *src);
  用法:#i nclude
  功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
  返回指向dest的指针。
  memcpy
  原型:extern void *memcpy(void *dest, void *src, unsigned int count);
  用法:#i nclude
  功能:由src所指内存区域复制count个字节到dest所指内存区域。
  说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
  memset
  原型:extern void *memset(void *buffer, int c, int count);
  用法:#i nclude
  功能:把buffer所指内存区域的前count个字节设置成字符c。
  说明:返回指向buffer的指针。

dshijiang 发表于 2009-11-22 17:23:45

怎么淘宝的价格是100啦~~我也想弄一块来玩那东西哦·

soulcoffee 发表于 2009-11-23 14:28:53

100居然也能卖出去一块??

soulcoffee 发表于 2009-11-23 14:30:30

看清楚了是四块一起卖的。

fx_sjf 发表于 2009-11-23 17:30:30

哪位兄弟搞出滚动字幕吗?

chengpiaopiao 发表于 2009-11-24 17:48:17

郁闷啊,前几天把它点亮了,今天再测试一下,居然不亮了,找了半天,才发现3.5V的电源和9V的电源接反了……是不是屏烧了?哪位大哥帮帮忙?

sange 发表于 2009-11-26 02:32:10

楼主能把你的电源开源出来吗?

zyn10101010 发表于 2009-11-29 18:27:34

mark

jackmo 发表于 2009-12-2 13:29:16

我也有一块,,还没点

fx_sjf 发表于 2009-12-5 20:03:06

大家都买回去做什么了?

fx_sjf 发表于 2009-12-5 20:04:14

有什么新的玩法

submars 发表于 2009-12-8 12:46:57

【72楼】 chengpiaopiao 菜鸟
积分:165
派别:
等级:------
来自:湖南衡阳人在河北
  郁闷啊,前几天把它点亮了,今天再测试一下,居然不亮了,找了半天,才发现3.5V的电源和9V的电源接反了……是不是屏烧了?哪位大哥帮帮忙?


可能是把IRF540烧了吧?所有540的第2脚都接的是+3.5V

随便问一下,这个+3.5V能不能用7805输出的+5V降压来用?如果能的话就可以改成单电源供电了。

soulcoffee 发表于 2009-12-8 15:22:10

3.5V的电流很大,用7805会烧坏的。
关于滚动屏幕,我已经做出来左移的效果,
具体做法是改为纵向取模,需要滚动直接移动内存就行了,不用每个字节移位了。

soulcoffee 发表于 2009-12-8 17:41:14

我写的这个屏的驱动程序。可以静态和滚动两种方式显示字符汉字。
点击此处下载 ourdev_512047.rar(文件大小:18K) (原文件名:新建文件夹.rar)

soulcoffee 发表于 2009-12-8 17:41:49

//=============================================================================
//函 数 名: GUI_Refresh()
//功    能:显示刷新程序,每次刷新一行
//入口参数: 无
//出口参数: 无
//返 回 值: 无
//注    意:间隔2ms调用此函数一次
//=============================================================================
void GUI_Refresh(void)
{
static        unsigned char ScanCount; /*用于定时显示数码管的位数*/
        unsigned char i;
       

                for(i=0;i<64;i++)
                {
                        HC595_D0 = ! (Display_Buffer & Bit_Mask) ;
                        HC595_D1 = ! (Display_Buffer & Bit_Mask) ;
                        HC595_D2 = ! (Display_Buffer & Bit_Mask) ;
                        HC595_D3 = ! (Display_Buffer & Bit_Mask) ;
       
            HC595_SRCK_L;
                        HC595_SRCK_H;
                }

        LS138_E_H;
    HC595_RCK_L;
    HC595_RCK_H;
        switch(ScanCount)
        {
                case 0: LS138_C_L;LS138_B_L;LS138_A_H;break;
                case 1: LS138_C_L;LS138_B_H;LS138_A_L;break;
                case 2: LS138_C_L;LS138_B_H;LS138_A_H;break;
                case 3: LS138_C_H;LS138_B_L;LS138_A_L;break;
                case 4: LS138_C_H;LS138_B_L;LS138_A_H;break;
                case 5: LS138_C_H;LS138_B_H;LS138_A_L;break;
                case 6: LS138_C_H;LS138_B_H;LS138_A_H;break;
                case 7: LS138_C_L;LS138_B_L;LS138_A_L;break;
                default: ScanCount=0;break;
        }
        LS138_E_L;
        ScanCount++;
        if(ScanCount==8)ScanCount=0;               
}

soulcoffee 发表于 2009-12-8 17:42:30

//=============================================================================
//函 数 名: GUI_Scroll()
//功    能: 滚动显示
//入口参数: times:滚动次数,ms:滚动间隔时间
//出口参数: 无
//返 回 值: 无
//=============================================================================
void GUI_Scroll(INT16U times, INT16U ms)
{
          INT16U i,j;
          INT16U scroll_size;
          scroll_size = GUI_GetScrollSize()+SCREEN_XSIZE;
          while(times--)
          for(i = 0 ; i < scroll_size;i++)
                {
                       
                        for(j = 0; j <SCREEN_XSIZE; j++)
                        {
                                if((j + i < scroll_size)&&((j + i) > SCREEN_XSIZE))
                                {
                                        Display_Buffer = Scroll_Buffer;
                                        Display_Buffer = Scroll_Buffer;                       
                                } else {
                                       Display_Buffer = 0;
                                       Display_Buffer = 0;
                                }
                        }
                        Delay_ms(ms);
                }
}

submars 发表于 2009-12-8 21:14:41

昨晚上用AD winter09 把原理图画了一下,希望大家指正。

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3754056&bbs_id=1041

soulcoffee 发表于 2009-12-11 20:50:25

也秀一下我自己搞的,
使用废电脑电源供电,3.5V用3.3V,9V用12V供电,经试验,运行状况良好。
可以用串口下载显示内容,掉电保存使用的是24c128(目前功能没调试好)。
使用STC12C5A60S2+22.1184M晶振控制显示.板子是我以前自己做的板子,DS1302+DS18b20+16K SRAM+8255
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_513279.jpg
(原文件名:上位机.jpg)
http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_513519.JPG
(原文件名:DSC00083.JPG(1).JPG)

http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_513520.JPG
(原文件名:DSC00084.JPG(1).JPG)

http://cache.amobbs.com/bbs_upload782111/files_23/ourdev_513521.JPG
(原文件名:DSC00086.JPG(1).JPG)


点击此处下载 ourdev_513280.rar(文件大小:237K) (原文件名:LED64x32.rar)
点击此处下载 ourdev_513281.rar(文件大小:935K) (原文件名:LED屏控制上位机VC++.rar)

534117403 发表于 2009-12-11 21:50:42

http://item.taobao.com/auction/item_detail-0db2-c9edc88d390976be6d84e52c5be54582.htm?cm_cat=0&pm1=1
这还有一个,不知道能不能驱上

fx_sjf 发表于 2009-12-12 10:48:16

不错,多片连起来更爽.

yanxinboy 发表于 2009-12-23 12:46:39

刚开始还有28片.我在他家买过东西. 跟老板说好了买的, 后来忙家里的事情忘记拉. 可惜啊

那位上海的兄弟可以转让我一块啊. 感谢.

三十岁学单片机作为业余爱好.有什么说的不对的请指教.

bitant 发表于 2010-1-5 19:42:01

哪里可以买啊,我也来实验下。

zheshiwo 发表于 2010-1-6 17:16:03

回复【86楼】534117403
http://item.taobao.com/auction/item_detail-0db2-c9edc88d390976be6d84e52c5be54582.htm?cm_cat=0&amp;pm1=1
这还有一个,不知道能不能驱上
-----------------------------------------------------------------------

这个好象也有人买啊,是不是还不行啊?

hongyancl 发表于 2010-1-6 19:38:48

回复【楼主位】bozai 章其波
-----------------------------------------------------------------------

好东西

duxingkei 发表于 2010-1-7 20:05:25

马克

chenloveyj 发表于 2010-1-13 10:41:43

不是卖100吗?昏。。

fshunj 发表于 2010-1-13 13:44:47

yun

honey655729 发表于 2010-1-13 22:02:30

有哪位朋友愿意分一块给我啊,我也想要一块,那里现在没得买了

armok 发表于 2010-2-14 17:44:54

此帖子原来属于淘宝超值区。此区由于我们实施100%的纯技术论坛而关闭。有价值的帖子移到相应的技术论坛内。

armok 发表于 2010-2-14 17:47:43

以下蓝色文字由坛主:armok 于:2010-02-14,17:47:43 加入。<font color=black>请发贴人注意:本贴放在这分区不合适,即将移走
原来分区:淘宝超值宝贝推介
即将移去的分区:AVR (原ourAVR.com) 技术论坛
移动执行时间:自本贴发表0小时后
任何的疑问或咨询,请可随时联系站长。谢谢你的支持!</font>

fx_sjf 发表于 2010-2-15 17:54:22

不错,资料还在。上次搞了4片还没驱动成功,呵呵

sophy.lin 发表于 2010-3-4 09:15:01

才一个138.怎么做32行的扫描啊,强烈希望LZ把这行驱动电路说一下,最好画出来

281638360 发表于 2010-7-27 15:50:17

妈妈的,涨价了。。。100了
页: [1] 2
查看完整版本: 我也来推荐个宝贝,拆机64*32 LED点阵 28元, 我买的已经驱动成功