第4章AT89S51汇编语言程序设计.ppt

IT1P: CPL P1.0 ;T1中断服务程序,P1.0位取反 RETI 程序说明:由于负脉冲到来的标志位F0的复位初始值为0,所以程序就在标号LOOP处循环等待。当T0(P3.4)脚发生负跳变时,由于T0计数溢出,则跳向T0中断服务子程序。此时停止T0计数,并把T0引脚接收过负脉冲的标志F0置1。当中断返回时,由于F0已被置1,则程序跳出LOOP处的循环等待。此时执行指令来允许T1中断,并启动T1定时,然后执行“AJMP HERE”指令,循环等待,等待T1的500?s定时中断到来。当T1的500?s定时中断产生时,则进入T1的中断服务子程序IT1P,把P1.0脚电平取反。由于是自动装初值,省去对T1重装初值指令。中断返回后,到“AJMP HERE” 处等待T1的500?s定时中断。 【例6-5】 利用定时器T1的方式2计数,每计满100个数,将P1.0取反。本例是方式2计数模式的应用举例。 (1)选择工作方式 外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器便加1,每输入100个脉冲,计数器将产生溢出中断,在中断服务程序中将P1.0取反一次。 T1工作在方式2的控制字TMOD?=?60H。不使用T0时,TMOD低4位任取,但不能使T0为方式3,这里取全0。 (2)计算T1的初值 X?=?28???100?=?156?=?9CH TL1的初值为9C

文档评论(0)

1亿VIP精品文档

相关文档