单片机入门:单个数码管显示动态数字

2022-07-21 15:45:20 浏览数 (1)

本文通过仿真原理图设计和程序设计,实现了单个数码管显示0-9,显示数字动态显示。

仿真原理图采用protues8.7设计,特别注意P0口需要外接上拉电阻,以及引脚与单片机IO口的连接。具体如图。

本设计的代码采用KEIL5设计,具体如下:

代码语言:javascript复制
/*-----------------------------------------------
  名称:单个共阳数码管动态显示变化数字
  内容:通过循环赋值给P1,让数码管显示特定的字符或者数字
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
 // 显示数值表0-9

void Delay(unsigned int t); //函数声明
/*------------------------------------------------
                    主函数
------------------------------------------------*/
void main (void)
{
                  
unsigned char i;  //定义一个无符号字符型局部变量 i 取值范围 0~255

  while (1)         //主循环
  {
    for(i=0;i<10;i  )   //加入 for循环,表明for循环大括号中的程序循环执行10次
    {
      P0=dofly_table[i]; //循环调用表中的数值
      Delay(60000);      //延时,方便观看数字变化
    }
   //主循环中添加其他需要一直工作的程序
  }
}/*------------------------------------------------
 延时函数,含有输入参数 unsigned int t,无返回值
 unsigned int 是定义无符号整形变量,其值的范围是
 0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
  while(--t);
}

结合仿真和程序,本设计的仿真视频如下:

http://mpvideo.qpic.cn/0bf2k4alwaaa7qalpbto4zpvav6dxnlqboya.f10002.mp4?

0 人点赞