基于C语言 51单片机应用技术 速成教程(持续更新中)

目录

前言

第一章  基础知识

1.1 电子元器件

1.2  电路知识

1.3  计算机基础知识

第二章 51单片机最小系统

2.1 技术文件识读

2.2 单片机

2.3  复位电路

2.4   时钟电路

2.5  电源电路

第三章  使用C语言对51单片机进行编程

 3.1 并行端口控制

 3.2  控制LED灯

 3.3  延时函数

  3.4 定时器

  3.5 计数器

  3.6  数码管

  3.7  LCD

  3.8 串口

  3.9 智能控制 


前言

     各位朋友你们好,我是学应用电子技术的在校大学生,因为假期实在是太无聊了,在这里写点文章。第一次写文章,有写得不好的地方请大神帮我指出来,我会加以改正  谢谢。

 每天更新一小节内容。

         我写这个教程的初衷是为了无偿分享我的技术。 此教程是针对51单片机硬件系统设计和零基础初学习能快速上手所写的,所以不会涉及到特殊寄存器的知识。

电子元器件部分不会过多的介绍元器件,只涉及单片机应用系统常用的电子元器件。

后续会写一套全面的教程。

 第一章涉及的电路知识是后续学习的基础  是必须掌握的知识,学完第一章的知识,市面上所有的单片机开发板都电路图都可以看懂·。

本教程学完后可以设计单片机开发板。

第一章  基础知识

1.1 电子元器件

电阻

电阻实物图

电阻 全称 电阻器,是对电流具有一定阻碍作用的电子元器件,在各种供电电路和信号电路中都有着广泛的应用。
电阻使用  R  表示

描述电阻器阻值大小的基本单位为欧姆,用Ω表示。此外还有千欧(kΩ)和兆欧(MΩ)两种单位,它们之间的换算关系为:1kΩ=1000Ω,1MΩ=1000kΩ。
电阻器的种类很多:
1、根据电阻器的材料可分为线绕电阻器、膜式电阻器以及碳质电阻器等()。
2、根据按电阻器的用途可分为高压电阻器、精密电阻器、高频电阻器、熔断电阻器、大功率电阻器以及热敏电阻器等。
3、根据电阻器的特性和作用可以分为固定电阻和可变电阻两大类。固定电阻器是阻值固定不变的电阻器,主要包括碳膜电阻器、碳质电阻器、金属电阻器以及线绕电阻器等。可变电阻是阻值在一定范围内连续可调的电阻器,又被称为电位器。
4、根据电阻器的外观形状可分为圆柱形电阻器、纽扣电阻器和贴片电阻器等。

                                                             电阻图形符号 

电容

电容实物图
 

电容 全称 电容器 ,是供电电路和信号电路中的一种电荷储能电子元器件。
 由两个极板中间用绝缘材料隔开而构成,其具有储存电荷的能力。电容器的基本单位用法拉(F)表示,其他常用的电容器单位还有毫法(mF)、微法(μF)、纳法(nF)以及皮法(pF)。
这些单位之间的换算关系是:1法拉(F)=103毫法(mF)=106微法(μF)=109纳法(nF)=1012皮法(pF)。
电容的种类很多,分类方法也有很多种。
1、按照结构主要分为固定电容器和可变电容器。
2、按照电解质主要分为有机介质电容器、无机介质电容器、电解电容器及空气介质电容器等。
3、按照用途主要分为旁路电容、滤波电容、调谐电容及耦合电容等。
4、按照制造材料主要分为瓷介电容、涤纶电容、电解电容及钽电容等。
电容器在电路中,通常使用英文大写字母 C 表示,贴片电容通常用英文大写字母 C、MC 或 BC 等表示,排容用英文大写字母 CP 或 CN 表示,电解电容用英文大写字母 C 、 EC 、CE 或 TC 表示。 

电容图形符号

电感

电感实物图

  电感器是电磁储能电子元器件,在供电电路和信号电路中都有着广泛的应用。
  电感器的结构类似于变压器,但是其只有一个绕组。电感器是根据电磁感应原理制作而成的,其对直流电压具有良好的阻抗特性。
  电感器的种类和分类方法也有很多种,如按其结构的不同可分为线绕式电感器和非线绕式电感器;按用途可分为振荡电感器、校正电感器、阻流电感器、滤波电感器、隔离电感器等;按工作频率可分为高频电感器、中频电感器和低频电感器。
  电感器通常使用大写英文字母“L”表示,其基本单位是亨利(H),常用的单位还有毫亨(mH)和微亨(μH),它们之间的换算关系是1H=1000mH,1mH=1000μH。

电感图形符号 

二极管

   由P型半导体和N型半导体组成的PN结引出两根导线封装而成,具有单向导电性。

制造材料有两种:分别是硅和锗。使用硅材料的称为 硅管  ,使用锗材料的称为 锗管。

硅管的导通电压是0.7V

锗管的导通电压是0.3V

使用 VD 表示。

二极管图形符号

三极管

 PNP型三极管:由两块P型半导体中间夹一个N型半导体并引出三根导线。

NPN型三极管:由两块N型半导体中间夹一个P型半导体并引出三根导线。

QR 、Q 、VT或V表示。

三极管图形符号

1.2  电路知识

   接地符号

电源符号

电阻的应用 

在单片机中电阻主要用来 限流、电位上拉和下拉

上拉电阻

作用:将端口电位拉高

下拉电阻

作用:将端口电位拉低

限流电阻

作用:限制通过元器件的电流,以免元器件过载

 电容的应用

退耦电容 

 作用:一般用于直流电路中,用来滤除交流成分的干扰

  谐振电容

   

作用:仅使用在晶振电路中(时钟电路)

三极管  在单片机的应用

三极管开关应用

我解释一下上面的电路

三极管的导通条件是 集电的电压>基极电压>发射极电压,集电极连接的是单片机引脚(5V),vcc是3.3V,当KEY按下时基极接通,发射极因为接地所以电压比基极小,所以就导通了。

1.3  计算机基础知识

在这一章我们将学到工具软件的使用、进制转换、C语言基础等

我们先说一说工具软件吧,我们需要用到编程软件Keil 和仿真软件proteus

进制转换(51 单片机常用进制)

二进制:  0 1

十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

十进制:0 1 2 3 4 5 6 7 8 9

十进制转二进制:128   64   32    16   8  4  2  1

用十进制数减上面的数字,不能减为0       能减为1

例:十进制数:254    二进制是:1111 1110

二进制转十进制就是将有 1 的对应的数加起来就行了

十六转二进制:8 4 2 1

先将十六进制数分成两个数字,然后逐个计算。

例:

      12  拆成   1 和  2

计算用8 4 2 1   方法和上面一样,不在过多赘述

使用C语言对51单片机进行编程

必需有的两行代码:

#include<reg51.h> //头文件



void main()  //主函数
{

}

注意:主函数只能有一个!!

第二章 51单片机最小系统

2.1 技术文件识读

在讲文件识读前要讲一讲元器件的选择与使用。

     在我们想让单片机实现些功能时,需要根据自己的实际需求使用一些元器件。但我们该如何去选择和使用它们呢??

  首先我们需要知道我们需要实现什么样的功能,然后定制方案,选择最佳方案,最后是购买与组装电路。

下面举个案例:

                 制作一个能控制电灯的东西,功能是让灯泡亮一段时间然后就灭。

我想了两种实现方案:

     方案1、使用电容和电阻实现

      方案2、使用51单片机实现

首先我们要以几个方面来选择方案:

1、可行性

2、难易程度

3、成本

首一点先明确上面两个方案都是可行的。

难易程度:方案1容易实现

成本:  方案一只需要几毛钱,方案2需要十几元左右。

但我选择方案2 因为我讲的是单片机。

过程

首先我们要去找相应元器件的技术文件,网上有很多,但我推荐使用 嘉立创EDA

  这个工具对初学者非常友好,可以在里面找技术文件和画电路图以及做出PCB(印刷电路板)

  本教程最终做出来的东西就是PCB板。

 工具主界面

2.2 单片机

51单片机原理与设计方案(包含原理图与PCB)_硬件之家的博客-CSDN博客_单片机电路设计

2.3  复位电路

2.4   时钟电路

2.5  电源电路

第三章  使用C语言对51单片机进行编程

 3.1 并行端口控制

第一个程序

设计:需要用到  P1.0 这个端口,使用AT89c51处理程序 , 使用一只LED做点亮动作(连接后使用低电有效)

程序要求:P1.0持续输出低电平

#include<reg51.h>  //头文件

sbit LED=P1^0;  //在C语言当中的  .  用 ^ 代替  sbit 是位控制

void mian()  //主函数
{
  
  while(1)     //无限循环(1)  不循环(0)
       {

      LED=0;    //P1^0 输出低电平
        }

}

 3.2  控制LED灯

这节我们需要知道什么是共阳极,什么是共阴极 以及怎么去连接它。

阳极(正极)

阴极(负极)

共阳极:将所有的发光二极管(LED)阳极连接到电源的正极,阴极连接芯片引脚。

共阴极:讲所有的发光二极管(LED)阴极接地,阳极连接到芯片引脚。

注意:我们在使用发光二极管(LED)时应在它的阳极或阴极加一个限流电阻!!否则可能会烧毁发光二极管(LED)!!

那么接下来我们将学习怎么控制它:

位控制

#include<reg52.h>  //头文件

sbit LED0=P1^0;  //在C语言当中的  .  用 ^ 代替  sbit 是位控制
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;


void mian()  //主函数
{
  
  while(1)     //无限循环(1)  不循环(0)
       {

      LED=0;    //P1^0 输出低电平    在电子电路中1代表高电平,0代表低电平
      LED1=0;  //P1^0 输出低电平    点亮LED 共阳极的时候为 0  共阴极的时候为 1
      LED2=0;  //P1^0 输出低电平
      LED3=0;  //P1^0 输出低电平
        }

}

字节控制

#include<reg52.h>

void main()//主函数


{
while(1)   //while循环
{
P1=0x00;   //P1里面包含了P1^0~P1^7

}
}

就有哥们就要问了: 里面的 P1=0x00  是什么意思?

首先我们要知道单片机里面有四组引脚,分别是 P0   P1   P2   P3

每组有8根引脚,我们在程序中使用其中一根需要用到这个格式 sbit +变量  传给  P1^0

其中P0在单片机内部没有上拉电阻,我们使用它点亮LED的时候要么共阳极,要么在每根引脚上添加一个上拉电阻。

在C语言中 0x 代表的是十六进制,00是它的值,这个值对应了那个引脚高电平,那个引脚低电平。

例如:

十六进制  0x00 换算成 二进制是 0000 0000

那么它对应的引脚都是为低电平

那么0xff 换算成二进制就是1111 1111

那么它对应的引脚都是为高电平

0xf5 换算成二进制 1111 0101

那么 P1^0-P1^3  都为1,后面四根 P1^4 和 P1^6 为低电平,P1^5和P1^7 为高电平

进制转换可以看前面写的,如果有什么不懂可以来问我。嘿嘿

 3.3  延时函数

  3.4 定时器

  3.5 计数器

  3.6  数码管

  3.7  LCD

  3.8 串口

  3.9 智能控制

从零开始 单片机 语言 刘建清 出版社: 国防工业出版社 发行时间: 2007 年01月 内容简介: 本书定位于让初学者从零起步,轻松学会单片机高级编程C语言以及实战技术。书中首先简要介绍了8051单片机的主要构成,然后重点介绍了单片机Cx51高级编程语言开发与仿真环境的使用方法,透彻地分析了Cx51的语法结构,并给出了大量实例。书中大多数实例和全部实验都经过了实验板的验证。 本书可供具有一定单片机基础的初学者,以及广大从事单片机应用系统开发研制的工技术人员阅读,也可以作为有关院校相关专业的教学参考用书。 目录: 第一章 单片基础知识  第一节 51系列单片机概述  第二节 80C51单片机的内部结构和外部引脚  第三节 80C51单片机的内部结构和外部引脚  第四节 51系列单片机的并行输入/输出接口  第五节 80C51单片机的时钟电路和复位电路 第二章 单片机C语言入门  第一节 认识C语言  第二节 简单C语言  第三节 单片机C语言开发步骤 第三章 单片机实验硬件环境的建立  第一节 单片机实验板  第二节 单片机仿真器  第三节 单片机编程器 第四章 Keli Cx51软件的使用  第一节 Keil Cx51简介  第二节  Keil Cx51软件的安装   第三节 uVision2集成开发环境  第四节 常用窗口介绍 第五章 Cx51数据与运算  第一节 标识符和关键字  第二节 数据类型  第三节 常量  第四节 变量   第五节 运算符和表达式 第六章  Cx51的基本语句  第一节 表达式语句和复合语句   第二节 条件选择语句   第三节 循环语句 第七章 Cx51函数  第一节 函数的分类和定义   第二节 函数的参数和返回值  第三节 函数的调用  第四节 函数变量的存储方式和种类 第八章 Cx51构造数据类型  第一节 数组  第二节 指针  第三节 结构  第四节 共用体  第五节 枚举 第九章 单片机中断、定时器串行口的C语言编程  第一节 单片机中断系统C语言编程   第二节 定时/计数器及实验  第三节 串行数据通信技术及实验  第十章 单片机实用接口C语言编程技术  第一节 LED显示器接口   第二节 链盘接口   第三节 LCD显示器接口   第四节 I2C总线接口  第五节 A/D和D/A转换接口   第六节 单片机应用技术综合实例 附录一 运算符的优先级和结合性 附录二 Keil Cx51编译器常见警告与错误信息的解决方法
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖毛毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值