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

📄 静态数码显示程序.c

📁 这是本人花了200元买的51开发板上的所有程序资料
💻 C
字号:
//MCU:AT89S51
//晶振:12M
#include"AT89X51.H"
unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,
                               0x92,0x82,0xf8,0x80,0x90
							  };//数字0~9共阳数码管代码

unsigned int tcount;   //全局变量
unsigned char count;   //全局变量   
unsigned char del_count;                     
void main(void)
{
  TMOD=0x02;  //使用定时器0,选择方式2(常数自动重装的8位定时器)
  TH0=0x06;   //保存数值,用于自动重装
  TL0=0x06;  //定时250uS初值
  TR0=1;    //开定时器0
  ET0=1;   //开定时器0溢出中断
  EA=1;    //开总中断
  P1_0=0; 
  while(1)
    {
     ;  //等待中断
    }
}

/**********定时器T0溢出中断服务程序***************/
void t0(void) interrupt 1 using 0
{
  tcount++;
  /*********************///实际应用的静态扫描是不用这几条语句的,
  del_count++;           //现在实验板上没有独立的静态扫描数码管,
  if(del_count==50)      //做静态扫描实验时是利用动态扫描连接方式其中一个数码管来做的,
     {                   //插入这几条语句是用来保护数码管的,使其亮度不要过高。
	  P1_0=~P1_0;        //当然了,明白数码显示的原理就可以了,实际应用中几乎不用单片机直接对数码管进行静态扫描,
	  del_count=0;       //因为直接用单片机静态显示数码管太耗I/O口了,有专门静态扫描数码管的芯片,比如MAX7219等。
     } 
  /*********************/
  if(tcount==4000) //1S到
    {
      tcount=0;
      count++;
      if(count==10)
      count=0;
      P0=dispcode[count]; //送出数码管代码显示
    }
     
}

 

⌨️ 快捷键说明

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