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);
}
}