打印

求助:简单程序,12f675仿真寄存器不正确

[复制链接]
2219|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
试试PIC|  楼主 | 2008-6-28 21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单程序,12f675仿真不正确,请各位大虾指教,程序如下:


list p=12f675

include <P12F675.INC>

    org 0x00
reset
    movwf OSCCAL
    goto start

    org 0x04
start
    bsf STATUS,RP0
    movlw 0x00
    movwf OPTION_REG
    clrf ANSEL
    movlw 0x18
    movwf TRISIO
    bcf STATUS,RP0
    clrf INTCON
    clrf GPIO
    comf GPIO
    movlw 0x07
    movwf CMCON
;
loop
    goto loop
end

期望:
TRISIO : 0x18
GPIO : 0xff
结果:
TRISIO : 0x08
GPIO : 0x14
仿真工具为MPLAB7.60,请各位大虾指点迷津,谢谢!
沙发
xieyuanbin| | 2008-6-29 20:08 | 只看该作者

初始化

地址0X04是中断入口,不要把程序写在那边.但这个不是你错误所在.
12F675有AD及比较器,先把这两样关了.

使用特权

评论回复
板凳
试试PIC|  楼主 | 2008-6-30 10:50 | 只看该作者

回复

感谢楼上的大虾的回答.我把程序放在0x04是想所有的误中断都复位.
ad与比较器应该开与关与我的初始化无关啊,而且我的比较器也关了,AD中断脚设置成I/O口.

list p=12f675

include <P12F675.INC>

    org 0x00
reset
    movwf OSCCAL
    goto start

    org 0x04
start
    bsf STATUS,RP0
    movlw 0x00
    movwf OPTION_REG  ;7:上拉;6:下降沿中断;5:tmr0内部时钟;4:tmr0上升沿递增;3:timer0用预分频器;210:一比一分频
    clrf ANSEL    ;7:无用;6~4:ad频率1/2Fosc;3~0ad引脚全部配置为数字脚
    movlw 0x18
    movwf TRISIO  ;4,3脚输入,其他输出。
    bcf STATUS,RP0
    clrf INTCON  ;7:禁止所有中断
    clrf GPIO
    comf GPIO    ;GPI0设置为ff
    movlw 0x07
    movwf CMCON  ;比较器关闭
;
loop
    goto loop
end

使用特权

评论回复
地板
XIEYUANBIN| | 2008-6-30 13:26 | 只看该作者

注意初始化顺序和配置位

初始化顺序要注意,配置位(CONFIG BITS)有无设置?

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝