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

51单片机攻略—入门相关推荐

  1. 51单片机的新手入门前所有疑问整理

    51单片机的新手入门前所有疑问整理 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比较闲 ...

  2. 51单片机c语言定时器程序,51单片机定时器设置入门与程序解析

    89C51单片机有两个计数器T0和T1,每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535. 其次.提供给定时器 ...

  3. 基于8266WIFI模块实现智能手机与51单片机的通信入门

    1  芯片及电路的介绍 1.1  8266WIFI模块 在文章的最开始我们首先要介绍今天的主角,8266WIFI模块.这是一个非常好用的模块,其他的废话不在多说,我们直接上干货. 这是一张我从百度上盗 ...

  4. 51单片机最全入门总结

    上一篇:实验室单片机知识点(一) 单板机 将CPU芯片.存储器芯片.I/O接口芯片和简单的I/O设备(小键盘.LED显示器)等装配在一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板 ...

  5. 51单片机程序开发入门知识

    51单片机在我的理解上来说,就是遵循51指令集工作的芯片.他就像一台超微型的电脑,里面有内存.硬盘.CPU等基本配备. 而他所谓的CPU使用的就是51指令集,他的硬盘就是内置的Flash,他的内存也是 ...

  6. 51单片机编程简单入门——点亮实验板上的LED灯

    1.使用uVision4创建项目 2.选择MCU的型号:Atmel->AT89C52 3.是否创建C51启动文件,选否.启动文件以前汇编常用,现在少用了. 4.新建文件,需指定命名为.c文件 5 ...

  7. 使用51单片机控制舵机入门

    舵机(sg90,板子是普中的51) 本人小白一枚,昨天用51实现了舵机的几个小功能,帮助和我一样初学的朋友~(。・`ω´・) 如有错误不足还请大家指点 接线 红电源 棕接地 橙色数据线 代码 希望实现 ...

  8. 第一章 51单片机开发入门知识介绍

    第一章 单片机开发入门知识介绍 1.1 51单片机介绍 51单片机是对所有兼容Intel 8031指令系统的单片机的统称. 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技 ...

  9. 51单片机入门指南-基于STC89C52(持续更新)

    一.环境介绍 编程IDE: keil5 单片机型号: STC89C51/52 开发板: 普中科技的开发板 完整PDF资源下载地址: https://download.csdn.net/download ...

最新文章

  1. IDEA热部署基于maven的web项目
  2. jQuery队列控制方法详解queue()/dequeue()/clearQueue()
  3. 如何利用webmin在Linux主机中添加网站
  4. VIM编辑器使用技巧
  5. 动态内表及动态ALV显示
  6. mycat1.5~1.6的一个bug
  7. Spring下载地址
  8. lmbs PHP,PHP 清空 MySql 指定数据表中的所有数据
  9. python bootstrap 视频_想用Django+ Bootstrap写一个网站, 有哪些比较系统完整的书或者视频可以参考?...
  10. 容器编排技术 -- Kubernetes kubectl scale 命令详解
  11. Angular专题系列之一:初识Anjularjs
  12. mongodb objectid java_我可以确定字符串是否是MongoDB ObjectID吗?
  13. UILongPressGestureRecognizer
  14. 【渝粤教育】国家开放大学2019年春季 2083信息技术与教育技术(2) 参考试题
  15. 求助:CISCO2811DHCP中继配置
  16. 军用设备环境试验方法湿热试验标准
  17. python爬网页html乱码问题
  18. 通过URL链接将文件下载到本地
  19. SqlServer高级函数使用
  20. @synthesize 和 @dynamic 分别表示什么

热门文章

  1. 虚拟机网络的拓扑结构
  2. 梦幻西游这款游戏如何?
  3. 如何恢复录音删除的录音文件_手机录音机的音频文件在哪
  4. 全球及中国反丁烯二酸行业销售动态及投资前景预测报告2022~2027年
  5. 计算机艺术文化主题名称,集思广益,校园文化节主题名称推荐
  6. iphone,ipad模拟器截图
  7. 微信小程序之阿里图标库icon的symbol使用方式
  8. 对于高阶指针的完美剖析
  9. 创建组合索引时,索引列顺序的选择
  10. Python 自动操作浏览器