导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[原创]  看看这个是为什么?我调试了几天了[sbll]

 *第10552篇: [原创] 看看这个是为什么?我调试了几天了

  
楼 主:sbll 2003年4月17日20:05
 [原创]  看看这个是为什么?我调试了几天了
我想用ZLG7289做4位7段LED显示,按照周立功网站提供的资料,我用89C51,其中P0.0接
CS,P0.1接CLK,P0.2接DATA,P0.3接KEY,因为没有键盘,我的8只10K电阻和8只100K下拉电
阻均没有用,我测试了晶振工作正常,可就是没有显示信号,用示波器测试:89C51信号传
输正常,可7289的SG-SA均为低电压,DIG0—DIG3均为高电压,为什么不工作?程序如下:

#include  <reg51.h>  
#include  <intrins.h>  
#define uchar unsigned char
#define uint  unsigned int

sbit CS  = 0x80;                   //P0.0
sbit CLK = 0x81;                   //P0.1
sbit DIO = 0x82;                   //P0.2
sbit KEY = 0x83;                   //P0.3

void delay(uint times);             //延时
void initialize(void);             //初始化
void display(void);                //LED显示
void Send(int number);

bit flag;
void Count_int0() interrupt 0 using 2
{
  flag = 1;
  delay(10);
}

void Send(int number)
{
  int i;
  for(i=0;i  <=7;i++)
     { 
       _nop_();
        _nop_();
       CLK = 1;
       if((number&0x80)==0x80)
         DIO = 1;
        else
         DIO = 0;
       _nop_();
//       CLK = 1;
       _nop_();
       _nop_();
       CLK = 0;
       number = number  <  <1;
       _nop_();
     }
}

void initialize(void)                          //初始化程序
{
  Motor = 0;
  Elect = 0;
  CS  = 1;
  DIO = 1;
  KEY = 1;
  CLK = 0; 
  CS = 0;
  Send(0xA4);                      //复位
  CS = 1;
  CS = 0;
  Send(0xBF);                       //测试
  CS = 1;
  delay(500);
  CS = 0;
  Send(0xC8);                           //下载数据且按方式1执行,为0数据 
  delay(5);
  Send(0x00);
  CS = 1;
}

void delay(uint times)                          //延时子程序

  uint i,j;
  for(i=times;i>  0;i--)
     for(j=times;j>  0;j--){}
}

void main(void)
{
  initialize();
  delay(1000);
   CS = 0;
   Send(0xC8);
   delay(4);
   Send(0x01);
   CS = 1;
   _nop_();
   _nop_();
   CS = 0;
   delay(500);
   Send(0xC8);
   delay(4);
   Send(0x03);
   CS = 1; 
   for(;;)
   {

   }
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:请大家指点一二

[下一篇主题]:怎样编程实现F020的8通道连续循环采集?