注册 登录
编程论坛 单片机编程

(一个译码器,一个锁存器)控制8个数码管,注意八个同时显示

小朴少 发布于 2013-06-24 13:39, 4345 次点击
/*-------------------------
主菜单:利用138和锁存器控制
--------------------------*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x6d,0x66,0x07};
uchar temp;
void delay(uint num)
{
    uint i,j;
    for(i=num;i>0;i--)
       for(j=110;j>0;j--);
}
void Init()
{
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
    TMOD=0x01;
    EA=1;
    ET0=1;
    TR0=1;
}
void main()
{
  uchar nm,k;
   while(1)
   {
    Init();
    if(temp==20)
    {
     nm++;
     dula=1;
     P0=table[nm];
     dula=0;
     if(nm==7)
     nm=0;
     temp=0;
     }
     while(k++<8)
    {
        P2=k;
        delay(5);
    }
  }
}
void Time() interrupt 1
{
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
    delay(10);
    temp++;

}
3 回复
#2
小朴少2013-06-24 13:40
这个是有问题的,求助啊
#3
小xiong2013-06-30 10:26
什么问题啊
#4
小xiong2013-06-30 10:46
最好发个图,我没看懂,但我知道一点,你这个init(),应该放到while(1)的外面
1