找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6075|回復(fù): 0
收起左側(cè)

74HC595驅(qū)動(dòng)數(shù)碼管顯示的問(wèn)題

[復(fù)制鏈接]
ID:51516 發(fā)表于 2013-7-5 19:57 | 顯示全部樓層 |閱讀模式
我利用鎖存器74HC595調(diào)試了一個(gè)共陽(yáng)極數(shù)碼管靜態(tài)顯示0-9的程序,但是顯示的時(shí)候仍有誤差(即有幾個(gè)數(shù)字顯示不完整,還會(huì)有抖動(dòng)),求解。。。




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

uint flag , i,c ;

sbit clk=P3^6;
sbit dat=P3^4;
sbit suo_cun=P3^5;
uchar volatile e,f;
uchar code tab[]={        0xC0,// 0 ,共陽(yáng)極
        0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/
};

fa_shon(uchar k) //
{
//uchar i; //定義循環(huán)變量
  for(i=0;i<8;i++) //因?yàn)槭?字節(jié)是8位,所以循環(huán)8次
  {
   dat=k&0x80; //將要發(fā)送的數(shù)據(jù)與上0X01送到數(shù)據(jù)引腳

   clk=0; //時(shí)鐘引腳加低電平
   _nop_();
   _nop_();
   clk=1; //時(shí)鐘引腳加高電平
   k<<=1; //將發(fā)送的數(shù)據(jù)左移1位

  }
  return(i) ;
}

void main()
{
/*TMOD=0x01;
TH0=15535/256;
TL0=15535%256;
EA=1;
ET0=1;
TR0=1;*/
while(1)
{
   //  uchar a;
   // for(a=0;a<3;a++)
  // {
    if(c++>=300)
        {  e++;
           c=0;
        }
    fa_shon(tab[e%10]);
  //  fa_shon(tab[e%100/10]);
  //  fa_shon(tab[e/100]);
  // }
  suo_cun=0; //鎖存為低電平
  _nop_();
  _nop_();
  suo_cun=1; //鎖存為高電平
  flag=1;
}
}
/*
void tt()interrupt 1
{
TH0=15535/256;
TL0=15535%256;
f++;
if(f>=20)
{
  f=0;
  if(flag==1&&i==8)
  {e++;
   flag=0;
   }
  if(e>9)e=0;
}
} */


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表