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

[复制链接]
2925|3
 楼主| 试试PIC 发表于 2008-6-28 21:09 | 显示全部楼层 |阅读模式
简单程序,12f675仿真不正确,请各位大虾指教,程序如下:<br /><br /><br />list&nbsp;p=12f675<br /><br />include&nbsp;&ltP12F675.INC&gt<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0x00<br />reset<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;OSCCAL<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;start<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0x04<br />start<br />&nbsp;&nbsp;&nbsp;&nbsp;bsf&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;OPTION_REG<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;ANSEL<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x18<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;TRISIO<br />&nbsp;&nbsp;&nbsp;&nbsp;bcf&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;INTCON<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;GPIO<br />&nbsp;&nbsp;&nbsp;&nbsp;comf&nbsp;GPIO<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x07<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;CMCON<br />;<br />loop<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;loop<br />end<br /><br />期望:<br />TRISIO&nbsp;:&nbsp;0x18<br />GPIO&nbsp;:&nbsp;0xff<br />结果:<br />TRISIO&nbsp;:&nbsp;0x08<br />GPIO&nbsp;:&nbsp;0x14<br />仿真工具为MPLAB7.60,请各位大虾指点迷津,谢谢!
xieyuanbin 发表于 2008-6-29 20:08 | 显示全部楼层

初始化

地址0X04是中断入口,不要把程序写在那边.但这个不是你错误所在.<br />12F675有AD及比较器,先把这两样关了.
 楼主| 试试PIC 发表于 2008-6-30 10:50 | 显示全部楼层

回复

感谢楼上的大虾的回答.我把程序放在0x04是想所有的误中断都复位.<br />ad与比较器应该开与关与我的初始化无关啊,而且我的比较器也关了,AD中断脚设置成I/O口.<br /><br />list&nbsp;p=12f675<br /><br />include&nbsp;&ltP12F675.INC&gt<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0x00<br />reset<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;OSCCAL<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;start<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;org&nbsp;0x04<br />start<br />&nbsp;&nbsp;&nbsp;&nbsp;bsf&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;OPTION_REG&nbsp;&nbsp;;7:上拉;6:下降沿中断;5:tmr0内部时钟;4:tmr0上升沿递增;3:timer0用预分频器;210:一比一分频<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;ANSEL&nbsp;&nbsp;&nbsp;&nbsp;;7:无用;6~4:ad频率1/2Fosc;3~0ad引脚全部配置为数字脚<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x18<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;TRISIO&nbsp;&nbsp;;4,3脚输入,其他输出。<br />&nbsp;&nbsp;&nbsp;&nbsp;bcf&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;INTCON&nbsp;&nbsp;;7:禁止所有中断<br />&nbsp;&nbsp;&nbsp;&nbsp;clrf&nbsp;GPIO<br />&nbsp;&nbsp;&nbsp;&nbsp;comf&nbsp;GPIO&nbsp;&nbsp;&nbsp;&nbsp;;GPI0设置为ff<br />&nbsp;&nbsp;&nbsp;&nbsp;movlw&nbsp;0x07<br />&nbsp;&nbsp;&nbsp;&nbsp;movwf&nbsp;CMCON&nbsp;&nbsp;;比较器关闭<br />;<br />loop<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;loop<br />end<br />
XIEYUANBIN 发表于 2008-6-30 13:26 | 显示全部楼层

注意初始化顺序和配置位

初始化顺序要注意,配置位(CONFIG&nbsp;BITS)有无设置?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部