纠结的程序

[复制链接]
2005|6
 楼主| shuidi_wangdan 发表于 2013-1-17 16:31 | 显示全部楼层 |阅读模式
#include<p18f46k80.h>
#pragma config FOSC=INTIO1
#pragma config XINST=OFF
#pragma config WDTEN=OFF
//#pragma config LVP=OFF

#define uint unsigned int
#define uchar unsigned char

void pic18_FOSC_init()
{
OSCCON=0X5D;//4MHz
}
void IO_init()
{
  TRISAbits.TRISA0=0;//输出
LATAbits.LATA0=1;
}
void main()
{
        pic18_FOSC_init();
        IO_init();
        //timer_init();
        while(1)
            {
                          LATAbits.LATA0=~LATAbits.LATA0;       
        }
}
上面是我自己写的一段程序,我自己看不到哪有问题,希望高手给指点!
我用示波器测不出LATA0端口的变化,但我测出时钟脚的变化。
希望管理员别屏蔽,问题确实很简单,希望多多给指点,谢谢!
 楼主| shuidi_wangdan 发表于 2013-1-17 17:23 | 显示全部楼层
有谁能帮帮我?51和AVR没有遇到过这个情况。头疼的问题!
huangxz 发表于 2013-1-17 18:39 | 显示全部楼层
shuidi_wangdan 发表于 2013-1-17 17:23
有谁能帮帮我?51和AVR没有遇到过这个情况。头疼的问题!

程序没有问题啊,你延时一下是是吧
 楼主| shuidi_wangdan 发表于 2013-1-18 08:01 | 显示全部楼层
好的!谢谢!
 楼主| shuidi_wangdan 发表于 2013-1-18 10:13 | 显示全部楼层
我现在烧写了程序,但不工作,在PROTEUS里面是工作的,内部晶振在工作,为什么是这么一个情况呢?
 楼主| shuidi_wangdan 发表于 2013-1-18 10:15 | 显示全部楼层
huangxz 发表于 2013-1-17 18:39
程序没有问题啊,你延时一下是是吧

我现在烧写了程序,但不工作,在PROTEUS里面是工作的,内部晶振在工作,为什么是这么一个情况呢?
huangxz 发表于 2013-1-18 14:03 | 显示全部楼层
shuidi_wangdan 发表于 2013-1-18 10:15
我现在烧写了程序,但不工作,在PROTEUS里面是工作的,内部晶振在工作,为什么是这么一个情况呢? ...

初始化安装说明书里面的设置再试试吧(说明书p175)
  1. CLRF PORTA ;  Initialize PORTA by
  2. ; clearing output latches
  3. CLRF LATA ; Alternate method to
  4. ; clear output data latches
  5. MOVLW 00h ; Configure A/D
  6. MOVWF ANCON1 ; for digital inputs
  7. MOVLW  0BFh ; Value used to initialize
  8. ; data direction
  9. MOVWF  TRISA ;  Set RA<7, 5:0> as inputs,
  10. ;  RA<6> as output

,或许是因为指令执行的速度超过io口的速度,我的建议是加个延时,这样就可以看出来了,



实在不行就用ICD仿真一下了,这样很快就找到问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:奇葩满天下,不分你我他! 奋斗!https://bbs.21ic.com/static/image/smiley/chubby/17.gif[/url]

65

主题

549

帖子

3

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