初级会员
主题
回帖0
积分171
阅读权限10
注册时间2012-10-24
最后登录1970-1-1
在线时间 小时
|
本帖最后由 为了毕业设计 于 2012-11-23 09:35 编辑
各位大神,你们屏的电源都是接的哪里啊?我没有恒流源,用自己的板子 貌似提供不了那么大的电流,接通一会就只有2行的灯会亮一下下,也就能坚持1秒左右就灭了!
最新情况:换了个电源,烧入程序,就只有16和32行常亮!程序如下(程序系转载)
#include <REG52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit HC138_A = P1^4;
sbit HC138_C = P1^3;
sbit HC595_STB = P1^2;
sbit HC595_GD = P1^1;
sbit HC138_OE = P1^0;
sbit HC138_B = P1^5;
sbit HC138_D = P1^6;
sbit HC595_CLK = P1^7;
sbit HC595_RD = P3^2;
unsigned char r_data[16], g_data[16];
unsigned char k, t;
unsigned char code hanzi[][8]={ //二维数据
0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18, //0
0x00,0x08,0x18,0x08,0x08,0x08,0x08,0x08, //1
0x00,0x18,0x24,0x24,0x08,0x10,0x20,0x3C, //2
0x00,0x18,0x24,0x04,0x18,0x04,0x24,0x18, //3
0x00,0x04,0x0C,0x14,0x24,0x3E,0x04,0x04, //4
0x00,0x3C,0x20,0x38,0x24,0x04,0x24,0x18, //5
0x00,0x18,0x24,0x20,0x38,0x24,0x24,0x18, //6
0x00,0x3C,0x04,0x08,0x10,0x10,0x10,0x10, //7
0x00,0x18,0x24,0x24,0x18,0x24,0x24,0x18, //8
0x00,0x18,0x24,0x24,0x1C,0x04,0x24,0x18, //9
0x00,0x26,0x69,0x29,0x29,0x29,0x29,0x26, //10
0x00,0x22,0x66,0x22,0x22,0x22,0x22,0x22, //11
0x00,0x26,0x69,0x29,0x22,0x24,0x28,0x2F, //12
0x00,0x26,0x69,0x21,0x26,0x21,0x29,0x26, //13
0x00,0x22,0x66,0x2A,0x32,0x3F,0x22,0x22, //14
0x00,0x2F,0x68,0x2E,0x29,0x21,0x29,0x26, //15
};
//delay us
void Delay(uchar us)
{
while(--us);
}
void Write_HC595(unsigned char rdd, gdd)
{
unsigned char i;
for (i=0;i<8;i++)
{
HC595_RD=~rdd&0x80; //只显示红色字
rdd=rdd<<1;
HC595_CLK=1;
HC595_CLK=0;
}
}
void main (void)
{
while(1)
{
for(t=0;t<16;t++) //16 行
{
HC138_OE = 1;
r_data[0] = hanzi[0][t];
r_data[1] = hanzi[2][t];
r_data[2] = hanzi[4][t];
r_data[3] = hanzi[6][t];
r_data[4] = hanzi[8][t];
r_data[5] = hanzi[10][t];
r_data[6] = hanzi[12][t];
r_data[7] = hanzi[14][t];
for (k=0;k<8;k++)
Write_HC595(r_data[k], g_data[k]);
HC138_OE = 0;
HC595_STB = 1;
HC595_STB = 0;
HC138_A = t&0x01;
HC138_B = t&0x02;
HC138_C = t&0x04;
HC138_D = t&0x08;
Delay(1000);
}
} //end while
}
经过几个小时的试验,终于用上面的程序,成功的显示出了字!这里说明一下:
1、电源用的是独立的开关电源,电压是5V,电流由于没有表,没有测。
2、之前一直没有显示,应该是我的单片机板子没有和电源共地!(可能是我板子的原因,USB和电脑相连,即使关掉板子上的开关,指示灯还是会亮,只不过亮度要暗一些)不和电源共地的话,就会出现某两行高亮,其余行不显示!
在此,特别感谢给过我建议的朋友!感谢你们的帮助!没有你们的帮助,估计我现在还是一头雾水! 再次谢过!!! |
|