打印

16*16点阵求助

[复制链接]
2486|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星空的仰望|  楼主 | 2012-5-13 23:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是用两个74HC138级联作位选,两个74HC595级联作段选,来控制点阵。研究了两天了,写出代码不行。有些低级错误自己很不容易发现,希望高手指点一二。。。。。感激不尽了。。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit CP=P3^4;
sbit LC=P3^5;
sbit OE=P3^6;
sbit DS=P0^7;

uchar code dat[] = {0x00,0xff,0x0f,0x0f,0x0f,0xf0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
void delay(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=0;j<100;j++);
}

void send(uchar w)
{ uchar a;
for(a=0;a<8;a++)
{
w=w>>1;
DS=CY;
CP=0;
CP=1;
}
}
void main()
{
uint i;
LC=1;
while(1)
{        
for(i=0;i<16;i++)
{ //OE=1;        
send(dat[2*i]);
send(dat[2*i+1]);
P1=i;
LC=0;
delay(1);
LC=1;
//OE=0;
delay(1);
//OE=1;
delay(1);
//OE=0;
}
}
}

相关帖子

沙发
星空的仰望|  楼主 | 2012-5-13 23:38 | 只看该作者
没人愿意帮我吗。。。。。。。。。。。:dizzy:

使用特权

评论回复
板凳
lbygtwx| | 2012-5-14 09:25 | 只看该作者
可以参考网上的一些资料,弄明白控制原理,边调试边理解。

使用特权

评论回复
地板
airwill| | 2012-5-14 09:28 | 只看该作者
楼主的代码写得不怎么样, 居然一行注释都没有!

除了软件, 还有硬件, 没有人会搭你这个电路来帮你调试程序的.
应该把调试程序看成写程序的一部分, 而且通常都比写程序还费时费力!
好好努力, 慢慢摸索一套属于自己的最行之有效的调试技巧, 希望哪天看到楼主上来交流编程和调试的艺术.

使用特权

评论回复
5
bukusishen| | 2012-5-14 10:12 | 只看该作者
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit sh=P2^0;
sbit ds=P2^1;
sbit st=P2^2;
sbit hc=P1^6;
sbit ds_rst=P3^5;
sbit ds_clk=P3^6;
sbit ds_io=P3^7;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
uchar code table[]=
{
0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38, //0
0x00,0x08,0x18,0x08,0x08,0x08,0x08,0x1C, //1
0x00,0x38,0x44,0x04,0x04,0x78,0x40,0x7C, //2
0x00,0x38,0x44,0x04,0x38,0x04,0x44,0x38, //3
0x00,0x04,0x0C,0x14,0x24,0x7F,0x04,0x04, //4
0x00,0x7C,0x40,0x40,0x78,0x04,0x04,0x78, //5
0x00,0x38,0x40,0x40,0x78,0x44,0x44,0x38, //6
0x00,0x7C,0x04,0x04,0x04,0x04,0x04,0x04, //7
0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38, //8
0x00,0x38,0x44,0x44,0x3C,0x04,0x04,0x38, //9
0x00,0x10,0x00,0x00,0x00,0x00,0x10,0x00  //:
};
void delay(uint x)
{
uchar t;
while(x--) for(t=0;t<100;t++);
}
void shifter(uchar date)
{
uchar i;
        for(i=0;i<8;i++)
        {
        sh=0;
        ds=date&0x01;
        sh=1;
        date>>=1;
        }
        st=0;
        st=1;
}
void write_dsbyte(uchar date)
{
uchar i;
ACC=date;
        for(i=8;i>0;i--)
        {
        ds_io=ACC0;
        ds_clk=1;
        ds_clk=0;
        ACC=ACC>>1;
        }
}
uchar read_dsbyte(void)
{
uchar i;
        for(i=0;i<8;i++)
        {
        ACC=ACC>>1;
        ACC7=ds_io;
        ds_clk=1;
        ds_clk=0;
        }
        return(ACC);
}
uchar read_ds1302(uchar add)
{
        uchar temp;
        ds_rst=0;
        ds_clk=0;
        ds_rst=1;
        write_dsbyte(add);
        temp=read_dsbyte();
        ds_rst=0;
        ds_clk=1;
        return temp;
}
void main()
{
uchar i;
uchar miao,miao1,miao2;
uchar fen,fen1,fen2;
uchar shi,shi1,shi2;
while(1)
        {
        miao=read_ds1302(0x81);
        miao1=miao&0x0f;
        miao2=(miao>>4);
        fen=read_ds1302(0x83);
        fen1=fen&0x0f;
        fen2=(fen>>4);
        shi=read_ds1302(0x85);
        shi1=shi&0x0f;
        shi2=(shi>>4);
                        for(i=0;i<8;i++)
                        {
                        hc=1;
                        P1=0xf0|i;
                        shifter(table[miao1*8+i]);
                        shifter(table[miao2*8+i]);
                        shifter(table[80+i]);
                        shifter(table[fen1*8+i]);
                        shifter(table[fen2*8+i]);
                        shifter(table[80+i]);
                        shifter(table[shi1*8+i]);
                        shifter(table[shi2*8+i]);
                        hc=0;
                        delay(6);
                        }
                        delay(2);
        }
}[img][/img]

使用特权

评论回复
6
lovecctv99| | 2013-1-25 09:33 | 只看该作者
你把硬件图放上来看看。

使用特权

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

本版积分规则

0

主题

5

帖子

0

粉丝