自学嵌入式 day40 51单片机

一、嵌入式:以应用为中心,计算机为基础,软硬件可剪裁的专用计算机系统

二、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 = segn;

}

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

}

相关推荐
机器视觉知识推荐、就业指导24 分钟前
为什么同一个引脚不能同时做按键和串口
stm32·单片机·嵌入式硬件
崇山峻岭之间1 小时前
单片机基本定时器实验
单片机·嵌入式硬件
DS小龙哥1 小时前
基于ESP32设计的智能养蜂监测系统
stm32·单片机·嵌入式硬件·物联网·华为云
夜月yeyue1 小时前
STM32 DMA 双缓冲采样
linux·stm32·单片机·嵌入式硬件·系统架构
西城微科方案开发2 小时前
SIC8P370D2L-PLP16 8位OTP单片机 低功耗多功能MCU详解
单片机·嵌入式硬件
智者知已应修善业4 小时前
【51单片机初始化D5-D8亮,每按键按下D1到D4全亮,再按下恢复,如此循环】2024-3-26
c++·经验分享·笔记·算法·51单片机
踏着七彩祥云的小丑4 小时前
嵌入式测试第 32 天:升级测试:固件OTA升级、断点续传、回滚测试
单片机·嵌入式硬件·学习
点灯小铭4 小时前
基于单片机与DAC0832的双路波形信号发生系统设计
数据库·单片机·mongodb·毕业设计·课程设计·期末大作业
sramdram5 小时前
基于MCU微控制器的电子血压计应用解决方案
单片机·嵌入式硬件·mcu·mcu微控制器
Szime5 小时前
AD9218 国产替代方向:双通道 10 位 105MSPS ADC 选型支持
单片机·嵌入式硬件·fpga开发·汽车