本帖最后由 si蜀 于 2012-10-17 17:21 编辑
#include<reg52.h>
#define u8 unsigned char
#define u16 unsigned int
/*ser0、rclk0、srclk0对应IC3,控制绿 {MOD}二极管。*/
sbit ser0 = P0^2; //595第14脚 数据口 控制绿 {MOD}led阴极 高8位绿 {MOD},底8位红 {MOD}
sbit rclk0 = P0^1; //595第12脚,上升沿时数据从位移寄存器输入到存储寄存器中,下降沿时存储寄存器数据不变。
sbit srclk0 = P0^0; //595第11脚,上升沿时数据寄存器的数据移位。 绿 {MOD}: 5~12 红 {MOD}:12~20
sbit ser1 = P1^7; // 数据口 控制led阳极 共8位
sbit rclk1 = P1^6; //上升沿时数据从位移寄存器输入到存储寄存器中,下降沿时存储寄存器数据不变。
sbit srclk1 = P2^3; //上升沿时数据寄存器的数据移位。 由锁存器控制 共阴极
sbit LE =P3^7; //锁存器锁存端,高电平时打开,低电平锁定
void daley (void)
{
;;
}
//数据date输入595位移存储器中
void in0 (u8 date)
{
u8 tame,i;
tame=date;
for(i=8;i>0;i-- )
{
if((tame&0x80)==1)
ser0 = 1;
else ser0 = 0;
srclk0 = 0;
daley( ) ;
srclk0 = 1;
tame=tame<<1;
}
}
//595输出数据
void put0 ()
{
rclk0 = 0;
daley( ) ;
rclk0 = 1;
}
void in1 (u8 date)
{
u8 tame,i;
tame=date;
for(i=8;i>0;i-- )
{
if((tame&0x80)==1)
ser1 = 1;
else ser1 = 0;
srclk1 = 0;
daley( ) ;
srclk1 = 1;
tame=tame<<1;
}
}
void put1()
{
rclk1 = 0;
daley( ) ;
rclk1 = 1;
}
void main()
{
u8 a,i,j;
LE=1; //打开锁存器
a=0x7F; //最后一个红灯
i = 0xff;
j = 0xff;
in0 (a);
in0 (i);
put0();
in1 (j);
put1();
while(1);
}
我想点亮模块,但完全没反应,不知道问题是出在哪里?
-
-
-
2012-S52图纸.pdf
下载积分: 积分 -1 分
110.2 KB, 下载次数: 33, 下载积分: 积分 -1 分
使能没问题,接了GND,.其他的输出我不知道怎么检查,能指教一下吗
一周热门 更多>