设MCS-51单片机使用的晶振是12MHz,欲使用定时器/计数器0实现30ms定时中断,在P1.0在产生周期为60ms的方波 20

设MCS-51单片机使用的晶振是12MHz,欲使用定时器/计数器0实现30ms定时中断,在P1.0在产生周期为60ms的方波。(1)计算TH0和TL0的值;(2)确定寄存... 设MCS-51单片机使用的晶振是12MHz,欲使用定时器/计数器0实现30ms定时中断,在P1.0在产生周期为60ms的方波。
(1)计算TH0和TL0的值;
(2)确定寄存器TMOD,TCON和IE的值(寄存器中跟本题无关位取值为0);
(3)编写主程序和中断服务程序。

小弟初学者,跪求解答。
展开
 我来答
dqx1234568
2011-01-16
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
晶振是12MHz,所以机器周期T=1μs
需定时,C//T=0
30ms/1μs=30000
因为30000>8192,需选择方式1,M1M0=01
TMOD=0000 0001B
计数初值为:
65536-30000=35536=8AD0H
所以
TH0=6AH,TL0=0D0H
因为开放总中断和T0中断,IE=10000010B

TCON=0001 0000B;启动T0,TR0就是TCON中的控制位,也可用位操作指令直接将TR0置1
程序见“做而论道”给的程序。
hu6412471
2011-01-11
知道答主
回答量:18
采纳率:0%
帮助的人:8.9万
展开全部
ORG 0000H
JMP MAIN
ORG 000BH
JMP T0_SR
COUNTER EQU 30H

MAIN:
CALL INIT
JMP $
INIT:

MOV TMOD, #01H
MOV TH0, #HIGH(-1000)
MOV TL0, #LOW(-1000)
SETB TR0
SETB ET0
SETB EA
RET
T0_SR:
MOV TH0, #HIGH(-1000)
MOV TL0, #LOW(-1000)
INC COUNTER
MOV R1, 30H
CJNE R1, #30, LOW_END
MOV R3, #0
CPL P1.0
RETI
LOW_END:
RETI
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2011-01-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
:
ORG 0000H
SJMP START
ORG 000BH ;T0中断入口.
SJMP T0_INT
START:
MOV TMOD, #01H ;设置T0定时方式1
MOV TH0, #(65536-60000/2) / 256 ;送入初始值.
MOV TL0, #(65536-60000/2) MOD 256 ;定时30000us@12MHz
;TH0和TL0的值,可由编译软件来算.
MOV IE, #10000010B ;开放总中断和T0中断.
SETB TR0 ;启动T0,TR0就是TCON中的控制位.
SJMP $ ;等着吧.
T0_INT:
MOV TH0, #(65536-60000/2) / 256 ;重新送入初始值.
MOV TL0, #(65536-60000/2) MOD 256 ;定时30000us@12MHz
CPL P1.0 ;输出方波.
RETI ;中断返回.
END ;完.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忻怜云xT
2011-01-09 · TA获得超过285个赞
知道答主
回答量:235
采纳率:0%
帮助的人:212万
展开全部
需要汇编程序的 还是C的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式