打印

自制16*32点阵显示问题,用8个8*8点阵焊接的

[复制链接]
4581|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 sun520up 于 2011-5-28 11:50 编辑

第一行和第十七行会有显示是什么原因的?有些LED还不是很亮:handshake
列采用两片74HC154,一个接p1.0~P1.3,一个接P1.4~P1.7,控制32列,用32个S8550三极管驱动。行用两片74HC245驱动,上半部分接P0下半部分接P2
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define hang1 P0      //hang1为点阵的上八行
#define hang2 P2     //hang2为点阵的下八行
#define lie P1           //P1口控制32列,P1.0~P1.3控制前16列,P1.4~P1.7控制后16列
sbit CS1=P3^0;  //CS1为低电平时选通第一个74HC154
sbit CS2=P3^1;  //CS2为低电平时选通第二个74HC154
uchar code date[]=
{

0x00,0x00,0x10,0x00,0x10,0x80,0x10,0x40,0x10,0x20,0x10,0x18,0x10,0x06,0xFF,0x01,
0x10,0x00,0x10,0x00,0x10,0x40,0x10,0x80,0x10,0x40,0xF0,0x3F,0x00,0x00,0x00,0x00,/*"力",0*/
0x40,0x40,0x40,0x40,0x40,0x40,0xDF,0x57,0x55,0x55,0x55,0x55,0x55,0x55,0xD5,0x7F,
0x55,0x55,0x55,0x55,0x55,0x55,0xDF,0x57,0x40,0x50,0x40,0x40,0x40,0x40,0x00,0x00,/*"量",1*/

};
void delay(uint z)
{
uchar x,y;
for(x=z;x>0;x--)
  for(y=10;y>0;y--);
}      
main()
{
uchar j,a=0;
uint i;
CS1=1;
CS2=1;
while(1)
{
  CS1=0;   //先扫描前16列
  CS2=1;
  a=0;
  hang1=0;
  hang2=0;
  for(i=0;i<16;i++)   
  {
   lie=i;
   hang1=date[a];
   delay(1);
   a++;
   hang2=date[a];
   a++;
   delay(1);
  }
  CS1=1;   //然后扫描后16列
  CS2=0;
  j=0;
  a=32;
  i=0;
  while(i<256)
  { i=16*j;
   lie=i;
   j++;
   hang1=date[a];
   delay(1);
   a++;
   hang2=date[a];
   a++;
   delay(1);
  }
}
}

20110525(002).jpg (724.67 KB )

20110525(002).jpg

Y`@ES9JOL]~PL(4U6362ETR.jpg (67.69 KB )

Y`@ES9JOL]~PL(4U6362ETR.jpg

SA`Q_2CBL@DD$DW%5TN15Q3.jpg (87.58 KB )

SA`Q_2CBL@DD$DW%5TN15Q3.jpg

UEA0BX1@BAHJ3H3B11YY6}F.jpg (54.5 KB )

UEA0BX1@BAHJ3H3B11YY6}F.jpg

20110528(001).jpg (591.73 KB )

20110528(001).jpg

20110528.jpg (610.93 KB )

20110528.jpg

相关帖子

沙发
sun520up|  楼主 | 2011-5-26 09:57 | 只看该作者
希望做过的朋友帮下忙,谢谢

使用特权

评论回复
板凳
sun520up|  楼主 | 2011-5-26 17:13 | 只看该作者
都50个人看过了,咋就没人帮忙的:curse:

使用特权

评论回复
地板
sun520up|  楼主 | 2011-5-26 17:13 | 只看该作者
都50个人看过了,咋就没人帮忙的:curse:

使用特权

评论回复
5
老鱼探戈| | 2011-5-26 17:37 | 只看该作者

硬件没有问题。
这样试试:
  CS1=0;   //先扫描前16列
  CS2=1;
  延时..
  .....
  CS1=1;   //然后扫描后16列
  CS2=0;
  延时..

  建议楼主改用二维数组.

使用特权

评论回复
6
zf522| | 2011-5-26 18:04 | 只看该作者
时间不均衡

使用特权

评论回复
7
sun520up|  楼主 | 2011-5-26 18:13 | 只看该作者
6# zf522
时间改成一样的也不行,这个程序只是后来我试的时候改的

使用特权

评论回复
8
sun520up|  楼主 | 2011-5-26 18:14 | 只看该作者
5# 老鱼探戈
好的,我试试,有问题再请教你呀:handshake

使用特权

评论回复
9
Linda_008| | 2011-5-27 20:57 | 只看该作者
逐行逐列扫描后要消影!!
意思为行选通,扫描列,列全灭!
不然选通第二行时,第一列的数据进入到第二列中

使用特权

评论回复
10
sun520up|  楼主 | 2011-5-28 10:53 | 只看该作者
9# Linda_008
谢谢,我试过了,好了:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

162

帖子

1

粉丝