数码管的显示

静态数码管显示

数码管有两种一种的负电压促发,一种是正电压促发,上图是单数码管的引脚

上图是数码管模组的引脚,采用了引脚复用技术

咱们这个单片机由8个单数码管,所以要用上38译码器,如下图

74138使能端,单片机上电直接就默认接通了

74HC245的作用是稳定输入输出,数据缓冲作用,DIR表示方向默认给了正电压,就是左边流向右边,后面是电阻,COM表示线路公共

静态代码如下

c 复制代码
#include <REGX52.H>


unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //亮数字几

void Nixie(unsigned char Location,Number)
{
	switch(Location) //选择模块
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];	
}

void main()
{
	Nixie(6,3);	
	while(1)
	{
		
	}
}

0X3F = 0011 1111b,从dp,g,f,e,d,c,b,a

动态数码管显示

有较强重影,主要是因为选模块和选数码管的代码不同步,然后数据就会串

所以需要delay函数来延迟

c 复制代码
#include <REGX52.H>


unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void Nixie(unsigned char Location,Number)
{
	switch(Location)		
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];	
	Delay(1);				
	P0=0x00;    //每次选完模块,就把模块里面的数码管清零				
}

void main()
{
	while(1)
	{
		Nixie(1,1);		
		Nixie(2,2);		
		Nixie(3,3);		
	}
}
相关推荐
楼台的春风4 小时前
【MCU驱动开发概述】
c语言·驱动开发·单片机·嵌入式硬件·mcu·自动驾驶·嵌入式
Moonnnn.4 小时前
51单片机学习——动态数码管显示
笔记·嵌入式硬件·学习·51单片机
LS_learner5 小时前
小智机器人CMakeLists编译文件解析
嵌入式硬件·机器人
暗碳7 小时前
stm32 74hc238流水灯
stm32·单片机·嵌入式硬件
1101 11017 小时前
STM32-温湿度上传OneNET项目
stm32·单片机·嵌入式硬件
余衫马7 小时前
ESP32-S3 实战指南:BOOT-KEY 按键驱动开发全解析
驱动开发·单片机·嵌入式硬件
文军的烹饪实验室10 小时前
处理器架构、单片机、芯片、光刻机之间的关系
单片机·嵌入式硬件·架构
Leiditech__11 小时前
人工智能时代电子机器人静电问题及电路设计防范措施
人工智能·嵌入式硬件·机器人·硬件工程
jmlinux11 小时前
STM32 HAL库USART串口DMA IDLE中断编程:避坑指南
stm32·单片机·嵌入式硬件
沐欣工作室_lvyiyi13 小时前
基于单片机的智能电表设计(论文+源码)
单片机·嵌入式硬件·电能表·数字电能表