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

晶振为12M的,要求让一个LED灯亮两秒,灭两秒的小程序,最好附上详解,谢谢了... 晶振为12M的,要求让一个LED灯亮两秒,灭两秒的小程序,最好附上详解,谢谢了 展开
 我来答
做而论道
高能答主

推荐于2018-11-30 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.1万
采纳率:82%
帮助的人:8440万
展开全部
这么简单的要求,不用大动干戈。

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

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

本程序,已经实验成功。
zhxiufan
2013-06-18 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38391
国家科技进步奖

向TA提问 私信TA
展开全部
LED BIT P1.0 ;定义LED的引脚
ORG 0000H

LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定时器0工作模式1
MOV TH0,#HIGH(65536-50000) ;初值,50毫秒中断一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;启动定时器
SETB ET0 ;启动定时器中断
SETB EA ;开总中断
MOV R2,#40 ;中断计数初始值
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E ;R2减到0重新赋值,否则退出
MOV R2,#40
CPL LED ;LED亮灭转换
T0E:
RETI
END
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友11c9759
2013-06-18 · TA获得超过578个赞
知道小有建树答主
回答量:614
采纳率:100%
帮助的人:334万
展开全部
#include <reg52.h>

sbit P0^0=led;
void delayms(unsigned int ms)
// 延时子程序 对应12M晶振
{
while(ms--) //每一次循环1ms
{
for(i = 0; i < 120; i++);
}
}

void main()
{
while(true)
{
led=~led;
delayms(2000);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
li_qinfeng
2013-06-18 · TA获得超过138个赞
知道小有建树答主
回答量:262
采纳率:72%
帮助的人:146万
展开全部
自己好好看看定时器怎么配置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式