抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

单片机(MCU)是典型的嵌入式微控制器,通过在IC芯片上集成运算器、控制器以及IO接口,也就相当于一个小而完善的微型计算机系统。单片机的学习可以和计算机组成原理、汇编语言、微机原理与接口技术和计算机体系结构等计算机专业课程有机结合,加深对于硬件的理解。本次上手实验,我使用的是普中51开发板,以下是我在学习和实战过程中的整理总结。

单片机预备知识

  • 电平特性:数字电路只有两种电平(高和低)

    • 单片机TTL电平:高+5V、低0V
    • RS232电平(计算机的串口):高-12V、低+12V
    • 计算机与单片机之间通讯时需要加电平转换芯片max232
  • 二进制:由数字电路中的两种电平特性决定

  • 十六进制:二进制的简短表示方式(四个二进制转换成一个十六进制),例:0001B -> 1H

  • 二进制的逻辑运算

    • ”与“运算:·
    • “或”运算:+
    • ”非“运算:
    • “异或”运算:
  • 位运算符:>>位右移、<<位左移、&按位与、|按位或、^按位异或、~按位取反

  • C51数据类型扩充定义

    • sfr:特殊功能寄存器声明 sfr SCON = 0X98;
    • sfr16:sfr的16位数据声明 sfr16 T2 = 0xCC;
    • sbit:特殊功能位声明 sbit 0V = PSW^2;
    • bit:位变量声明 bit flags
    • 一般来说char定义单个字符,unsigned char定义数组
  • C51头文件:reg51.hreg52.h(定义特殊功能寄存器和位寄存器),math.h(定义常用数学计算),ctype.hstdio.hstdlib.habsacc.h

单片机介绍

  • 单板机:将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备装配在一块印刷电路板上,将监控程序固化在ROM中,从而构成的单板微型计算机
  • 单片机:在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成的单芯片微型计算机
  • Intel MCS-51系列单片机:集成8位CPU、4K 字节 ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,有控制功能较强的布尔处理器
  • 总线(BUS):计算机各部件之间传送信息的公共通道
    • 内部总线:CPU内部之间的连线
    • 外部总线:CPU与其他部件之间的连线。外部总线分为:数据总线DB(Data Bus)、地址总线AB(Address Bus)、控制总线CB(Control Bus)
  • CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器
  • RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据
  • ROM:用以存放程序、一些原始数据和表格
  • I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出
  • T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在计数模式
  • 五个中断源的中断控制系统
    • 一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之间或单片机与微机之间的串行通信
    • 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为 6M—12M
  • 80C51系列:以8051为基核开发出的CMOS工艺单片机,是MCS-51系列中的一个典型品种
  • 中断服务程序

    1
    2
    函数名() interrupt n using m
    { 函数内部实现; }
  • I/O口定义:sbit beep = P2^3;

  • 单片机最小系统能够运行起来的必要条件:

    1. 电源电路
    2. 晶振电路(提供时钟脉冲)
    3. 复位电路(提供系统复位操作)
  • 对单片机任意IO口的随意操作:1.输出控制电平高低、2.输入检测电平高低

  • 定时器

    • 中断:外部中断、定时器中断、串口中断
    • 串口通信:单片机之间、单片机与计算机间
  • KEIL C51软件和51硬件仿真器

    1
    2
    3
    4
    5
    6
    7
    #include "reg52.h"  //0 Error,0 Warning
    void main()
    {
    while(1)
    {
    }
    }

点亮发光管

  • GPIO(genral purpose intput output):通用输入输出端口,可以通过软件来控制其输入和输出

  • 51单片机芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能

  • STC89C52的引脚

    • 电源引脚:VC、 GND
    • 晶振引脚:XTAL1、XTAL2
    • 复位引脚:RST、VPD,不做其他功能使用
    • 串口功能引脚:TXD、RXD,可以作为下载引脚使用
    • GPIO 引脚:带有 Px. 字样的均属于 GPIO 引脚
    • 同一时刻,每个引脚只能使用该引脚的一个功能
  • 上下拉电阻的作用:

    • 上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻起到一个限流的作用,下拉就是下拉到低电平
    • OC门要输出高电平,外部必须加上拉电阻
    • 加大普通IO口的驱动能力
    • 起到限流的作用
    • 抵抗电磁干扰
  • GPIO外围电路

    • 当I/O口被用作输入用途时,读取输入前要保证锁存器状态为 1
    • 当将I/O口由低拉高时,指令执行后需要1~2个机器周期才能使实际的输出变成高电平
    • 51 单片机所有 IO 口都是双向的,即可以作为输入也可以作为输出使用
    • 由于 P0 口是漏极开路的,所以要操作 P0 口必须外接上拉电阻,其他P1、P2、P3 口都内部自带上拉电阻,可以不加,如果要增强 IO 口驱动能力,可以外接上拉电阻
  • LED:发光二极管,具有单向导电性,通常在LED管脚上串联一个限流电阻

  • 发光二极管发光时两端电压约为1.7V,这个电压又叫做发光二极管的“导通压降”

  • 对于 LED 这种一次性操作的器件来说,可以把控制语句放在while之前来执行

  • Code表示程序所占用 FLASH 的大小,dat表示数据储存器内部 RAM 占用大小,xdat表示数据储存器外部 RAM 占用大小

  • 程序的大小不是 .hex 文件的大小,而是编译后的 Code 和 dat 之和

  • LED闪烁(延时函数)

  • 移位函数:左移_crol_()、右移`_cror()`函数(实现LED流水灯)

其他实验

  • 由于篇幅关系,其他实验程序代码放在 Github 仓库中,可供参考,如需自取。

评论



Copyright © 2020 - 2022 Zhihao Zhuang. All rights reserved

本站访客数: 人,
总访问量: