标题: 为什么只能让点阵一半消隐 [打印本页]

作者: huhaomcu    时间: 2012-8-3 01:38
标题: 为什么只能让点阵一半消隐

#include<reg52.h>
#define uint unsigned int 
#define uchar unsigned char
sbit cp=P2^4;     //74hc164芯片的脉冲端
sbit dsb=P2^5;    //74hc164芯片的数据输入端
sbit wei=P2^7;
sbit du=P2^6;
uchar code table[]={0xef,0x01,0x6d,0x6d,0x01,0xef,0xef,0xef};    //列值,HC573
uchar code sheet[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};    //行值 HC164
/************************************************************************************************/
void delay_xms(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=125;y>0;y--);      //12MHz下时间为1002us=1.002ms  //y=115时,11.0592MHz
}                //时间为1.00044ms
/***********************************************************************************************/
void shift(uchar temp)
{
 uint i;
 for(i=8;i>0;i--)
  {
   dsb=temp&0x80;
   cp=0;
   cp=1;
   temp<<=1;    //74hc164同步移位首先移到D0位
  }
}
/************************************************************************************************/
/***********************************************************************************************/
void main()
{
 uint j;
 wei=1;
 P0=0xff;
 wei=0;
 while(1)
 {
  for(j=0;j<8;j++)
   {
     du=1;
     P0=table[j];        
     du=0;
     shift(sheet[j]);     
     delay_xms(1); 
     du=1;         P0=0xff;
     du=0; 
         shift(0x00);  //顺序反了也不能消隐
        }
     }
}  

作者: admin    时间: 2012-8-3 01:44
一半消隐?我先拿到板子上试试了再回帖
作者: huhaomcu    时间: 2012-8-3 20:36
你调试可以吗?




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