51单片机——共阴数码管实验

数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示

如何实现点亮单个数字,用下图中的ABC来实现

P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C

//定义数码管位选管脚

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

for(i=0;i<8;i++){

//位选

switch(i){

case 0:

LSC=1,LSB=1,LSA=1; //7:LED8

break;

case 1:

LSC=1,LSB=1,LSA=0; //6:LED7

break;

case 2:

LSC=1,LSB=0,LSA=1; //5:LED6

break;

case 3:

LSC=1,LSB=0,LSA=0; //4:LED5

break;

case 4:

LSC=0,LSB=1,LSA=1; //3:LED4

break;

case 5:

LSC=0,LSB=1,LSA=0; //2:LED3

break;

case 6:

LSC=0,LSB=0,LSA=1; //1:LED2

break;

case 7:

LSC=0,LSB=0,LSA=0; //0:LED1

break;

}

}

每一位有8段,如下图所示

eg显示0:0 0 1 1 1 1 1 1


DP(小数点) G F E D C B A

//段码数据

u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//0 1 2 3 4 5 6 7 8 9 A B C D E F

P0端控制数码管

1、静态数码管实验

#include "reg51.h"

typedef unsigned int u16;

typedef unsigned char u8;

//数码管显示数字的数组(共阴数码管)

u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0-F

#define SMG_A_DP_PORT P0

//控制静态数码管显示数字0,即让P0端口输出数字0的段码0x3f(共阴)

void main(){

while(1){

//显示数字0

SMG_A_DP_PORT=gsmg_code[0];

}

}

2、动态数码管实验

#include "reg51.h"

typedef unsigned int u16;

typedef unsigned char u8;

//段码数据

u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

#define SMG_A_DP_PORT P0

//定义数码管位选管脚

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

void delay(u16 time){

while(time--);

}

//动态数码管

void smg_display(){

u16 i=0;

for(i=0;i<8;i++){

//位选

switch(i){

case 0:

LSC=1,LSB=1,LSA=1; //7

break;

case 1:

LSC=1,LSB=1,LSA=0; //6

break;

case 2:

LSC=1,LSB=0,LSA=1; //5

break;

case 3:

LSC=1,LSB=0,LSA=0; //4

break;

case 4:

LSC=0,LSB=1,LSA=1; //3

break;

case 5:

LSC=0,LSB=1,LSA=0; //2

break;

case 6:

LSC=0,LSB=0,LSA=1; //1

break;

case 7:

LSC=0,LSB=0,LSA=0; //0

break;

}

SMG_A_DP_PORT=gsmg_code[i];

delay(5000);

SMG_A_DP_PORT=0x00; //消隐

}

}

void main(){

while(1){

smg_display();

}

}

相关推荐
Aczone2819 小时前
硬件(六)arm指令
开发语言·汇编·arm开发·嵌入式硬件·算法
EkihzniY1 天前
OCR 证件识别:驱动澳门酒店自助入住智能化
嵌入式硬件·ocr
好家伙VCC1 天前
数学建模模型 全网最全 数学建模常见算法汇总 含代码分析讲解
大数据·嵌入式硬件·算法·数学建模
伴杯猫1 天前
【ESP32-IDF】基础外设开发2:系统中断矩阵
c语言·单片机·嵌入式硬件·mcu·物联网·github
搬砖的小码农_Sky1 天前
常见的显示器接口技术
嵌入式硬件·计算机外设·显示器
茯苓gao1 天前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
点灯小铭1 天前
基于STM32单片机的智能粮仓温湿度检测蓝牙手机APP设计
stm32·单片机·智能手机·毕业设计·课程设计
沐欣工作室_lvyiyi1 天前
基于单片机的智能路灯(论文+源码)
单片机·嵌入式硬件·毕业设计
Yyq130208696821 天前
SIT1050 5V 供电,±40V 接口耐压,1Mbps 高速 CAN 总线收发器
单片机·嵌入式硬件
云伴枫轻舞1 天前
我对 OTA 的理解随记,附GD32/STM32例程
stm32·单片机·嵌入式硬件