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点亮,测试成功!