新闻 言论 消费
PIC16F84 TMRO溢出中断和定时程序
成都 力新
初学者编写中断程序常感困难。PIC单片机的中断源种类较多,这里以PIC 16F84的
TMR0溢出中断为例,以定时功能为目标,介绍编写汇编语言源程序的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
一、用汇编语言编写“中断”·ASM程序的要点
编写TMR0溢出中断和定时的源程序,需引用三个特殊功能寄存器:TMR0(定时器/
计数器0)、OPTION(选择寄存器)和INTCON(中断控制寄存器),并对相关位赋值
(即初始化)。
1.TMR0的主要特性
TMR0是8位加计数器,具有定时和计数功能。当计数值从FFH计至00H溢出时产生
TMR0中断,其结构如图1所示。TMR0附加有可编程的8位预分频器,编写源程序时要设置
预分频参数。
2.OPTION的主要特性
OPTION寄存器包含下述功能:TMR0/WDT预分频器的参数设置、TMR0工作时的相关
控制,如图2所示。在后面的源程序中对OPTION初始化有四条指令:
MOVLW 0;0→W
MOVWF OPTION_R;清 OPTIION
MOVLW B’11010111’;B'11010111'→W
MOVWF OPTION_R;B'11010111'→OPTION
其中将 OPTION的 D0、D1、D2位设置成 111,是为了使预分频值为最大,以使定时
TMR0比率高(1∶256),实现长定时时间,读者也可按图2中的预分频器参数,任意设
置分频值。
3.INTCON的主要特性
INTCON是可读写寄存器,含有定时器TMR0溢出的各种允许控制和相关标志位,用于
中断发生时,相关位功能的设置(0或1),见图 3。在后面的源程序中有INTCON初始化
的三条指令。
BCF INTCON,2;INTCON第2位清零
BSFINTCON,5;INTCON第5位置1
BSFINTCON,7;INTCON第7位置1
根据上述要点,便可编制TMR0定时中断和计数器延时的定时源程序。
二、PIC16F84定时源程序
LIST P=PIC16F84;列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
PIC16F84
#INCLUDE P16F84.INC
COUNTER1 EQU 1FH
OPTION_R EQU H’81’;给定 OPTION地址
ORG 0
START GOTO MAIN ;转MAIN
ORG D’4’ ;中断起始地址
GOTO AMFTT ;转中断服务程序
MAIN CALL INTLL;调子程序 INTLL
MOVLW 0 ;0→W
MOVWF TMRO ;0→TMR0开始计数
LOOP0 GOTO LOOP0 ;中断发生断点
INTLL BSF STATUS,5;选 BANK1
MOVLW 0;0→W
MOVWF OPTION_R;OPTION清零
MOVLW B’11010111’
;11010111→W(OPTION初始化)
MOVWF OPTION_R;11010111→选择
;寄存器
BCF STATUS,5;复位BANK为0
BCF INTCON,2;溢出中断标志位清零
BSF INTCON,5;使能TMR0中断
BSF INTCON,7;使能所有中断
MOVLW 0;0→W
BSF STATUS,5;选BANK1
MOVWF TRSB;设B口为输出
BCF STATUS,5;复位BANK为0
MOVLW B’01000010’;01000010→W
MOVWF PORTB;送B口01000010
MOVLW 0;清W
MOVLW 0×88;0×88→W
MOVWF COUNTER1
RETURN;子程序返回
AMFTT DECFSZ COUNTER1,1;COUNTER1减1
GOTO LOOP1;COUNTER1不
;为零转LOOP1
MOVLW 0×88;为零0×88送
;COUNTER1
MOVWF COUNTER1
COMF PORTB;B口求反
LOOP1 BCF INTCON,2;INTCON第二位
;清零
MOVLW 0;0→W
MOVWF TMR0;0→TMR0开始
;计数
RETFIE;中断返回(参看图4)
END
说明:
1)上述源程序对PIC16F84的B口任一位(0或1)输出的定时时间约32秒。
2)若要增加B口任一位的定时值,可增加伪指令,对PIC 16F84中的通用寄程器赋
值(设定地址),再在源程序的标号AMFTT处设置新增计数器的加或减的计数,达到多
重计数循环,延长TMR0的定时时间的目的。
3)该源程序可在MPLAB集成开发软件下进行汇编,生成.hex目标码,再利用PIC编
程器或《电子报》提供的实验编程器,将.hex目标码在PIC16F84单片机中固化,用相关
的实验板进行实验,体会单片机中“中断”源程序的编写方法。读者还可以把该“中
断”引用到其他的“中断”源。
□成都 力新