找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5981|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

74HC595驅(qū)動數(shù)碼管顯示的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51516 發(fā)表于 2013-7-5 19:57 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我利用鎖存器74HC595調(diào)試了一個共陽極數(shù)碼管靜態(tài)顯示0-9的程序,但是顯示的時候仍有誤差(即有幾個數(shù)字顯示不完整,還會有抖動),求解。。。




#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 ,共陽極
        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++) //因為是1字節(jié)是8位,所以循環(huán)8次
  {
   dat=k&0x80; //將要發(fā)送的數(shù)據(jù)與上0X01送到數(shù)據(jù)引腳

   clk=0; //時鐘引腳加低電平
   _nop_();
   _nop_();
   clk=1; //時鐘引腳加高電平
   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;
}
} */


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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