51单片机----LED与数码管模块

1.单片机相关概念

裸机程序:所编写的代码直接操作硬件(即直接与HARD WARE 交互);

SOC:系统级芯片;

MCU: 微控制器:

MPU:媒体播放器;

GPU:图形处理器;

CPU:中央处理器;

外设寄存器:外设寄存器是计算机系统中,外设内部用于暂存数据、状态信息或控制指令的专用存储单元,是CPU与外设之间进行数据交互和命令通信的核心接口,其核心功能是实现CPU与外设之间的异步协调;

GPIO(通用输入输出):GPIO是微控制器或处理器上的一类通用引脚接口,可通过软件配置为输入或输出模式,用于与外部设备进行简单的数字信号交互;

补充在51单片机中int型只占2字节;

2.LED模块的使用

其低电平点亮;

eg:

cs 复制代码
#include <reg52.h>
 void delay(unsigned int n)
 {
 	while(n)
	{
	   n--;
	}
 }

void led_all_on(void)
{
	P2 = 0;
}

void led_all_off(void)
{
	P2 = 0xff;
}

void led_on(unsigned char n)
{
	P2 = ~n;
}

int main(void)
{
	led_all_off();
	//P2 &= ~((1 << 1) | (1 << 3) |(1 << 5));
	//P2 |= (1 << 0) | (1 << 2) |(1 << 4) | (1 << 6);
	while(1)
	{	
		int i = 0;
		while(i < 8)
		{
			led_on(1 << i);
			++i;
			delay(20000);
		}
		
		i = 7;

		while(--i)
		{
			led_on(1 << i);
		  	delay(20000);
		}
	}
}

3.数码管模块的使用

高电平点亮

eg:

cs 复制代码
#include <reg52.h>

 void delay(unsigned int n)
 {
 	while(n)
	{
	   n--;
	}
 }

void bit_select(int n)
{
 	P1 &= ~((0x0F << 0));
	P1 |= (1 << n);
}

void segment_select(int n)
{
  unsigned char t[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
  P0 = t[n];
  delay(500);  //确保数码管导通
  P0 = 0;
  delay(100);  //消影
}

void show_number(int n)
{
	int t = 0;
	if(n > 9999)
	{
		return;
	}
	if(0 == n)
	{
	 	 bit_select(0);
		 segment_select(0);
	}

	while(n)
	{
		bit_select(t++);
		segment_select(n % 10);
		n /= 10;
	}
}

int main(void)
{
	bit_select(0);

	while(1)
	{
		show_number(1234);
	}
}
相关推荐
天空'之城6 小时前
单片机基础核心知识点汇总(三十五)
单片机·嵌入式硬件
secondyoung6 小时前
I2C通信协议详解
arm开发·驱动开发·stm32·单片机·嵌入式硬件·mcu·51单片机
anew___6 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
jianqiang.xue8 小时前
ESP-IDF保姆级入门40|量产烧录与产线测试全解:批量烧录方案/校准流程/功能测试/不良分拣/产线追溯,掌握工业级量产交付全流程
单片机·物联网·esp32
幼儿园蛋小黑11 小时前
单片机数码管LED灯独立按键中断定时器综合实战
单片机·嵌入式硬件
自小吃多11 小时前
PCB Editor软件复制、改变、删除操作笔记
笔记·嵌入式硬件
数字新视界12 小时前
数据中心基础设施管理系统发布新版本,助力企业云化转型
嵌入式硬件·物联网·数据中心·数据中心基础设施管理·dcim管理系统
SKH.13 小时前
单片机(1)
单片机·嵌入式硬件
llilian_1613 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
三块石头10113 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程