51 单片机基础

一、51 单片机 开发环境配置,vscode+SDCC

编辑器、编译器

最常用的集成开发环境 keil c51

1、vscode + SDCC 开发环境搭建

vscode + 插件( 或者 PlatformIO IDE)

  • EIDE 的使用:详细自学

  • PlatformIO IDE:详细自学

  • vscode + SDCC 51 单片机开发环境搭建

    • 完全开源
    • 基于 vscode 写代码很舒服
    • 不支持在线调试
    • 更换或者添加源文件需要编写 Makefile 文件

    –> 环境搭建

    • vscode 安装完之后,添加 C/C++ 插件

    • 安装 SDCC

      • 安装的路径不能有空格

      • 安装完成之后,通过在 cmd 输入 sdcc -v,出现 sdcc 的版本信息,说明安装完成

        sdcc版本信息

    • 安装 make,并加入环境变量

      make添加至环境变量

      • 安装完成之后,通过在 cmd 输入 make,出现 make 的相关信息,说明安装完成

        make相关信息

    2、使用 SDCC 编译第一个 CH549 代码
    • CH549_sdcc.H 复制到 sdcc安装目录/include/mcs51
    • 通过 code 打开 例程文件夹
    • 打开 ./usr/main.c 文件
    • 终端 --> 新终端
    • 在终端中输入 make,即可编译程序;输入 make clean,即可删除刚才编译的程序

二、通用输入输出 GPIO

  • GPIO:general purpose input or output,通用型输入或输出端口

    • 可以将单片机的每个引脚通过程序设定为通用输入或通用输出,可以实现与外部通信、控制外部硬件或者采集外部硬件数据的功能
    • 寄存器选择相应的功能,寄存器是 CPU 内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果
    • 寄存器的四种功能:
      • 接受二进制代码
      • 储存二进制代码
      • 输出二进制代码
      • 清除二进制代码
    • 具有移位功能的寄存器称为移位寄存器
  • 代码含义:把地址为 0xA0 的寄存器的值配置为 2

    代码含义1

  • 代码编译与下载

    • 打开下载软件 --> 选择相应的芯片型号 --> 设置好下载配置 --> 连接单片机并按单片机上的 download 键 --> 选择刚才编译好的文件 --> 点击下载 --> 显示第一号设备下载完成,即可看到单片机上的 LED 等开始闪烁,若没有闪烁,可以按单片机上的 RST 键

      程序下载

三、时钟、定时器中断、外部中断

  • 时钟:时钟信号,固定频率的脉冲

    • CH549,运行一个指令(led = !led),就需要一个时钟周期

    • 分频器:将时钟信号转换为原来的时钟信号的频率的整数分之一(1/2, 1/3)

    • 倍频器:将时钟信号转换为原来的时钟信号的频率的整数倍

    • CH549 的时钟系统与结构图:

      CH549的时钟系统与结构图

  • 定时器中断

    • 定时器:16位寄存器,工作时,每接收到一个脉冲信号,它都会在原来的寄存器的保存的值上 +1
      • 例如,main 函数中调用另一个函数的代码
    • 定时器中断:触发条件,当定时器溢出的时候,会出发中断的这样一个外设
  • 外部中断:触发条件,某个端口满足设定的电平条件就能触发

  • 其他中断:Uart 中断,ADC 中断等

  • 中断优先级:高优先级的中断会打断低优先级的中断,在执行完高优先级的中断之后,再去执行低优先级的中断

    中断优先级

  • CH549 单片机的中断向量表

    CH549中断优先表

  • 外部中断和定时器中断例程代码

四、PWM

  • PWM:pulse width modulation,脉冲宽度调制
    • 通过控制高电平所占的时间,来达到控制功率的目的
    • 手机屏幕、电机控制
    • PWM 属性:
      • 占空比:一个周期内高电平占整个周期的时间比例,反映了功率的控制情况,占空比越高功率越高
      • 频率:周期的倒数
  • Makefile 文件配置

五、通信:Uart (串口) , i2c,spi

  • 单片机常用通信协议:Uart, i2c,spi

  • Uart(串口通信):通用异步收发器,是一种串行、异步、全双工的通信协议

    • 串口具有通信输出线(TX)和通信接受线(RX)
    • 波特率:度量信息传输的速度,每秒传送的码元符号的个数,因此必须保证输出端和接收端的波特率是一致的
  • 串口通信实验

    • 单片机的 TX 口连接串口转 USB 的 RX, 单片机的 RX 口连接串口转 USB 的 TX,这样可以实现数据回环的效果,即电脑发送给单片机的数据,单片机又会发送回给电脑
  • SPI :串行外设接口,一种高速的、全双工的、同步的串行通讯总线

    • 传输速率大于 Uart 和 i2c,同时可以进行发送和接收

    • spi 中有一根时钟线,无论输入还是输出,都需要通过时钟线

    • spi 通信至少需要四根线来实现:

      • MOSI:主设备数据输出,从设备数据输入

      • MISO:主设备数据输入,从设别数据输出

      • SCLK:时钟信号,由设备产生

      • CS:片选使能信号,由主设备产生

        spi原理

    六、ADDA(模拟信号与数字信号的互相转换)

    • ADC:模数转换器,读取一个引脚模拟电压的大小
    • DAC:数模转换器
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51单片机是一种广泛应用的微控制器,它的应用范围涵盖了许多领域,如电子、通信、汽车、医疗器械等等。以下是一些51单片机基础知识的汇总: 1. 51单片机是由Intel公司推出的一款8位微控制器,其基础架构是由哈佛结构和冯诺依曼结构组成。 2. 51单片机的主频一般在1MHz~33MHz之间,可以通过外部晶振或内部时钟源来控制。 3. 51单片机的存储器包括ROM、RAM、EEPROM和片内XRAM等,其中ROM存储程序代码,RAM存储数据,EEPROM用于存储非易失性数据,片内XRAM是可扩展的RAM。 4. 51单片机的I/O端口共有4个,分别为P0、P1、P2和P3,每个端口有8个引脚,可用于输入输出操作。 5. 51单片机的中断系统包括5个中断源,分别为外部中断0、外部中断1、定时器/计数器0中断、定时器/计数器1中断和串口中断。 6. 51单片机的定时器/计数器共有2个,分别为定时器/计数器0和定时器/计数器1,可用于计时、计数和PWM等操作。 7. 51单片机的串口通信包括UART和SPI两种通信方式,可用于与其他设备进行数据传输。 8. 51单片机的编程语言包括汇编语言和C语言,其中汇编语言具有高效性和灵活性,而C语言则具有易于学习和调试的优点。 9. 51单片机开发工具包括Keil、IAR、SDCC等,其中Keil是最为常用的开发工具之一。 10. 51单片机的应用领域包括电子、通信、汽车、医疗器械等,其应用范围广泛,是一种非常重要的微控制器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值