⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtsmg.txt

📁 发一个动态数码管计数程序:芯片atmega16
💻 TXT
字号:
#include<iom16v.h>
#include<macros.h>
unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
          0x80,0x90,};//定义字符表
unsigned char table1[]={0x01,0x02,0x4,0x08};
unsigned char led[4]={0};
unsigned int xdata=0,xdata1=0,i,j;
void delay(unsigned int a)
{
  while(a--);
}
void delay_1ms(void)
{
unsigned int i;
for(i=1;i<(8*143-2);i++)
;}//xtal为晶振的频率
void delayms(int n)
{int i;
for(i=0;i<n;i++)
delay_1ms();
}
void delay_1s(void)
{int j;
for(j=0;j<1000;j++)
delay_1ms();
}//1秒
void delay_1min(void)
{int j;
for(j=1;j<=60;j++)
delay_1s();
}
void ledxianshi(void)
{unsigned char k,i;
led[0]=xdata%10;
led[1]=xdata/10;
led[2]=xdata1%10;
led[3]=xdata1/10;
  for (k=0;k<4;k++)//动态扫描四位
  {PORTB=table1[k];
  i=led[k];
  PORTA=table[i]-0x80;//小数点显示
  delay(500);
  PORTA=0XFF;//全部不显示。
  }

}
void init(void)//初始化端口
{PORTB=0XF0;
DDRB=0XFF;
PORTA=0XFF;
DDRA=0XFF;
}
void main(void) 
{init();
while(1){
xdata++;
if(xdata==60)
  {xdata=0;
  xdata1++;
    if(xdata1==24)
      {xdata1=0;}
      }
for(j=0;j<50;j++)//延时1秒
{ledxianshi();
delay_1ms();}

}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -