51单片机攻略—入门

51单片机攻略—入门测试:点亮一个LED

一、基础知识

(一)单片机的电平特性

1、TTL电平

TTL电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通信的标准技术。

2、RS232电平

RS232电平特性:高电平为-12V,低电平为+12V。

(二)各进制之间的转换

数字电路中的两种电平特性决定了其采用二进制,会计算各进制之间转换值。
如:1010B -> 10 -> AH (二进制 -> 十进制 -> 十六进制)

(三)二进制数的逻辑运算

1、与(&&)

0&0=0&1=1&0=0,1&1=1

2、或(||)

0|0=0,1|0=0|1=1|1=1

3、非(!)

0!=1,1!=0

4、异或运算

两值相异(不同)结果为1
0异或0为0,0异或1为1

5、同或运算

两值相同结果为1
0同或0为1,0同或1为0

(四)80C51系列

1、定义

80C51单片机属于MCS-51系列单片机,包括多个公司生产的单片机,不再赘述。

2、引脚封装

分为总线型与非总线型:
总线型有四组八位的IO口,非总线型只有20引脚。
总线型拓扑结构是指采用单根传输线作为总线,所有工作站都共用一条总线。总线型拓扑结构的优点是电缆长度短,布线、维护容易,便于扩充,总线中任一节点发生故障都不会造成整个网络的瘫痪,可靠性高;缺点是故障诊断、隔离困难,实时性不强。

3、8051的内部结构

(1)总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

(2)组成部分

CPU:
中央处理器(CPU,central processing unit)由运算和控制逻辑组成,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,还包括中断系统和部分外部特殊功能寄存器;
RAM:
用以存放可以读写的数据,随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。
ROM:
ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。
I/O口:
四个八位并行I/O口,即可用作输入,也可用作输出。
T/C:
两个定时/计数器,既可以工作在计时模式,也可以工作在计数模式。
五个中断源的中断控制系统:

一个全双工UART(通用异步接收发送器)的串行I/O口:
用于实现单片机之间、单片机与微机之间的通信。
片内振荡器和时钟产生电路,石英晶体和微调电路需要外接。

(五)C51知识

1、C51介绍

单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。

2、C51数据类型

基本数据类型与C语言相同,不再赘述。
扩充定义:

(1)sfr:

特殊功能寄存器声明。

(2)sfr16:

sfr的16位数据说明。

(3)sbit:

特殊功能位声明。

(4)bit:

位变量声明。

3、C51数据存储类型

与C语言相同,不再赘述。

4、C51包含的头文件

reg51.h,reg52.h等。

5、C51的运算符

与C语言相同,不再赘述。
&:按位与。
|:按位或 。 >>:位右移,最低位溢出,最高位补0。

6、C51的基本语句

与C语言相同,不再赘述。
if while for switch/case do-while
中断服务程序:

/*
函数名()interrupt n using m{
	函数内部
}
*/

I/O口定义:

sbit beep = P1^2;

(六)单片机

1、最小系统运行必要条件:

电源、晶振、复位电路

2、对单片机任意I/O口的随意操作:

输出控制电平高低、输入检测电平高低

3、定时器:

常用方式

4、中断:

外部、定时器、串口中断

5、串口通信:

单片机之间、单片机与微机之间

(七)KEIL软件

1、建立工程:

在这里插入图片描述

2、添加文件:

添加文件并以 .c 的格式保存在工程中,添加至左侧source file中
在这里插入图片描述
之后就可以开始在单片机上编程了!

二、单片机编程

(一)测试:点亮一个发光二极管

一个发光二极管的电流是3-10mA,应选取电阻与二极管串联保护电路,也可加锁存器模块进行模块隔离。二极管与电阻的正极接Vcc,负极接单片机I/O口,压降约1.7V左右,故应选约1K电阻。51单片机所有IO口上电之后默认为高电平,故程序控制一个I/O口为低电平即可点亮发光二极管。

#include <reg52.h>
sbit B1 = P1^0;
void main(){
	B1 = 0;
}

之后在keil中编译,生成 .hex 文件,再使用 stc_isp 软件将 .hex 文件烧录至单片机中,上电运行。
在这里插入图片描述
板子自带的LED1被点亮
在这里插入图片描述
P1^0口与Vcc外接LED点亮,测试成功!

发布了11 篇原创文章 · 获赞 3 · 访问量 900

猜你喜欢

转载自blog.csdn.net/m0_46115596/article/details/104111624