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);
	}
}
相关推荐
点灯小铭1 天前
基于单片机的多功能LCD音乐播放器设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
shansz20201 天前
暂时无法解决的关于STM32F103的RTC日期更新问题
stm32·嵌入式硬件·实时音视频
2501_927773071 天前
嵌入式——时序IIC
单片机·嵌入式硬件
LS_learner1 天前
针对VMware Workstation虚拟机无法联网问题排查
嵌入式硬件
项目題供诗1 天前
51单片机入门(七)
单片机·嵌入式硬件·51单片机
来自晴朗的明天1 天前
1、光耦隔离电路
单片机·嵌入式硬件·硬件工程
国科安芯1 天前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
三伏5221 天前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉1 天前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
小灰灰搞电子1 天前
STM32/GD32 字节对齐详解
stm32·单片机·嵌入式硬件