学了一段C语言基础,买了ARM(4412)开发板准备学嵌入式,没有任何基础,看了几天裸机教程,头大啊真是从入门到放弃。欲速则不达,还是从基础的学起吧,先搞51单片机从基础学起,然后在stm32,最后学ARM开发板。

花了几百大洋买了嵌入式开发板,不想再买别的板子了,于是发现了新大陆---Proteus,不光能仿真51单片机还能仿真stm32十分强大。

51单片机基础设计(自学单片机第一天)(1)

元件库都是英文的,常用的几种元件中英文对照如下。

RES:电阻;CAP:电容;BUTTON:按键开关;CRYSTAL:晶振;DIODE:二极管;LED:发光二极管。

51单片机几个重要元件

MCU表示单片机微处理器,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件

51单片机基础设计(自学单片机第一天)(2)

单片机最小系统必须包含:

1.电源电路

2.晶体震荡电路

3.复位电路

51单片机基础设计(自学单片机第一天)(3)

51单片机特有的编程语句

1.头文件#include<reg51.h>:定义了一些51单片机特殊寄存器等

2.sfr(special function register):特殊功能寄存器声明。

sfr P0 = 0x80;

0x80为寄存器地址,通过地址来访问寄存器(注意这个 P 必须大写)

只有声明了这条语句,编译器才知道P0是什么东西。

3.sbit:特殊功能位声明

sbit led = P0^0//P0口的第0位取了一个更形象的名字叫做led

IO口是特殊功能寄存器,初始化值为高电平。P0口有8位(bit),正好是一个字节Byte

区分字节地址和位地址

P0的字节地址是80H。

SP的字节地址是81H。

----

P0的字节地址是80H,它有8个bit(P0^0 - P0^7), 对应的 位地址是80H~87H。

位地址81H,和SP的字节地址81H,没有冲突。

51单片机基础设计(自学单片机第一天)(4)

位 操作和总线操作 点亮led

keil编译c文件,然后生成hex文件加载到proteus中

51单片机基础设计(自学单片机第一天)(5)

1.位操作

#include<reg51.h> sbit led7 = P1^7; void main() { led7=1; while(1); }

这样就完成了操作,不影响P1口上其它IO的值

2.总线操作

要求让P1口的最高位置(P1^7)为“1”,其它为0

#include<reg51.h> void main() { P1 = 0x80;//注意:1000 0000 P0口中存储的数据 while(1); }

内存地址是内存当中存储数据的一个标识,并不是数据本身,通过内存地址可以找到内存当中存储的数据。

51单片机基础设计(自学单片机第一天)(6)

,