单片机-静动态数码管实验

P0控制数码管 ,P0低电平 P1,P2,P3高电平

1、静态数码管

需求:数码管显示0,即让p0端口输出数字0的段码0x3f(共阴)

#include "reg52.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-9 A-F

#define SMG_A_OP_PORT P0 //宏定义P0

void main(){

while(1){

//显示数字0 需显示数字几索引号就是几

SMG_A_OP_PORT =gsmg_code[0];

}

}

2、动态数码管

#include "reg52.h"

typedef unsigned int u16;

typedef unsigned char u8;

#define SMG_A_OP_PORT P0

void delay_10us(u16 ten_us)

{

while(ten_us--);

}

//数码管显示数字的数组 共阴极 显示段选数据

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

//定义数码管位选的控制管脚

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

void smg_xianshi(){

u8 i=0;

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

//位选操作

switch(i){

case 0:

LSC=1,LSB=1,LSA=1; //Y7亮(第1个数码管亮)

break;

case 1:

LSC=1,LSB=1,LSA=0; //Y6亮(第2个数码管亮)

break;

case 2:

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

break;

case 3:

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

break;

case 4:

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

break;

case 5:

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

break;

case 6:

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

break;

case 7:

LSC=0,LSB=0,LSA=0;//Y0亮(第7个数码管亮)

break;

}

SMG_A_OP_PORT=gsmg[i];

delay_10us(100);

SMG_A_OP_PORT=0x00;//消隐(消除重影)

}

}

void main(){

while(1){

smg_xianshi();

}

}

3、74HC245芯片和74HC138芯片

相关推荐
程序员JerrySUN2 小时前
嵌入式硬件: GPIO与二极管基础知识详解
linux·运维·服务器·python·嵌入式硬件
西城微科方案开发4 小时前
【打气泵方案设计开发——应用芯片CSU18P88
单片机·嵌入式硬件
工程师平哥15 小时前
【vscode-01】vscode不同项目不同语言扩展插件隔离方案
ide·笔记·vscode·嵌入式硬件·mcu·编辑器
电子科技圈18 小时前
芯科科技推出的BG29超小型低功耗蓝牙®无线SoC,是蓝牙应用的理想之选
人工智能·嵌入式硬件·mcu·物联网·健康医疗·智能硬件·iot
qq_3975623118 小时前
51单片机的keil c51软件安装教程
单片机·嵌入式硬件·51单片机
坏柠19 小时前
STM32 HAL库实战:轻松实现串口通信驱动蓝牙模块与ESP8266开发
stm32·单片机·嵌入式硬件
FightingLod20 小时前
IIC通信协议详解与STM32实战指南
stm32·单片机·嵌入式硬件
电子小子洋酱1 天前
ESP32移植Openharmony外设篇(10)inmp441麦克风
单片机·物联网·华为·harmonyos·鸿蒙
智木芯语1 天前
【21】单片机编程核心技巧:if语句逻辑与真假判断
单片机·嵌入式·#stm32·#stc8
美好的事情总会发生1 天前
LVDS(Low Voltage Differential Signaling)电平详解
嵌入式硬件·硬件工程·智能硬件