自学单片机reg51.h定时程序是里面的TH1TL1TR1TMOD是什么意思?

自学单片机reg51.h定时程序是里面的TH1TL1TR1TMOD是什么意思?,第1张

TH1TL1TR1TMOD意思是单片机的特殊寄存器 ,用来控制计数/中断器。

TH1TL1TR1是单片机的特殊寄存器。

TH1是单片机里面定时器/计数器。

TR1=1是单片机里面启动定时器。

TMOD工作方式控制寄存器。

TH1和TL1也是特殊功能寄存器。

TR1是定时器/计数器T1的启动控制位。

定时器1里面的 TH1是高8位 TL1是低8位。

Timer Mode是定时模式。

TMOD = 10 h 表示的是定时器1。

TMOD = 01 h 表示的是定时器0。

1、#include <reg52.h>

2、#define uchar unsigned char

3、#define uint unsigned int

4、sbit LED = P0^0uchar T_Count = 0void main(){TMOD = 0x01TH0  = (65535-50000)/256TL0  = (65535-50000)%256IE   = 0x82TR0  = 1while(1)}

5、void LED_Flash() interrupt 1{TH0  = (65535-50000)/256TL0  = (65535-50000)%256if(++T_Count == 20){LED = !LEDT_Count = 0}}

6、这个程序是1秒钟LED灯会亮与灭显示。

1单片机,拥有两个定时器,用来中断计数,分别是T0和T1。而52单片机和51单片机的定时器是一样的,只是52比51多了一个定时器/计数器T2,它们的设置都大同小异。

这么简单的要求,不用大动干戈。

看看下面的程序,是不是最简单:

ORG 0000H

SETB TR0 启动T0

MOV R2, #250 定时计数初值

LOOP:

MOV TH0, #(8192 - 8000) / 32 定时8ms

MOV TL0, #(8192 - 8000) MOD 32

JNB TF0, $ 等待8ms

CLR TF0

DJNZ R2, LOOP 每隔8ms,R2减一次一

CPL P1.0 R2为0则LED亮灭转换

LJMP 0000H

END

本程序,已经实验成功。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7695008.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存