打印

大侠来救命啊

[复制链接]
1368|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 相信哥咯 于 2011-3-22 22:00 编辑



#include <pic.h>
#define SH RB0
#define DS RB1
#define ST RB2
char led_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x39,0x5E,0x79,0x71};
char position[4]={0x7f,0xbf,0xdf,0xef};//
char dis_buff[4]={1,2,3,4};//want to display

//delay time
void delay(void)
{
        unsigned char x,y;
        for(x=0;x<40;x++)
        {
        for(y=0;y<5;y++);
        }        
}

//595 send
void send595(unsigned byte)
{
        char i,j;        
        for(i=0;i<8;i++)
        {
        SH=0;
        j=byte&1<<i;
        if(j==0)DS=0;
        else DS=1;
        SH=1;
        }
}

//595 out
void send595out()
{               
        ST=0;
        asm("nop");        
        ST=1;
        
}

//led in ative
void disled(void)
{
        char i;
        for(i=0;i<2;i++)
        {
                send595(position);
                send595(led_7[dis_buff]);
                send595out();
                delay();
        }
}


//main

void main(void)
{
        TRISB=0x00;
        PORTB=0X00;
while (1)
      {
      disled();
     }

}

相关帖子

沙发
相信哥咯|  楼主 | 2011-3-22 22:03 | 只看该作者
这个程序,我把改成显示1位(for (i=0;i<1;i++),就可以,显示两位三位四位都是缺笔画,为什么啊。。。。

使用特权

评论回复
板凳
NE5532| | 2011-3-22 22:37 | 只看该作者
用DEBUG跟踪,看你最后送到端口上的数据和你想送的数据是否一致。

使用特权

评论回复
地板
zjy.zz| | 2011-6-18 19:38 | 只看该作者
单独点亮试试,如果每个都是从一到9显示,说明送出的段码不错,就是串口数据传送问题

使用特权

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

本版积分规则

4

主题

927

帖子

1

粉丝