- 定时器的应用 - 实验任务 - 使用定时中断控制实现LED流水灯 - 巩固定时器基础知识 - 提高解决实际问题的能力 - 定时器在生活中的应用 - 早晨固定时刻响起的铃声 - 电视机自动开关机 - 电饭煲预设时间 - 全自动洗衣机完成洗衣流程 - 实验要求 - 利用定时中断延时控制LED流水灯 - LED8由右向左依次点亮,间隔1秒 - 晶振频率12MHz - 实现步骤 - 知识储备 - 定时器结构 - 8051定时器是16位加一计数器 - 对机器周期进行计数 - 寄存器配合 - TCON和TMOD寄存器 - TMOD工作方式寄存器 - 高四位控制T1,低四位控制T0 - M1和M0选择工作方式 - 方式0到方式3的功能描述 - TCON控制寄存器 - 控制定时器启停 - 设置溢出标志 - 中断相关寄存器 - IE寄存器 - EA:CPU中断允许位 - ET0、ET1:T0和T1中断允许位 - IP寄存器 - PT0、PT1:T0和T1中断优先控制位 - 硬件搭建 - 所需设备 - 单片机实验箱模块 - 最小单片机系统和共阳极LED点阵 - 软件工具 - QV3和ProGaST - 连接说明 - P1口连接LED - EA接VCC - 程序设计 - 核心问题 - 定时一秒的实现 - 工作模式选择 - TMOD初值设定 - TH0和TL0初值计算 - 方法讨论 - 定时器级联或软件计数 - 采用软件计数,每次50毫秒,计数20次 - TMOD初值为01H - 计算TH0和TL0初值 - 初值=2^16-N - N=50ms/1μs=50000 - 初值=65536-50000=15536 - 转换为十六进制:3CB0 - 程序流程 - 主程序任务 - 初始化定时器和中断系统 - 给P1口赋初值 - 清零一秒标志位 - 检查一秒时间是否到 - 中断服务子程序任务 - 检测一秒时间是否到 - 修改P1口内容 - 重新设置计数值 - 启动定时器 - 学习收获 - 流水灯实现形式多样 - 定时器优越性 - 不占用CPU资源 - 可同时进行其他控制 - 培养发散性思维