问个定时器TMR0的问题【恢复】

2020-02-10 08:46发布

程序如下,为什么下载到单片机上运行不了呢?仿真就可以正常运行。请高手帮下我吧,谢谢



LIST P = 16F74

INCLUDE "P16F74.INC"



TMR0B  EQU  6  ;定义TMR0寄存器初始值(250=256-6)

COUNT  EQU  20H  ;存放延时次数

;*****************主程序开始****************

 ORG  00H

 GOTO MAIN

;*******************************************

MAIN

; NOP     ;设置一条ICD必须的空操作

;*****************初始化********************

 BSF  STATUS, RP0 ;转到体1



 MOVLW 07H   ;设置选项分频寄存器内容

 MOVWF OPTION_REG ;分频值设为1:256

 ;   MOVLW   0A0H 

 ;   MOVWF   INTCON      ;全局中断允许,定时器中断使能



 MOVLW 00H

 MOVWF TRISD  ;设置端口D为输出

 BCF  STATUS, RP0 ;转到体0

 CLRF COUNT

;***************初始化结束******************

LOOP

 MOVLW 0FFH 

 MOVWF PORTD

 CALL DELAY

 MOVLW 00H

 MOVWF PORTD

 CALL DELAY

 GOTO LOOP



;*****************延时程序开始***************

DELAY

 MOVLW 16H   ;设置循环延时64MS的次数为20次

 MOVWF COUNT

LOOP1

 BCF  INTCON, 2 ;清除TMR0溢出标志位

 MOVLW TMR0B  ;TMR0赋初值

 MOVWF TMR0  ;启动定时器

LOOP2

 BTFSS INTCON, 2 ;检测TMR0溢出标志位

 GOTO LOOP2  ;没有溢出,继续检测

 DECFSZ COUNT  ;判断计数次数是否满20次

 GOTO LOOP1  ;计数没结束,继续



 RETURN    ;返回主程序

;*************************延时程序结束*******************

;************************程序结束***********************

 END
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
yech
1楼-- · 2020-02-10 11:44
问题解决了。原因是我在下载程序的时候,看门狗没有关闭,以前下载51和AVR的单片机都不用设置配置位的,现在PIC要设好配置位才可以正常工作。呵呵,谢谢各位了!
headwolf_83
2楼-- · 2020-02-10 14:43
TRISE 的PSPMODE位清掉。ICD2不支持16F7X的调试。
eduhf_123
3楼-- · 2020-02-10 15:33
 精彩回答 2  元偷偷看……

一周热门 更多>