欢迎来到天天文库
浏览记录
ID:6029432
大小:41.50 KB
页数:7页
时间:2017-12-31
《51定时器寄存器说明》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、定时器的解释TCON:定时器控制寄存器寄存器地址88H,位寻址8FH~88H。 位地址 8F 8E 8D 8C 8B 8A 89 88 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。TR0(TR1)——定时器运行控制位当TR0(TR1)=0停止定时器/计数器工作当TR0(TR1)=1启动定时器/计数器工作IE0(IE1)——外中断请求标志位当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。IT0(
2、IT1)——外中断请求信号方式控制位当IT0(IT1)=1脉冲方式(后沿负跳有效)当IT0(IT1)=0电平方式(低电平有效)此位由软件置1或清0。TF0(TF1)——计数溢出标志位当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。 TMOD寄存器 定时器/计数器T0¦T1的方式寄存器 GATE C/T M1 M0 GATE C/T M1 M0 其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:Ⅰ,
3、GATE——门控制。GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。Ⅱ,C/T——功能选择位 置位时选择计数功能,清零时选择定时功能。 Ⅲ,M0、M1——方式选择功能 由于有2位,因此有4种工作方式 ================================================================ M1M0工作方式计数器模式TMOD(设置定时器模式) 00方式013位计数器TMOD=0x00 01方式116位计数
4、器TMOD=0x01 10方式2自动重装8位计数器TMOD=0x02 11方式3T0分为2个8位计数器,T1为波特率发生器TMOD=0x03 ================================================================中断向量号以及USINGn的解释5、IE-----中断充许寄存器按位寻址,地址:A8HB7B6B5B4B3B2B1B0EAET2ESET1EX1ET0EX0EA(IE.7):EA=0时,所有中断禁止(即不产生中断)EA=1时,各中断的产生由个别的允许位决定-(IE.6):保留ET2(IE
5、.5):定时2溢出中断充许(8052用)ES(IE.4):串行口中断充许(ES=1充许,ES=0禁止)ET1(IE.3):定时1中断充许EX1(IE.2):外中断INT1中断充许ET0(IE.1):定时器0中断充许EX0(IE.0):外部中断INT0的中断允许本篇文章来源于百科网络转载请以链接形式注明出处网址:http://www.siaaa.com/dianqia/danpianji/200911/1042580_3.html1、返回值函数名interruptn其中n对应中断源的编号,其值从0开始,以80C51单片机为例,编号从0~4,分别对应外中断0、定
6、时器0中断、外中断1、定时器1中断和串行口中断。2、在C51中,寄存器组选择取决于特定的编译器指令,即使用usingn指定,其中n的值是0~3,对应使用四组工作寄存器。 例如可以这样来写: voidtimer0()interrupt1using2 {…} 即表示在该中断程序中使用第2组工作寄存器。using**不要写,写了易出错,不写绝对不出错.interrupt**是中断源.具体编号如下:INT0INTERRUPT0T01INT12T13UART4T25UART16外部中断27外部中断38外部中断49外部中断510看门狗定时器11在默认状态
7、下,func使用寄存器组0(BANK0),那么当int_0调用func时是否存在当传递参数时会造成参数传递错误?如果在中断服务函数ISR中使用寄存器,那么必须处理好using的使用问题:1、中断服务函数使用using指定与主函数不同的寄存器组(主函数一般使用Registerbank0)。2、中断优先级相同的ISR可用using指定相同的寄存器组,但优先级不同的ISR必须使用不同的寄存器组,在ISR中被调用的函数也要使用using指定与中断函数相同的寄存器组。3、如果不用using指定,在ISR的入口,C51默认选择寄存器组0,这相当于中断服务程序的入口首先执
8、行指令:MOVPSW#0这点保证了,没使用using
此文档下载收益归作者所有