打印

12c509输出的问题

[复制链接]
2809|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyezheng|  楼主 | 2007-3-18 10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用到GP0、GP1、GP2三个引脚,全部设置为输出,每秒用数据传送指令同时给它们写一次数据,GP0写入1,GP1写入0,GP2间隔1秒写入0和1,用软件仿真没有问题,但烧写后在板子上运行时,GP0输出的是0,GP1输出的是1,只有GP2输出是对的。我原来用的是51系列的单片机,刚接触PIC的,实在弄不清为什么会出现这种现象,请高手指点。
沙发
fzj| | 2007-3-19 13:46 | 只看该作者

不知道你是否应用了位操作指令?

如果使用位操作指令那就需要注意硬件电路了,如果你的硬件电路设计不合格,那就会出现你现象不到的结果.

使用特权

评论回复
板凳
wyezheng|  楼主 | 2007-3-20 07:18 | 只看该作者

试过了

一开始用了位操作指令,怀疑可能是这方面的问题,后来该为movwf指令,还是不行。

使用特权

评论回复
地板
FZJ| | 2007-3-20 08:29 | 只看该作者

楼主方便把原理图和程序发上来吗?

以便查找原因?

使用特权

评论回复
5
xln158| | 2007-3-20 15:30 | 只看该作者

请大家看看我编的这个程序怎么执行不下去!

请大家看看我编的这个程序怎么执行不下去!PC指针到了0XB的时候就跳到了0,试了很多次都不行。本来做的是个在GP0口上一小灯的闪烁程序,可是不能跳转,改了以下。有人说是头文件不对!可是我觉得应该没有问题的!还望赐教!谢谢!我用的是PIC12F509,开发环境是MPLAB IDE V7.10

以下是我的程序:

#DEFINE DELAY 0X11
#DEFINE OFF 0X02
indf equ 0
TMRO equ 1
PC equ 2
STATUS equ 3
FSR equ 4
GP equ 6
DATA1 equ 7
DATA2 equ 8
DATA3 EQU 9
 ORG 0X00  
 GOTO MAIN
OFF:
 BCF GP,0
 RETLW 0
MAIN:
    BCF STATUS,5
 BCF FSR,5
 MOVLW 0X0E
 TRIS GP
 MOVLW 7
 OPTION
 MOVLW 0XFE
 ANDWF GP,1
 CLRWDT 
 BSF GP,0
 GOTO DELAY
    BCF GP,0
 BTFSC GP,2
 GOTO OFF
 MOVLW 10
 MOVWF DATA3
 DECFSZ DATA3 
 GOTO OFF
 END

使用特权

评论回复
6
FZJ| | 2007-3-23 16:09 | 只看该作者

RE

 xln158 发表于 2007-3-20 15:30 PIC 单片机 ←返回版面    

5楼: 请大家看看我编的这个程序怎么执行不下去! 

请大家看看我编的这个程序怎么执行不下去!PC指针到了0XB的时候就跳到了0,试了很多次都不行。本来做的是个在GP0口上一小灯的闪烁程序,可是不能跳转,改了以下。有人说是头文件不对!可是我觉得应该没有问题的!还望赐教!谢谢!我用的是PIC12F509,开发环境是MPLAB IDE V7.10

以下是我的程序:

#DEFINE DELAY 0X11
#DEFINE OFF 0X02
indf equ 0
TMRO equ 1
PC equ 2
STATUS equ 3
FSR equ 4
GP equ 6
DATA1 equ 7
DATA2 equ 8
DATA3 EQU 9
ORG 0X00  
GOTO MAIN
OFF:
BCF GP,0
RETLW 0          //你下面用GOTO OFF,那这句话该返回到哪里?
MAIN:
    BCF STATUS,5
BCF FSR,5
MOVLW 0X0E
TRIS GP
MOVLW 7
OPTION
MOVLW 0XFE
ANDWF GP,1
CLRWDT 
BSF GP,0
GOTO DELAY     ;//这个GOTO后去哪里了?DELAY这个子程序在哪里?
    BCF GP,0
BTFSC GP,2
GOTO OFF
MOVLW 10
MOVWF DATA3
DECFSZ DATA3 
GOTO OFF      //CALL OFF   GOTO  MAIN
END 
 

使用特权

评论回复
7
wyezheng|  楼主 | 2007-3-25 08:15 | 只看该作者

RE:4楼和5楼

re:4楼
以下是我的程序,硬件也很简单,使用内部复位、内部RC振荡。
        LIST  P=12C509
        #include <p12c509.inc>

msec             equ 10h
sec        equ 11h
min        equ 12h

        org   00h
        
start1
        btfss  STATUS,NOT_PD        ;检测是否上电复位
        goto   loop
        btfss  STATUS,NOT_TO
        goto   loop
int
        movlw  0x07                    ;上电复位,清07H~1FHRAM
        movwf  FSR
int0
        clrf   INDF
        incf   FSR,1
        movlw  0x1f
        subwf  FSR,0
        btfss  STATUS,C
        goto   int0    

loop
        movlw  0x03        ;设置option
                  option
        clrf   TMR0        ;开始计时
loop0    
        movlw  0xf9        ;250
        subwf  TMR0,0
        btfss  STATUS,C
        goto   loop0        ;不到4ms,等待
        
        movlw  0x03
        nop
        nop
        nop
        nop
        nop
        nop
        option
        clrf   TMR0
        clrwdt
        
        incf   msec,1
        movlw  0xfa
        subwf  msec,0
        btfss  STATUS,C
        goto   loop0        ;不到1S(250个4ms)
        clrf   msec
        incf   sec,1        ;到1S,sec加1
        movlw  0x3c
        subwf  sec,0
        btfss  STATUS,C
        goto   pdout
        clrf   sec
        incf   min,1                ;够60S,min加1
pdout
        movlw  0x0f
        subwf  min,0
        btfss  STATUS,C
        goto   no_15min        ;不到15min
        movlw  0x0f        ;到15min,
        movwf  min

        clrw        
        tris   6
        
        bsf    GPIO,1
        bcf    GPIO,2
        
        btfss  GPIO,0        
        goto   zhi1
        bcf    GPIO,0
        goto   to_loop0
zhi1
        bsf    GPIO,0
        goto   to_loop0

no_15min
        clrw        
        tris   6
        
        bcf    GPIO,1
        bsf    GPIO,2
        
        btfss  GPIO,0        
        goto   zhi1_1
        bcf    GPIO,0
        goto   to_loop0    
zhi1_1
        bsf    GPIO,0    

to_loop0
        goto   loop0
        end

re5楼:

你说的现象我也遇到过,就是用软件仿真上面的程序时,在goto loop0处总是转到start1,后来把movlw  0x03        option改为movlw  0x83        option就没问题了,我也不知道为什么会这样.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

0

粉丝