标题: 大神帮忙看一下! [打印本页]

作者: cdcdcd123    时间: 2014-3-15 18:12
标题: 大神帮忙看一下!
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar byte;
sbit io=P3^0;
void deply(uchar z);
sbit clk=P3^1;
uchar table[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
void sendbyte(byte)
{
        uchar num,c;
        num=table[byte];
        for(c=0;c<8;c++)
        {
                clk=0;
                io=num&0x01;
                clk=1;
                num=_cror_(num,1);
        }
}
void main()
{
        P2=0;
        deply(100);
        while(1)
        {        
                sendbyte(1);
                deply(100);
                P2=0xff;
         }
}
void deply(uchar z)
{
        uchar i,j;
        for(i=z;i<0;i--)
                for(j=500;j<0;j--);
}
用单片机控制74ls164驱动数码管怎么不会显示呢?

作者: 葛新华    时间: 2014-3-16 09:49
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar byte;
sbit io=P2^6;
sbit clk=P2^7;
void deply(uchar z);

uchar table[]={        0x3f ,  0x06 , 0x5b ,  0x4f ,
        0x66 ,  0x6d , 0x7d ,  0x07 ,
        0x7f ,  0x6f , 0x77 ,  0x7c ,
  
        0x39 ,  0x5e , 0x79 ,  0x71 };
void sendbyte(byte)
{
         uchar num,c;
         num=table[byte];
         for(c=0;c<16;c++)
         {
                 clk=0;
                 io=num&0x01;
                 clk=1;
                 num=_cror_(num,1);
                                                                P0=table[num];
                                                                        deply(1000);
         }
}
void main()
{
        
                                io=0;
                                 P0=1^0;
                                io=1;
         while(1)
         {        
                 sendbyte(1);
                 deply(1000);
               
          }
}
void deply(uchar z)
{
         uchar i,j;
         for(i=z;i>0;i--)
                 for(j=500;j>0;j--);
}
作者: 葛新华    时间: 2014-3-16 09:51
段选位选,控制P2 6、7位。还有循环for函数里,应该是>号。应为i、j <0;在for里死循环。
作者: cdcdcd123    时间: 2014-3-16 17:21
葛新华 发表于 2014-3-16 09:49
#include
#include
#define uint unsigned int

P0=table[num];
还有这个                       io=0;
                                 P0=1^0;
                                io=1;
看不懂是干什么的?

作者: cdcdcd123    时间: 2014-3-16 17:22
葛新华 发表于 2014-3-16 09:51
段选位选,控制P2 6、7位。还有循环for函数里,应该是>号。应为i、j <0;在for里死循环。

用164的时候是不是要把它的table表的每个数的高位和地位互换?
作者: 烛骨前行    时间: 2014-3-17 10:15
貌似楼上是乱回答的 。所有的程序都要结合电路图来看。单拿出程序没有意义
作者: cdcdcd123    时间: 2014-3-17 20:15
烛骨前行 发表于 2014-3-17 10:15
貌似楼上是乱回答的 。所有的程序都要结合电路图来看。单拿出程序没有意义

[qq]1368789688[/qq]

asd5.png (20.22 KB, 下载次数: 247)

asd5.png

作者: cdcdcd123    时间: 2014-3-17 20:18
cdcdcd123 发表于 2014-3-17 20:15

我是个菜鸟,自己做着练习的,帮忙看一下,只要看看74ls164这边的就好啦,谢谢啦




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1