单片机(2)

51单片机进阶中断、定时器、IO电路与时序

一、中断系统

中断核心思想:CPU正常执行主程序,外部/内部事件触发中断,CPU暂停主程序,跳转执行中断服务函数,处理完毕返回继续运行主程序。

  1. 中断向量:51内置中断源,对应固定入口地址
  • External interrupt 0 外部中断0
  • Timer0 定时器0中断
  • Timer1 定时器1中断
  • External interrupt 1 外部中断1
  • UART串口中断
  1. 中断触发方式
  • 电平触发:引脚低电平触发中断
  • 边沿触发:引脚电平下降沿(高→低跳变)触发中断
  1. 中断配置流程
    开启中断总开关 → 开启对应外设中断使能 → 设置触发方式 → 编写中断服务函数
  2. 注意:中断服务函数尽量简短,不要放耗时代码。

二、定时器/计数器

定时器本质:硬件计数器,对机器周期脉冲计数。计数溢出后触发中断。

  • 定时器模式:对内部系统时钟计数,用来做延时、定时。
  • 计数器模式:对外部引脚脉冲计数,统计外部信号次数。
  • 寄存器: TMOD (模式配置)、 THx 、 TLx (计数高低字节,装载初值)
  • 自动重装:溢出后自动把初值重新载入寄存器,循环定时,不用软件反复赋值。
  • 时序波形:时钟脉冲不断输入,计数器逐次累加,达到最大值溢出,产生中断信号。

三、IO口驱动电路(重点:灌电流、拉电流)

  1. LED电路(普中开发板)

LED阳极接VCC,阴极接单片机IO引脚。

  • IO输出低电平 → 电流流入芯片引脚(灌电流),LED点亮。
  • IO输出高电平 → 无电流,LED熄灭。

51的P0口是开漏输出,必须外接上拉电阻才能输出高电平;P1/P2/P3内置上拉电阻。

  1. 独立按键电路

一端接IO,一端接GND。

  • 按键未按下:IO为高电平。
  • 按键按下:IO拉低到GND。
    按键消抖:机械按键按下/松开瞬间存在电平抖动(数ms),会误触发多次检测。
    两种消抖方案:软件延时消抖;外部硬件电容消抖。

四、时序基础

  1. 机器周期:单片机执行一条基础指令的最小时间单元。12M晶振下,1机器周期=1μs。
  2. 时钟周期:晶振原始振荡周期,机器周期由多个时钟周期构成。
  3. 波形图:方波高低电平,边沿(上升沿、下降沿)是触发信号的关键。

五、寄存器与位运算复用

定时器、中断的配置,依旧使用位运算操作SFR特殊功能寄存器:

// 置位使能

IE |= (1 << 0);

// 清零关闭

TMOD &= ~(1 << 0);

相关推荐
wuyk5553 小时前
嵌入式故障诊断-Bug002-局部大数组压栈高温必死机
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·嵌入式实时数据库
Zwawa7 小时前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式
Dev_XH7 小时前
【成品设计】基于沁恒单片机的电动汽车充电站智慧调度系统
stm32·单片机·嵌入式硬件·物联网
shimly1234568 小时前
(done) 嵌入式硬件电路图 (5) 重要的元器件特性之二极管三极管
嵌入式硬件
Zw-awa9 小时前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
stm32
minglie110 小时前
esp32c3+atshell测试ov7670
单片机·嵌入式硬件
橘为己有44110 小时前
51单片机:流水灯
单片机·51单片机
蜀黍@猿10 小时前
ARM 汇编入门(十):标量浮点与 VFP 指令全解析
汇编·arm开发·stm32·mcu
不脱发的程序猿10 小时前
STM32和VS1053制作电子琴
stm32·单片机·嵌入式硬件·midi·vs1053
Zwawa1 天前
C语言函数指针与宏实战:从回调、表驱动菜单到X-Macro,讲透嵌入式代码解耦
c语言·单片机·嵌入式