c51单片机c语言编程中定时器和中断的关系,程序如下,坐等!!!

tmod=1(工作方式1)tr0=1()ea=1(闭合总中断开关)ex0=1(闭合定时器开关)th0=(65536-50000)/256(存放预备置数高8位)tl0=(6... tmod=1(工作方式1)
tr0=1()
ea=1(闭合总中断开关)
ex0=1(闭合定时器开关)
th0=(65536-50000)/256(存放预备置数高8位)
tl0=(65536-50000)%256(存放预置数低8位)
以上的的程序是初始化状态,我想问的是为什么没有编写gtae和int0,它们两个也应该控制定时器的啊!
接下来的程序是void timer interrupt1
{th0=(65536-50000)/256
tl0=(65536-50000)%256
}
我想问的是以上这段程序中void timer interrut1为什么要用到interrupt1既然用上了为什么又没有编写中断程序去控制定时器?
展开
 我来答
ywhjp
2013-03-28 · TA获得超过1299个赞
知道小有建树答主
回答量:1002
采纳率:60%
帮助的人:438万
展开全部
你的定时器中断进不了吧, 因为你没开定时器中断允许位ET0=1

另: 定时器模式设置好后TMOD=0x01, 打开定时器中断允许ET0=1, 然后TR0=1启动定时器就可以了
更多追问追答
追问
开启定时器为什么gate和int0没有编写, 难道只要编写tr0=1就说明定时器开启了 码?
追答
gate 作什用, 你知道吗?    如果gate=1, TR0=1时,  这时不是叫定时器, 叫计数器,  由外部引脚P3.4来控制, P3.4引脚高电平时, 才开始计数

至于int0, 你上面不是写了它们中断函数了吗
下面这个就是定时时间到中断处理
void timer interrupt1
{
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
}
娃ha哈
2013-03-28 · TA获得超过1809个赞
知道小有建树答主
回答量:958
采纳率:0%
帮助的人:506万
展开全部
中断服务程序就是往定时器里面装入初值,让定时器从这个值开始计数一直到到65535,再次触发中断进入中断服务程序
追问
开启定时器为什么gate和int0没有编写,难道只要编写tr0=1就说明定时器开启了码?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjx_arm
2013-03-28 · TA获得超过468个赞
知道答主
回答量:134
采纳率:66%
帮助的人:107万
展开全部
void timer interrupt1 这个就是中断服务程序,控制定时器的就 TCON, 跟TMOD阿 ,你说的int0是外部中断0? gtae是什么。。。是不是定时器2的?我记得好像 TCON,TMOD可以配置2个定时器,定时器0跟定时器1,定时器2是其它的寄存器配置的。。。
追问
void timer interrupt1 这个就是中断服务程序,可里面编写的是定时器程序,哪来的的中断程序啊!难道只要编写个tro=1就说明定时器开启了吗?
追答
void timer interrupt1  这个里面的程序就叫做定时器0的中断服务程序,当时间到的时候就会触发中断,就会执行这个里面的程序,tr0 = 1就是开启定时器没错。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式