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

1.基本概念

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

CPU(中央处理器):计算机的核心部件,负责执行指令和处理数据。

MPU(微处理器):通常指更通用的处理器,强调计算能力。

MCU(微控制器):集成了CPU、内存、外设等的单片芯片,常用于嵌入式系统。

GPU(图形处理器):专用于图形和并行计算的处理器。

**外设寄存器:**是指能够操作硬件的,具有固定地址的内存空间。

LED实验中使用的寄存器:

P1寄存器:在数码管模块中使用,用来选择点亮的位区。

P2寄存器:LED灯点亮。

P0寄存器:用来选择点亮的段区。

GPIO(通用输入输出):

可编程的引脚,可通过软件控制其输入或输出模式,用于连接外部设备。

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

2.LED

低电平亮

cs 复制代码
#include <reg52.h>
#include "led.h"
#include "delay.c"



void led_all_on(void)
{
	P2 = 0;
}

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

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


void led_each_on(void)
{
	while(1)
	{
		int i;
		for(i = 0; i < 8; ++i)
		{
			led_on(1 << i);
			delay(10000);
		}
		for(i = 6;i > 0;--i)
		{
			led_on(1 << i);
			delay(10000);
		}
	}
}

3.数码管模块

高电平亮

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



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;
	}
}
相关推荐
CODECOLLECT3 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen4 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠6 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_6 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技9 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计9 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报10 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业10 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能10 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
czwxkn10 小时前
4STM32(stdl)TIM定时器
stm32·单片机·嵌入式硬件