51_蓝桥杯_数码管静态显示

一 电路

51_蓝桥杯_数码管静态显示_第1张图片

二 数码管静态显示工作原理

51_蓝桥杯_数码管静态显示_第2张图片

三 代码

代码1 实现第一个数码管显示数字6的功能

#include "reg52.h"

unsigned char code SMG_Duanma[18] = 
  {0xc0,0xf9.0xa4,0x99,0x92,0x82,0xf8,
   0x80,0x90,0x88,0x80,0xc0,0x86,0x8e,
   0xbf,0x7f};

void Delay(unsignde int t)
{
  while(t--);
  while(t--);
}//实现延时功能的函数
 
void InitHC138(unsigned char n)
{
 switch (n)
 { 
   case 4;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 0;//输出Y4
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 1;//输出Y5
   break;
case 4;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 0;//输出Y6
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 1;//输出Y7
   break;
 }
}

void shumaguan()
{
  InitHC138(6);
  P0 = 0x01;
  InitHC138(7);
  P0 = 0x82;
}//实现第一个数码管,显示数字6的函数功能

void main()
{
  shumaguan();
  while(1)
 {

 }
}

代码2:实现数码管由数字0显示到数字9,并逐个进行。然后,数码管的内容,由0到f循环显示的功能。

#include "reg52.h"

unsigned char code SMG_Duanma[18] = 
  {0xc0,0xf9.0xa4,0x99,0x92,0x82,0xf8,
   0x80,0x90,0x88,0x80,0xc0,0x86,0x8e,
   0xbf,0x7f};

void Delay(unsignde int t)
{
  while(t--);
  while(t--);
}//实现延时功能的函数
 
void InitHC138(unsigned char n)
{
 switch (n)
 { 
   case 4;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 0;//输出Y4
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 0;
      HC138_A = 1;//输出Y5
   break;
case 4;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 0;//输出Y6
   break;
   case 5;
      HC138_C = 1;
      HC138_B = 1;
      HC138_A = 1;//输出Y7
   break;
 }
}

void shumaguan_bit(unsigned char dat, unsigned pos)
{
  InitHC138(6);
  P0 = 0x01<

你可能感兴趣的:(蓝桥杯,职场和发展,51单片机,C语言,系统架构)