MCS-51单片机定时/计数器工作原理与应用

需积分: 10 0 下载量 129 浏览量 更新于2024-08-22 收藏 1.46MB PPT 举报
"C语言查询方式程序-51系列单片机教学课件" 这篇文档主要讲解了51系列单片机中使用C语言和汇编语言实现查询方式的定时/计数器程序。51系列单片机拥有两个可编程的定时/计数器T0和T1,它们能工作在四种不同的模式,并且可以通过中断或查询方法来应用在各种场景。 首先,我们来看C语言的查询方式程序。在这个示例中,程序设置TMOD寄存器为0x01,这意味着T0被配置为工作在方式1,即16位定时器模式。接着,设置TL0和TH0寄存器的初值,然后启动定时器TR0。主循环中,程序通过do-while循环等待TF0标志位变为1,表示定时器已溢出。一旦溢出,TF0被清零,P1.0引脚的电平被反转。 汇编语言的程序结构类似,但更直接地展示了定时/计数器的设置过程。在ORG 0000H处开始,程序先将TMOD设置为01H,同样设定T0为方式1,然后启动T0。接着进入主循环,不断检查TF0标志,当TF0为1时,清除它,翻转P1.0引脚状态,然后返回主循环。 关于定时/计数器的结构,TMOD寄存器定义了工作模式和方式,TCON寄存器则控制定时器的启动和停止,同时反映其状态。TMOD的高四位控制T1,低四位控制T0。门控位GATE决定是内部还是外部信号启动定时器,M1和M0选择工作方式,C/T*位决定是定时器还是计数器模式。TCON中的TF0和TF1是溢出标志位,TR0和TR1则是运行控制位,置1启动定时器,清0则停止。 51系列单片机的定时/计数器有四种工作方式: 1. 方式0:13位定时/计数器,适用于与48系列兼容的应用。 2. 方式1:16位定时/计数器,是51系列的基本定时器模式,适合一般定时任务。 3. 方式2:8位定时/计数器,自动重装初始值,适用于精确周期信号的生成。 4. 方式3:T0被分为两个独立的8位定时器,用于串口通信,但功能受限。 每种工作方式都有其特定的功能和应用特点,可以根据实际需求选择合适的工作模式。查询方式虽然简单,但在处理实时性要求不高的任务时是足够有效的。在中断方法中,系统可以在溢出事件发生时立即响应,但需要处理中断服务子程序,可能涉及更多的系统资源。