89C51数码管循环显示数字0~15

89C51数码管循环显示数字0~15,使用Proteus经行仿真。

需要材料:

  数码管、AT89C51、最小系统电路、

在这里插入图片描述

代码如下:


//-----------------------------------------------------------------------------------
//程序名:  SMG7-4
//程序功能:P0端口输出,一位数码管循环显示0~15
//-----------------------------------------------------------------------------------
#include <reg51.h>
//定义位操作
sbit ls1=P2^0;                                     //个位公共极
#define Out P0                                     //定义数据输出端口
void delay10ms(unsigned int count); 
unsigned char i=0;

//共阳数码管数字显示表
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; 
// 对应显示            0    1    2    3    4    5    6    7    8    9   A    B   C    D     E    F

//-----------------------------------  主函数 ----------------------------------
main()
 { 
   ls1=1;                                         //个位共阳极数码管供电 
   while(1)                                       //无限循环
    {
      Out=tab[i];                                 //输出
      i=(i+1)%16;                                 //i加1,指向表中下一个码
	  delay10ms(300);                             //调用延时函数
	}
 }

//------------------------------------ 延时函数 ----------------------------------

void delay10ms(unsigned int count)               //总延时时间为10ms*count 
    {  
      unsigned int i,j,k;          
	  for(i=0; i<count; i++)
        for(j=0; j<10; j++)    
		   for(k=0; k<120; k++);
    }
//-------------------------------------------------------------------------------------

最后效果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/105930878