一、嵌入式:以应用为中心,计算机为基础,软硬件可剪裁的专用计算机系统
二、MCU:Micro Controcler Unit 微控制单元->单片机
1、特点:集成化高,集成到一块芯片
外设(GPIO、UART、ADC)
性能弱,成本低
控制领域,电机控制
注:1、外存:存放程序,代码,掉电数据不丢失,读写数据慢,价格便宜
2、内存:临时数据,变量,掉电数据丢失,读写数据快
|-----|
| 内核 |
| 栈区 |
| 堆区 |
| 数据区 |
| 文本区 |
三、CPU:Central Processing Unit 中央处理器
指令处理,数据运算
四、MPU:Micro Processing Unit 微处理器
单个cpu+外接内存+外接外设
五、SOC:System On Chip 片上系统
六、NPU:神经网络处理器
七、FPU:浮点数处理单元
八、ROM:只读存储器,存放单片机的程序、指令、掉电数据不丢失
九、RAM:随机访问存储器,存放随机变量
注:
1、
int a;
int b;
int c;
c = a+b;
1)、cpu去ram取a和b的值;
2)、cpu去RAM取指令;
3)、cpu进行数据运算;
4)、再将运算后的数据写到RAM中;
2、单片机应用场景:分布式传感采集:控制(电机控制)

3、

十、位运算
1、其他位不变,指定位清零:t = t & ~(1<<n)
2、其他位不变,指定位置一:t = t |(1<<n)
十一、keil程序编写流程
1、点击project选项,创建一个工程
2、点击new project 创建文件
3、在对应目录下创建一个文件
4、创建文件名
5、选择cpu芯片型号,Atmel -> At89c51
6、点击否
7、向Group中添加.c/.h文件
8、编写程序
9、点击上方Build编译程序
十二、程序
1、流水灯
(1)main.c
#include"delay.h"
#include"led.h"
int main()
{
int i= 0;
led_init();
while(1)
{
for(i =0;i < 8;++i)
{
led_show(1<<i);
delay(0x3fff);
led_alloff();
}
for(i = 7;i >=0;--i)
{
led_show(1<<i);
delay(0x3fff);
led_alloff();
}
}
return 0;
}
(2)led.c
#include<reg51.h>
void led_init(void)
{
P2 = 0xff;
}
void led_allon(void)
{
P2 = 0;
}
void led_alloff(void)
{
P2 = 0xff;
}
void led_show(unsigned int n )
{
P2 = ~(n);
}
(4)delay.c
void delay(unsigned int time)
{
while(time--)
{
}
}
2、计数
(1)main.c
#include "digiter.h"
#include "delay.h"
#include <reg51.h>
int main()
{
int i =0;
while(1)
{
digiter_show(i);
i++;
delay(0xafff);
if(i == 9999)
{
i = 0;
}
}
}
(2)digiter.c
#include<reg51.h>
#include "delay.h"
unsigned char seg[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void select_bit(unsigned int n)
{
P1 = 0xf0;
P1 |= 1<<n;
}
void select_seg(unsigned int n)
{
P0 = seg[n];
}
void digiter_show(unsigned int n)
{
int m =0;
int i = 0;
while(n != 0)
{
m = n%10;
P0 = 0;
select_bit(i++)
select_seg(m);
delay(0x3fff);
n /=10;
}
}
(3)delay.c
void delay(unsigned int time)
{
while(time--);
}