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

[复制链接]
5644|9
 楼主| sun520up 发表于 2011-5-25 23:36 | 显示全部楼层 |阅读模式
本帖最后由 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);
  }
}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| sun520up 发表于 2011-5-26 09:57 | 显示全部楼层
希望做过的朋友帮下忙,谢谢
 楼主| sun520up 发表于 2011-5-26 17:13 | 显示全部楼层
都50个人看过了,咋就没人帮忙的:curse:
 楼主| sun520up 发表于 2011-5-26 17:13 | 显示全部楼层
都50个人看过了,咋就没人帮忙的:curse:
老鱼探戈 发表于 2011-5-26 17:37 | 显示全部楼层

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

  建议楼主改用二维数组.
zf522 发表于 2011-5-26 18:04 | 显示全部楼层
时间不均衡
 楼主| sun520up 发表于 2011-5-26 18:13 | 显示全部楼层
6# zf522
时间改成一样的也不行,这个程序只是后来我试的时候改的
 楼主| sun520up 发表于 2011-5-26 18:14 | 显示全部楼层
5# 老鱼探戈
好的,我试试,有问题再请教你呀:handshake
Linda_008 发表于 2011-5-27 20:57 | 显示全部楼层
逐行逐列扫描后要消影!!
意思为行选通,扫描列,列全灭!
不然选通第二行时,第一列的数据进入到第二列中
 楼主| sun520up 发表于 2011-5-28 10:53 | 显示全部楼层
9# Linda_008
谢谢,我试过了,好了:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

162

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部