C51驱动数码管显示0~99

来源:互联网 发布:辐射4配置要求优化 编辑:程序博客网 时间:2024/05/16 05:38

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

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

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

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

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

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

Proteus仿真电路如下:

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对应文件夹中

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

原创粉丝点击