51单片机定时器的汇编语言程序编程,

51单片机定时器的汇编语言程序编程,,第1张

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

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

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

本程序,已经实验成功。

你试试吧,定义为有意义的名称是给编程者看的,编译器或单片机处理的是实际地址或数值....

按你所说的要求,用一条求反语句即可实现..

//先定义IO引脚

sbit

pin=P3^7

//初始化一次

EA=1//开总中断

ET0=1//开定时器0中断

TMOD&=0xf1//设置定时器1为工作方式1

//TH0=(65536-1000)/256//根据晶振,对计数器赋初值,使计数器溢出更准确.

//TL0=(65536-1000)%256

TR0=1//启动定时器0

//中断处理函数

void

int_proc()

interrupt

1

{

static

unsigned

int

times//通过中断次数来实现长时间延时

//TH0=(65536-1000)/256根据晶振,对计数器赋初值,使计数器溢出更准确.

//TL0=(65536-1000)%256

if(++times>10)

{

times=0

pin=!pin//求反

}

}

NOP

SJMP $

QD:MOV TH0, ....

MOV TL0,...

原来的结构有问题.

打字不易,如满意,望采纳。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存