定时器实验(Proteus 与Keil uVision联合仿真)

一、

(1)设置TMOD寄存器

T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。

(2)计算定时器T0的计数初值

设定时时间5ms(即5 000µs),设T0计数初值为X,假设晶振的频率为11.059 2MHz,则定时时间为:定时时间=(216−X)×12/晶振频率

则 5 000=(216 −X) ×12/11.0592,得 X = 60928,转换成十六进制:0xee00,其中0xee装入TH0,0x00装入TL0。

(3)设置IE寄存器

本例由于采用定时器T0中断,因此需将IE寄存器中的EA、ET0位置1。

(4)启动和停止定时器T0

将定时器控制寄存器TCON中的TR0=1,则启动定时器T0;TR0=0,则停止定时器T0定时。

二、设计硬件电路原理图,画出实际接线图。

三、根据实验任务设计出相应的程序。

cs 复制代码
#include <reg51.h>

char i=100; // 定义一个字符型变量i并初始化为100

void main() // 主函数开始
{
    TMOD=0x01; // 设置定时器0的工作模式为模式1(16位定时器)
    TH0=0xEC; // 设置定时器0的高8位初值,用于产生大约50ms的定时
    TL0=0x78; // 设置定时器0的低8位初值,用于产生大约50ms的定时
    P1=0x00; // 初始化P1口的状态为0,即所有引脚输出低电平
    EA=1; // 打开全局中断允许位
    ET0=1; // 允许定时器0的中断
    TR0=1; // 启动定时器0
    while(1) // 进入无限循环
    {
    }
} 

void timer0() interrupt 1 // 定时器0的中断服务函数
{
    TH0=0xEC; // 重新装载定时器0的高8位初值
    TL0=0x78; // 重新装载定时器0的低8位初值
    i--; // 计数器i减1
    if(i<=0) // 如果计数器i减到0
    {
        P1=~P1; // 翻转P1口的电平状态
        i=100; // 重置计数器i为100,准备下一轮计时
    }
} 

四、实验结果

8只发光二极管每0.5s闪亮1次;

五、思考题

1、定时器和计数器的区别是什么?

答:①定时器

定时器通常是基于单片机内部的时钟信号进行计数。这些时钟信号通常来源于晶振,是非常稳定的脉冲源。当定时器计数到预设的阈值时,它会产生一个中断信号,通知单片机执行相应的中断服务程序。定时器适用于需要精确时间控制的场合,如产生精确的延时、测量时间间隔等.

②计数器

计数器则是对来自单片机外部的脉冲信号进行计数。这些脉冲信号可以是由其他设备产生的,如传感器、开关等。计数器在每次接收到一个脉冲信号时,计数器的值就会增加。计数器适用于需要计数外部事件的场合,如计步器、转速测量等.

2、单片机定时器/计数器T1、T0的工作方式2有什么特点?适用于哪些应用场合?

答(1)单片机定时器/计数器T1、T0的工作方式2特点:

工作方式2是8051单片机定时器/计数器的一种工作模式,它具有以下特点:

自动重装初值:在工作方式2下,定时器/计数器是一个8位的计数器,其中TL0用于计数,TH0用于备份。当TL0计数溢出时,TH0中的初值会自动加载到TL0,从而实现自动重装初值的功能.

简化编程:由于计数器可以自动重装初值,因此可以避免在程序中重复编写重装初值的指令,简化了编程过程,提高了效率.

提高定时精度:由于减少了因手动重装初值导致的延迟,工作方式2可以提高定时的精确度.

(2)适用于的应用场合:

工作方式2适用于需要循环定时或循环计数的应用场景,例如:

周期性任务调度:在嵌入式系统中,经常需要周期性地执行某些任务,如传感器数据采集、显示屏刷新等,工作方式2可以方便地实现这些周期性任务的定时控制.

事件计数:在一些需要计数外部事件的应用中,如计步器、门禁系统等,工作方式2可以用于计数外部脉冲,实现事件计数的功能.

中断服务程序:在中断服务程序中,有时需要在处理完中断后立即返回,而不是等待下一个中断周期。工作方式2可以在中断服务程序中快速重启定时器,以便尽快响应下一个中断.

相关推荐
清风6666664 小时前
基于单片机的螺旋藻生长大棚PH智能控制设计
单片机·嵌入式硬件·毕业设计·课程设计
ting_zh5 小时前
微控制器(Micro Controller Unit, MCU)基础整理
单片机·嵌入式硬件
清风6666666 小时前
基于单片机的图书馆智能座位管理平台
数据库·单片机·嵌入式硬件·毕业设计·课程设计
得单片机的运7 小时前
STM32的以太网的搭建
stm32·单片机·嵌入式硬件·物联网·以太网·iot·w5500
酷飞飞8 小时前
RTC和看门狗基于GD32F407VE的天空星的配置
stm32·单片机·嵌入式硬件·mcu
WD137298015579 小时前
WD5030A,24V降5V,15A 大电流,应用于手机、平板、笔记本充电器
stm32·单片机·嵌入式硬件·智能手机·汽车·电脑·51单片机
日更嵌入式的打工仔9 小时前
GPIO 中断通用配置指南
stm32·单片机·嵌入式硬件
平凡灵感码头9 小时前
基于 STM32 的智能门锁系统,系统界面设计
stm32·单片机·嵌入式硬件
Truffle7电子11 小时前
STM32理论 —— 存储、中断
stm32·嵌入式硬件·嵌入式·存储·中断
报错小能手11 小时前
linux学习笔记(32)网络编程——UDP
单片机·嵌入式硬件