天天看点

C51驱动数码管显示0~99

数码管显示分为静态显示和动态显示两种

静态显示:显示某一字符时,二极管恒定导通或截止。

          优点:编程实现简单;显示稳定;亮度高;每更新一次显示内容CPU才执行一次,节省CPU时间

          缺点:由于一个接口只能接一个显示管,硬件开销大

动态显示:利用人眼的视觉暂留效应,实现多个字符同时显示。

         其优缺点正好与静态显示相反

Proteus仿真电路如下:

C51驱动数码管显示0~99

C51程序代码:

//通过两个通用并行接口驱动数码管显示功能

//数码管采用的是共阴极接法,段码如数组unsigned char const seg[]所示

//延时函数void delay(unsigned int cnt),可根据需要修改延时时间

//头文件

#include <reg51.h>

//分别为阴极数码管

unsigned char codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   

//延时程序,可修改成自己要的时间。

void delay(unsigned int cnt)    

{

unsigned char j;

while(--cnt)

{

   for(j=0;j<8;j++);

}

}

//主函数

main()

{

unsigned char i,j;

while(1)

{

   P2=codetable[i];

   P0=codetable[j];

   delay(500);   //延时程序

   i++;

   if(10==i)

    {

   i=0;

   j++;

   if(j==10)

   j=0;

   }

}

}

ps:今天顺带解决了Proteus自动关闭的问题,原因出在安装破解版后,没有将安装包里crack/MODELS的注册表文件覆盖到装好的Proteus对应文件夹中

下周准备学习单片机数码管的动态显示,应用中断、定时计数器等常用功能