51单片机入门_51单片机开发入门 - CSDN
  • 51单片机的构成: 8位cpu 4k字节ROM 128字节RAM 4个8位并口 1个全双工串行口 2个16位定时/寄存器。寻址范围64k。 前置知识 数字电路中只有两种电平:高电平与低电平。 TTL电平 TTL电平信号之所以被广泛...

    51单片机的构成:

    8位cpu     4k字节ROM    128字节RAM    4个8位并口    1个全双工串行口    2个16位定时/寄存器。寻址范围64k。

    前置知识

    • 数字电路中只有两种电平:高电平与低电平。

    TTL电平

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

    • 16进制与2进制转换

    https://jingyan.baidu.com/article/47a29f24292608c0142399cb.html 

    • 与,或,异或运算

    https://www.cnblogs.com/wisdom-jie/p/7732940.html

    • 移位 符 >> 、 <<

    https://baike.baidu.com/item/%E7%A7%BB%E4%BD%8D%E8%BF%90%E7%AE%97%E7%AC%A6/5622348?fr=aladdin

    基本结构

    • 总线分为地址总线,控制总线和数据总线。

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

    • RAM

    随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

    • ROM

     ROM是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失。

    • I/O

    I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。 

    • T/C

     定时器/计数器

     

    基本数据类型: 

     

    单片机结构:

    标号

    原理图上标号相同代表电路有连接

     

    展开全文
  • 51单片机经典入门教程(非常棒的教程).适合初学者详细的学习单片机
  • MSC-51单片机指以8051为核心的单片机,由美国的Intel公司在1980年推出,80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。 单片机:在一片集成电路芯片上集成...

    第一部分。单片机简介

    MSC-51单片机指以8051为核心的单片机,由美国的Intel公司在1980年推出,80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。

    单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。

    CPU( Central Processing Unit ):由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

    RAM( Random-Access Memory ):用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

    ROM (Read-Only Memory):用以存放程序、一些原始数据和表格;

    I/O(input/output)口:四个8位并行I/O口,既可用作输入,也可用作输出;

    T/C (timer/counter):两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

     数字电路中只有两种电平:高和低

    单片机为TTL电平: +5V       0V

    RS232电平:计算机的串口    -12V     +12V

    所以计算机与单片机之间通讯时需要加电平转换芯片max232等其他芯片

    数字电路的点评特性据定了他只能用二级制:

    二进制逻辑运算,与或非和异或

    数据类型:

    因为51单片机是8位的,所以他的数据类型一般用unsigned char 

    第二部分。引脚简介

    1.  电源引脚:Vcc (40脚):电源端,接+5V电源。

    Vss(Gnd) (20脚):接地端,接+5V电源地端

    2. 外接晶体引脚:XTAL1和XTAL2

    89C51内部有一个振荡器和时钟产生电路。

    XTAL1(19脚):   片内振荡电路反相放大器输入

    XTAL2(18脚):片内振荡电路反相放大器输出 当采用内部时钟时,片外连接石 英晶体和微调电容,产生原始 的振荡脉冲信号。

    采用外部时钟时, XTAL1输入 外部时钟脉冲信号, XTAL2悬空.

    3. 控制信号引脚:RST、ALE、PSEN、EA

    RST (9脚) : 复位信号输入端,高电平有效。

              保持两个机器周期高电平时,完成复位操作。

    ALE/PROG (30脚) :

    地址锁存允许输出端/编程脉冲输入端

    正常时,连续输出振荡器频率的1/6正脉冲信号。

    访问片外存储器时:

    作为锁存P0口低8位地址的控制信号。

    对8751片内 ROM编程写入时:作为编程脉冲输入端。

    PSEN (29脚): 外部程序存储器读选通输出信号

    访问片外ROM时,输出负脉冲作为读ROM选通.

    常连接到片外ROM芯片的输出允许端(OE)作外部ROM的读选通信号。

    EA/Vpp (31脚):

    外部程序存储器地址使能输入/编程电压输入端.   平常,接“1”时,CPU访问片内4KB的ROM,当地址超4KB时,自动转向片外ROM中的程序。当接“0”时,CPU只访问片外ROM。 第2功能Vpp              对8051编程时,编程电压输入端。

    4. 输入/输出端口引脚 P0、P1、P2、P3

    4个8位的并行输入/输出端口,共32个引脚。作为通用输入/输出端口

    通用输入/输出端口

         准双向口:  作输入时要先对锁存器写“1”。默认启动初始化为高电平

    P0端口(P0.0—P0.7,第39—32脚):

          漏极开路的准双向口, 内部没有上拉电阻,为搞阻状态,不能正常输出高低电平,做I/O时需要接上拉电阻(10K)

    P1端口(P1.0—P1.7,第1—8脚):

          内部带上拉电阻的准双向口,在做输入时要先1

    P2端口(P2.0—P2.7,第21—28脚):

          内部带上拉电阻的准双向口,与P1相似

    P3端口(P3.0—P3.7,第10—17脚):

          内部带上拉电阻的准双向口,做I/O时与P1相似,另外有第二功能

    P3口的第二功能

     

    展开全文
  • 1、单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。 CPU( Central Processing ...

    第一节、机基础知识

    一、单片机概念

    1、单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。
    CPU( Central Processing Unit ):由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
    RAM( Random-Access Memory ):用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
    ROM (Read-Only Memory):用以存放程序、一些原始数据和表格;
    I/O(input/output)口:四个8位并行I/O口,既可用作输入,也可用作输出;
    T/C (timer/counter):两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

    Intel公司1980年推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。
    80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。

    主要的80C51单片机
    Intel:80C31、80C51、80C32、80C52、87C52
    ATMEL:AT89C51、AT89C52、AT89C2051等;
    STC:89C51、89C52、90C51、STC15w
    Philips:P80C54、P80C58、P87C54
    华邦:W78C54、W78C58、W78E54
    Siemens:C501-1R、C513A-H
    等公司的许多产品 。

    芯片封装简介

    单片机用途
    凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等

    工业自动化:数据采集、测控技术。

    智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。

    消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。

    通讯方面:调制解调器、程控交换技术、手机、小灵通等。

    武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。

    学习51单片机C语言编程基本知识
    电平特性
    数字电路中只有两种电平:高和低
    单片机为TTL电平: 高 +5V 低 0V
    RS232电平:计算机的串口 高 -12V 低+12V
    所以计算机与单片机之间通讯时需要加电平转换芯片max232等其他芯片
    二进制
    数字电路中的两种电平特性决定了它使用二进制运算
    十进制
    十六进制
    二进制
    十进制
    十六进制
    二进制
    0
    0x0
    0000
    1
    0x1
    0001
    2
    0x2
    0010
    3
    0x3
    0011
    4
    0x4
    0100
    5
    0x5
    0101
    6
    0x6
    0110
    7
    0x7
    0111
    8
    0x8
    1000
    9
    0x9
    1001
    10
    0xA
    1010
    11
    0xB
    1011
    12
    0xC
    1100
    13
    0xD
    1101
    14
    0xE
    1110
    15
    0xF
    1111
    二进制逻辑运算
    逻辑变量 : 只有两个:“0”(假)和“1”(真)。
    逻辑“与”(逻辑乘)运算L=A·B 或者 L=A∧B
    “与”的运算法则为:
    0·0=0 , 0·1=0 ,
    1·0=0 , 1·1=1
    A·0=0,A·1=A,A·A=A

    逻辑“或”(逻辑加)运算L=A+B 或者 L=A∨B
    “或”的运算法则为:
    0+0=0 , 0+1=1
    1+0=1 , 1+1=1
    A+0=A ,A+1=1 ,A+A=A

    逻辑“非”(逻辑取反)运算L= A
    “非”的运算法则为:
    0 = 1 ,1 = 0
    A + A = 1 ,
    A·A = 0 ,A = A

    “异或”
    其运算规则是:

    C语言基本数据类型

    基本语法
    变量定义
    数据类型 变量名
    int num1;
    double num2 = 2;
    unsigned short num3;
    if()语句
    if(条件){分支}
    if(条件){分支1}else{分支2}
    if(x>=0)
    {
    y=y/2;
    }
    else
    {
    y=y*x;
    }
    while()语句
    while(条件){循环体}
    while(i<10)
    {
    s+=k;
    }
    for()语句
    for(表达式1;条件2;表达式3){循环体}
    for(i=0;x!=y;j++)
    {
    z/=3;
    }
    函数定义
    数据类型 函数名(形参列表){函数体}
    int add(int num1,int num2)
    {
    return num1+num2;
    }
    三、80C51引脚简介

    1. 电源引脚:Vcc (40脚):电源端,接+5V电源。
      Vss(Gnd) (20脚):接地端,接+5V电源地端
    2. 外接晶体引脚:XTAL1和XTAL2
      89C51内部有一个振荡器和时钟产生电路。
      XTAL1(19脚): 片内振荡电路反相放大器输入
      XTAL2(18脚):片内振荡电路反相放大器输出 当采用内部时钟时,片外连接石 英晶体和微调电容,产生原始 的振荡脉冲信号。
      采用外部时钟时, XTAL1输入 外部时钟脉冲信号, XTAL2悬空.
    3. 控制信号引脚:RST、ALE、PSEN、EA
      RST (9脚) : 复位信号输入端,高电平有效。
      保持两个机器周期高电平时,完成复位操作。
      ALE/PROG (30脚) :
      地址锁存允许输出端/编程脉冲输入端
      正常时,连续输出振荡器频率的1/6正脉冲信号。
      访问片外存储器时:
      作为锁存P0口低8位地址的控制信号。
      对8751片内 ROM编程写入时:作为编程脉冲输入端。
      PSEN (29脚): 外部程序存储器读选通输出信号
      访问片外ROM时,输出负脉冲作为读ROM选通.
      常连接到片外ROM芯片的输出允许端(OE)作外部ROM的读选通信号。
      EA/Vpp (31脚):
      外部程序存储器地址使能输入/编程电压输入端. 平常,接“1”时,CPU访问片内4KB的ROM,当地址超4KB时,自动转向片外ROM中的程序。当接“0”时,CPU只访问片外ROM。 第2功能Vpp 对8051编程时,编程电压输入端。
    4. 输入/输出端口引脚 P0、P1、P2、P3
      4个8位的并行输入/输出端口,共32个引脚。作为通用输入/输出端口
      通用输入/输出端口
      准双向口: 作输入时要先对锁存器写“1”。默认启动初始化为高电平
      P0端口(P0.0—P0.7,第39—32脚):
      漏极开路的准双向口, 内部没有上拉电阻,为搞阻状态,不能正常输出高低电平,做I/O时需要接上拉电阻(10K)
      P1端口(P1.0—P1.7,第1—8脚):
      内部带上拉电阻的准双向口,在做输入时要先1
      P2端口(P2.0—P2.7,第21—28脚):
      内部带上拉电阻的准双向口,与P1相似
      P3端口(P3.0—P3.7,第10—17脚):
      内部带上拉电阻的准双向口,做I/O时与P1相似,另外有第二功能
      P3口的第二功能

    仿真软件Proteus
    Proteus 软件是由英国 Labcenter Electronics 公司开发的EDA(Electronic Design Automation)工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus 软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩,是近年来备受电子设计爱好者青睐的一款新型电子线路设计与仿真软件。
    在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计一气呵成,真正实现了从概念到产品的完整设计。
    主要功能
    ISIS——智能原理图输入系统,系统设计与仿真的基本平台。
    ARES ——高级PCB( Printed Circuit Board)布线编辑软件
    VSM(虚拟仿真模式)
    交互式仿真—— 实时直观地反映电路设计的仿真结果;
    基于图表的仿真(ASF)—— 用来精确分析电路的各种性能,如频率特性、噪声特性等。
    工具箱中各图标按钮对应的操作如下

    库元件的分类

    1. 大类(Category)
      在左侧的“Category”中,共列出了以下几个大类
      要从库中拾取一个元件时,首先要清楚它的分类是位于哪一类,然后在打开的元件拾取对话框中,选中“Category”中相应的大类
      2子类(Sub-category)
      选取元件所在的大类(Category)后,再选子类(Sub-category),也可以直接选生产厂家(Manufacturer),这样会在元件拾取对话框中间部分的查找结果(Results)中显示符合条件的元件列表。从中找到所需的元件,双击该元件名称,元件即被拾取到对象选择器中去了。如果要继续拾取其他元件,最好使用双击元件名称的办法,对话框不会关闭。如果只选取一个元件,可以单击元件名称后单击“OK”按钮,关闭对话框。如果选取大类后,没有选取子类或生产厂家,则在元件拾取对话框中的查询结果中,会把此大类下的所有元件按元件名称首字母的升序排列出来
      各子类介绍
    2. Analog ICs
      模拟集成器件共有8个子类

    2.Capacitors
    电容共有23个分类

    1. CMOS 4000 series
      CMOS 4000系列数字电路共有16个分类

    2. Connectors
      接头共有8个分类

    3. Data Converters
      数据转换器共有4个分类

    4. Debugging Tools
      调试工具数据共有3个分类

    5. Diodes
      二极管共有8个分类

    6. Inductors
      电感共有3个分类

    7. Laplace Primitives
      拉普拉斯模型共有7个分类

    8. Memory ICs
      存储器芯片共有7个分类

    9. Microprocessor ICs
      微处理器芯片共有13个分类

    10. Modelling Primitives
      建模源共有9个分类

    11. Operational Amplifiers
      运算放大器共有7个分类

    14.Optoelectronics
    光电器件共有11个分类

    15.Resistors
    电阻共有11个分类

    16.Simulator Primitives
    仿真源共有3个分类

    17.Switches and Relays
    开关和继电器共有4个分类

    1. Switching Devices
      开关器件共有4个分类

    19.Thermionic Valves
    热离子真空管共有4个分类

    20.Transducers
    传感器共有2个分类

    21.Transistors
    晶体管共有8个分类

    五.编译软件Keil
    Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要Windows操作系统。使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
    Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
    C51 有以下扩展关键字(共21个):
    at alien bdata bit code compact data far idata interrupt large pdata priority reentrant sbit sfr sfr16 small task using xdata
    常用关键字说明
    sfr:sfr用来定义特殊功能寄存器
    sfr16:定义一个16位的特殊功能寄存器
    sbit:定义一个特殊功能寄存器的某一位
    bit:定义位变量
    code: 指定存储位置位于程序存储器
    interrupt:声明中断服务程序
    using:指定的寄存器组
    扩展函数

    需要包含intrins.h头文件
    常用函数
    iroliror 对unsigned int数循环左移、右移
    lrollror 对unsigned long数循环左移、右移
    crol、_cror_对unsigned char数循环左移、右移
    六、点亮第一个LED灯

    LED发光二极管一般压降为1.7 V 电流3mA即可点亮,因此串联1K电阻限流限压,长脚的为正极。
    D1点亮 p1.0设置为低电平,有电流流过,二极管发光
    D2不亮 p1.1默认为高电平,没有点亮流过,二极管不会发光
    仿真时 红色代表高电平,蓝色代表低电平,灰色代表高阻态
    流水灯的实现
    一、80c51的最小应用系统

    电源+5v 3V接C6 (104 为10 *104 0.1uF)和C5(10uF)提高抗干扰性
    复位电路外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位管脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态,将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正常工作。
    当系统上电时,电容充电会给rst引脚高电平,等电容稳定后将没有电流流过.
    振荡电路 振荡频率越高表示单片机运行速度越快,但同时对存储器的速度和印刷电路板的要求也就越高。如同木桶原理。同时单片机性能的好坏,不仅与CPU运算速度有关,而且与存储器的速度、外设速度等都有很大关系。因此一般选用6~12MHZ。并联谐振电路对电容的值没有严格要求,但会影响振荡器的稳定、振荡器频率高低、起振快速性等。一般根据手册说明选定.
    二、下载程序到stc90c51单片机

    三、单片机工作的基本时序
    (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,常用12MHZ,11.0592MHZ。 
    (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。
    (3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 
    (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。

    四、简单的软件延时
    使用keil查看程序执行时间

    延时100ms函数

    延时1s闪烁

    流水灯设计
    从上到下每隔500ms依次点亮

    P0口上拉电阻
    P0口是开路漏极只能输出低电平,不能正常输出高电平。所以做I/O时需要加上拉电阻

    每隔500ms依次点亮其中一个

    来回依次循环点亮一个led

    加减速流水灯

    花样流水灯

    利用_crol_、_cror_实现流水灯

    多I/O口的流水灯

    第三节、数码管和定时器
    显示器及其接口
    单片机系统中常用的显示器有:
    发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。
    LED数码显示方式及电路

    使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。
    静态显示方式
    LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
    数码管编码表

    动态显示
    动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

    共阴时数码管位选低电平有效,共阳时送高电平。
    定时器和计数器
    定时/计数器的结构和工作原理
    一、定时/计数器的结构
    定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
    加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
    可见,由溢出时计数器的值减去计数器初值才是加1计数器的计数值。
    设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。
    设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2us。
    定时器存储寄存器

    TCON—定时器控制寄存器的位分配(地址0x88、可位寻址)

    TCON——定时器控制寄存器的位描述

    TMOD—定时器模式寄存器的位分配(地址0x89、不可位寻址)

    TMOD——定时器模式寄存器的位描述

    TMOD——定时器模式寄存器M1/M0工作模式

    IE—中断使能寄存器的位分配(地址0xA8、可位寻址)

    IE—中断使能寄存器的位描述

    IP—中断优先级寄存器的位分配(地址0xB8、可位寻址)

    IP—中断优先级寄存器的位描述

    使用定时器的方法
    第一:设置特殊功能寄存器TMOD,配置好工作模式。
    第二:设置计数寄存器TH0和TL0的初值。
    第三:设置IE中断允许位
    第四:设置TCON,通过TR0置1来让定时器开始计数。
    第五:判断TCON寄存器的TF0位,监测定时器溢出情况。

    第四节、按键检测、中断系统
    一、键盘的分类
    键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。
    非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。
    独立按键原理

    按键检测方法
    先给I/O口写入1,输出高电平,当按键按下时,读相应端口为0低电平时表示按键按下
    P0 = 0xff;//写入1
    if(P0 == 0xfe)
    {
    //P0.0按键按下
    }

    矩阵按键变独立按键

    矩阵键盘检测使用行列扫描的办法,当keyOut输出高电平,再给keyIn某列送低电平其他送高电平从而确定列,然后检测keyOut那行为低电平确定行,行列确定即可确定那个按键按下。

    按键在闭合和断开时,触点会存在抖动现象:

    按键消抖方法
    加10ms的延时再判断是否按下或松开

    2、检查01的连续性

    单片机中断系统

    引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。
    随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:
    分时操作:CPU可以分时为多个I/O设备服务,提高了计算机的利用率;
    实时响应:CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;
    可靠性高:CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。
    80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。

    (P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。
    (P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。
    RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。
    IT0(TCON.0),外部中断0触发方式控制位。
    当IT0=0时,为电平触发方式。
    当IT0=1时,为边沿触发方式(下降沿有效)。
    IE0(TCON.1),外部中断0中断请求标志位。
    IT1(TCON.2),外部中断1触发方式控制位。
    IE1(TCON.3),外部中断1中断请求标志位。
    TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
    TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
    中断允许控制,CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
    EX0(IE.0),外部中断0允许位;
    ET0(IE.1),定时/计数器T0中断允许位;
    EX1(IE.2),外部中断0允许位;
    ET1(IE.3),定时/计数器T1中断允许位;
    ES(IE.4),串行口中断允许位;
    EA (IE.7), CPU中断允许(总允许)位。
    80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。
    PX0(IP.0),外部中断0优先级设定位;
    PT0(IP.1),定时/计数器T0优先级设定位;
    PX1(IP.2),外部中断0优先级设定位;
    PT1(IP.3),定时/计数器T1优先级设定位;
    PS (IP.4),串行口优先级设定位;
    PT2 (IP.5) ,定时/计数器T2优先级设定位。
    同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

    80C51单片机的中断优先级有三条原则:
    CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
    正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
    正在进行的低优先级中断服务,能被高优先级中断请求所中断。
    为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。
    80C51单片机中断处理过程
    中断响应条件和时间
    中断源有中断请求;
    此中断源的中断允许位为1;
    CPU开中断(即EA=1)。
    以上三条同时满足时,CPU才有可能响应中断。
    第五节、串口通信
    计算机串行通信基础
    随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
    计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。
    并行通信:通信时数据的各个位同时传送,可以实现字节为单位通信,但是通信线多占用资源多,并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。

    串行通信:将数据字节分成一位一位的形式在一条传输线上逐个地传送。一次只能发送一位,要发送8次才能发送一个字节。
    串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。

    RS232通信接口

    1、载波检测DCD
    2、接收数据RXD
    3、发送数据TXD
    4、数据终端准备好DTR
    5、信号地线
    6、数据准备好DSR
    7、请求发送RTS
    8、清除发送CTS
    9、振铃提示RI

    TTL/CMOS电平标准:高电平‘1’ >2.x V 低电平’0’ <0.x V
    232电平标准: 高电平‘1’ > -3V ~ -15V 低电平’0’ < +3V~ +15V
    USB转串口通信

    串行通信的基本概念
    异步通信与同步通信
    1、异步通信
    异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。

    异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。
    异步通信的数据格式 :
    异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

    串行通信的错误校验
    1、奇偶校验
    在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。
    2、代码和校验
    代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。
    循环冗余校验
    这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。
    传输速率与传输距离
    1、传输速率
    比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/秒 = 2400 bps
    2、传输距离与传输速率的关系
    串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。当传输线使用每0.3m(约1英尺)有50PF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过1000 bps 时,最大传输距离迅速下降,如9600 bps 时最大距离下降到只有76m(约250英尺)。
    三种基本通信类型
    单工通信:只允许一方向另外一方传送信息,另一方不能回传信息,比如电视遥控器、收音机广播等。
    半双工通信:数据可以在双方之间传播,同一时刻只能其中一方发给另外一方,比如对讲机就是典型半双工。
    全双工通信:发送数据的同时也能够接收数据,两者同步进行,比如我们的电话通信。
    80C51的串行口

    有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。
    SCON——串行控制寄存器的位分配(地址0x98、可位寻址)

    SCON——串行控制寄存器的位描述

    SM0和SM1为工作方式选择位,可选择四种工作方式:

    SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。
    在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。
    TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。
    在方式0和方式1中,该位未用。
    RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。
    TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。
    RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
    PCON : 电源控制寄存器 (不可位寻址)

    SMOD:波特率选择位。当用软件置位SMOD,即SMOD=1,则使串行通信方式1、2、3的波
    特率加倍;SMOD=0,则各工作方式的波特率加倍。复位时SMOD=0。
    SMOD0:帧错误检测有效 控制位。当SMOD0=1,SCON寄存器中的SM0/FE位用于FE(帧错误检测)功能;当SMOD0=0,SCON寄存器中的SM0/FE位用于SM0功能,和SM1一起指定串行口的工作方式。复位时SMOD0=0
    串口通信程序的基本步骤
    1、配置串口为模式1。
    2、配置定时器T1为模式2,即自动重装模式。
    3、根据波特率计算TH1和TL1的初值,如果有需要可以使用PCON进行波特率加倍。
    4、打开定时器控制寄存器TR1,让定时器跑起来。
    80C51串行口的工作方式
    方式0
    方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。
    1、方式0输出

    2、方式0输入

    方式1
    方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。

    方式1输出

    方式1输入

    用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。
    方式2和方式3
    方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚 。

    方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。
    波特率的计算
    在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。
    串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。
    方式0的波特率 = fosc/12
    方式2的波特率 =(2SMOD/64)· fosc
    方式1的波特率 =(2SMOD/32)·(T1溢出率)
    方式3的波特率 =(2SMOD/32)·(T1溢出率)
    当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。
    T1 溢出率 = fosc /{12×[256 -(TH1)]}
    在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。

    串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:
    确定T1的工作方式(编程TMOD寄存器);
    计算T1的初值,装载TH1、TL1;
    启动T1(编程TCON中的TR1位);
    确定串行口控制(编程SCON寄存器);
    串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。
    第六节、液晶显示
    1602液晶
    工业字符型液晶,能够同时显示16x02即32个字符。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
    管脚功能
    1602采用标准的16脚接口,其中:
    第1脚:GND为电源地
    第2脚:VCC接5V电源正极
    第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
    第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
    第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
    第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
    第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电
    源。15脚背光正极,16脚背光负极。
    特性
    3.3V或5V工作电压,对比度可调
    内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM,应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
    操作控制
    注:关于E=H脉冲——开始时初始化E为0,然后置E为1。
    字符集
    1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。在单片机编程中还可以用字符型常量或变量赋值,如’A’。因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=‘A’这样的方法。PC在编译时就把’A’先转换为41H代码了。
    字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。
    0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。
    1602的16进制ASCII码表地址:读的时候,先读上面那行,再读左边那列,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

    8051模拟口接法

    第七节、点阵LED显示
    8*8点阵外型和结构

    8X8点阵LED工作原理说明 :8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就 会点亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,实现柱的亮的方法如下:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。
    第八节、红外遥控
    信号调制原理
    基带信号:从信号源发出没有经过调制的原始信号,特点是频率较低,信号频率从0开始,频谱较宽。
    调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。

    红外遥控发送接收原理图

    NEC协议红外遥控器
    NEC数据格式:引导码、用户码、用户码(或者用户码反码)、按键键码和键码反码,最后一个停止位。
    引导码:9ms的载波+4.5ms的空闲。
    比特值“0”:560us的载波+560us的空闲。
    比特值“1”:560us的载波+1.68ms的空闲。

    第九节、AD、DA转化
    A/D和D/A的基本概念
    模拟量:任何两个数字之间都有无限个中间值,所以称之为连续变化的量,也就是模拟量。
    数字量:数字间有一定的间隔,不是连续的,即离散的量称之为数字量。
    A/D:Analog to Digital Converter,用模数转换器实现模拟量到数字量的转换,简称ADC。
    D/A:Digital to Analog Converter,用数模转换器实现数字量到模拟量的转换,简称DAC。
    A/D的主要指标
    1、ADC的位数:1个n位的ADC表示这个ADC共有2的n次方个刻度。
    2、基准源:也叫做基准电压,是ADC的参考基准。
    3、分辨率:数字量变化一个最小刻度,模拟信号的变化量,定义为满刻度量程与2n-1的比值。
    4、INL(积分非线性度)和DNL(差分非线性度)
    INL是指ADC器件在所有数值上对应的模拟值,和真实值之间误差最大的那个点的误差值,单位是LSB。LSB(Least Significant Bit)是最低有效位的意思,它实际上对应的就是ADC的分辨率。
    DNL是指ADC相邻两个刻度之间最大的差异,单位也是LSB。
    5、转换速率:是指ADC每秒能进行采样转换的最大次数,单位是sps。
    第十节 、实时时钟DS1302
    DS1302实时时钟芯片

    DS1302寄存器介绍

    DS1302单字节写操作时序

    DS1302单字节读操作时序

    附送郭天祥十天学会51单片机精品教程

    下载地址:请给我留言

    展开全文
  • 51单片机入门教程(1)——点亮一个LED灯 先放这里,下午再写

    51单片机入门教程(1)——点亮一个LED灯

    一、什么是单片机

    单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
    以上是百度百科上的词条,随便看看就行了,下面说一下我对单片机的理解:
    我们都知道,我们的电脑是由CPU、内存、磁盘、IO设备等组成的,而单片机简而言之,就是一个微型电脑,它在一块芯片上包含了CPU,硬盘(flash)和内存条(ram)以及基本输入输出设备(io口)。
    51单片机

    二、怎么学习单片机

    void 学习单片机()
    {
      while(1){
        动手写单片机程序;
        调试程序;
        发现程序中的语法与逻辑错误;
        改正程序中的错误;
      }
    }
    

    三、点亮一个LED灯

    说了这么多,现在步入正题。

    3.1 在Proteus上搭建LED灯的电路

    首先打开Proteus软件,界面如图
    Proteus
    左侧的一栏是各种类型的组建,其中我们主要需要用到的有组件选项(component mode)终端选项(Terminals mode)
    组件选项包括了我们用到的芯片,元件和其它的一些东西。
    终端选项包括了VCCGND等一些组件。
    在这里插入图片描述
    首先在组件选项中点击“P”按钮,找到我们需要的89c51芯片,并放入到主面板里。
    在这里插入图片描述
    同理
    在组件选项中输入LED-YELLOW找到led灯放入主面板
    在终端选项中选择POWER放入到主面板。
    在这里插入图片描述
    然后就要连接电路。power为电路提供电源输入,即电路的正极,所以将power的线连接到led灯的正极,然后我们把led灯的另一端接到单片机的P2^0引脚上。
    之后我们就可以在程序中给P2^0引脚一个低电平(即电路的负极)使其构成一个回路,就可以达到点亮led灯的目的。
    在这里插入图片描述

    3.2 在keil中创建工程

    3.2.1新建一个工程

    打开keil,在菜单栏中找到工程(project),点击第一个,然后选择工程保存路径并点击保存。
    在这里插入图片描述

    然后选择单片机型号,找到Atmel点击左边的小加号,选择at89c51(或at89c52),点击确定。
    j在这里插入图片描述

    接下来的窗口是提示我们“是否把启动代码添加到工程中”,我们选择确定。
    在这里插入图片描述
    这样我们的工程就创建好了。
    在这里插入图片描述
    随后我们需要给工程创建源码文件。
    点击“文件”->“新建”,使用组合键ctrl+s保存文件,命名为main.c(可以随便命名,但是后面要加上 .c),点击保存。
    在这里插入图片描述
    右击源组,点击添加文件到源组。
    在这里插入图片描述
    在这里插入图片描述
    点击这里的魔术棒,选择output,选中create hex file
    在这里插入图片描述
    在这里插入图片描述

    至此就可以编写代码了。
    在文件中输入以下代码:

    #include <reg52.h>
    sbit led = P2^0;
    void main(){
    	while(1){
    		led = 0;
    	}
    }
    

    说一下这几句代码是什么意思。

    • 第一行是包含头文件,头文件里面定义了单片机寄存器的一些定义。初学者不理解也没有关系。
    • 第二行是声明了P2^0端口,相当于给这个端口起了一个名字。
    • 第三行是main函数,代码从这里开始执行。
    • 第四行是一个while死循环,程序会一直执行while循环里面的内容。
    • 第五行是给名字为led的端口(即P2^0端口)一个低电平(1代表高电平,0代表低电平),使led灯的两端构成回路。

    然后编译程序,点击左上角的编译按钮。可以看到"0 error , 0 warning"的提示。
    在这里插入图片描述

    3.3 将程序导入到单片机中运行

    我们已经搭建好了电路,写好了程序,生成了hex文件,之后需要在电路上运行我们的程序。
    打开3.1中创建的仿真电路,双击单片机,找到3.2生成的hex文件,点击打开。
    在这里插入图片描述

    左下角的一排控制按钮意思分别是运行 单步 暂停 结束,我们点击运行就可以看到led灯被点亮。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 51单片机最简入门知识点总结,初级入门总结 时钟周期:晶振振荡周期 T时钟=1/f晶振 机器周期:计数器/定时器加一的时长 机器周期=12*时钟周期(12M晶振单片机T机器=1us) 计数状态 X=65536-N 定时状态 X=65536-需要...
  • 51单片机入门教程(0)—— 开发环境配置 本教程包含51单片机开发环境Keil_C51的安装、破解和汉化,以及51单片机仿真环境proteus的安装、破解。 (说明:本教程仅供学习交流之用,禁止任何商业用途!请在24小时之内...
  • 关注【电子开发圈】微信公众号,一起学习吧!...电子DIY、Arduino、51单片机、STM32单片机、FPGA…… 电子百科、开发技术、职业经验、趣味知识、科技头条、设备拆机…… 点击链接,免费下载100G+电子设计学习资料! ...
  • 单片机入门 什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器...
  • 资源名称:51单片机入门系列视频教程资源目录:【】第1讲功能模块简介【】第2讲安装USB驱动【】第3讲安装烧写软件【】第4讲程序烧写方法【】第5讲安装开发软件[51zsk.com]【】第6讲开发软件的使用方法资源截图: ...
  • 51单片机入门详细教程 郭天祥完整单片机入门教程 使使用者一周能 入门
  • 51单片机入门教程(2)——实现流水灯一、搭建流水灯电路二、流水灯程序2.1 延时程序2.2 延时函数2.3 按字节寻址2.4 逻辑移位2.5 条件判断 一、搭建流水灯电路 在Proteus中搭建流水灯电路如图 二、流水灯程序 我们...
  • 51单片机入门资料包含硬件 C语言 和51单片机项目程序适合敢接触单片机的同学
  • 标题 C51单片机入门学习 了解C语言与C51语言的区别 C 语言的特点 –语言简洁、紧凑,使用方便、灵活。 --运算符丰富。 –数据结构丰富。具有现代化语言的各种数据结构。 –可进行结构化程序设计。 –可以直接...
  • STC51单片机入门_C语言

    2020-07-30 23:33:34
    STC 51单片机,C语言入门教程,入门必备,共700多页
  • 这样,首先了解7805发热的原因,是因为7805是线性电源芯片,它的输入电压Ui和输出电压5V之间的压差U这部分能量是通过散热来解决的,所以我们有两种方法来解决发热问题。 1、减小压差U。 可以通过输入端加水泥电阻5~...
  • 51单片机入门教程(易懂版)pdf,51单片机入门教程(易懂版)
  • 51单片机入门笔记

    2018-07-27 11:36:53
    51单片机入门笔记(lesson1) 第一节介绍了一些预备知识,如下: 各种名词定义 各进制转化及与或非运算关系 介绍了8051的内部结构及引脚定义 C语言语法知识 其中各名词定义如下: 单片机:集成CPU、...
  • 51单片机入门教程(3)——数码管显示一、LED数码管简介二、数码管静态显示三、数码管动态显示 一、LED数码管简介 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8...
  • 51单片机自学入门总结,其中包括I/0口的控制,单片机的发光二极管,数码管,中断,定时器,计数器。
1 2 3 4 5 ... 20
收藏数 4,972
精华内容 1,988
关键字:

51单片机入门