打印

PIC18F13K50 编程问题,已解决

[复制链接]
1945|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 bartsimpson 于 2013-4-15 09:47 编辑

大家好,我刚刚接触PIC单片机。使用PICkit3 烧写,IDE是MPLABX。为了检验自己对PIC编程的掌握程度,我把一个简单的程序写入PIC18F13K50.程序的功能是让PORTC 的1口持续输出高电平,以点亮一个LED。代码如下:
#include P18F13K50.INC


    CONFIG WDTEN = OFF
    CONFIG MCLRE = ON
    CONFIG DEBUG = ON
    CONFIG LVP = OFF
    CONFIG FOSC = IRC
    CONFIG CP0 = OFF
    CONFIG CP1 = OFF
    CONFIG CPB = OFF
    CONFIG CPD = OFF
    CONFIG EBTR0 = OFF
    CONFIG EBTR1 = OFF
    CONFIG EBTRB = OFF

   
    ORG 0x20

Start:
    CLRF PORTC
    CLRF TRISC
MainLoop:
    BSF PORTC, 1
    GOTO MainLoop
    end
烧录后,IDE显示"programming/verify complete"。

但是LED怎么都不亮。我尝试烧录后用单独的电源向PIC供电,也尝试了IDE中的"maintain active connection with hardware tool"来给PIC供电,都不行。
我测试了LED是好的。
不知谁能指点我一下?
沙发
huangxz| | 2013-4-14 23:35 | 只看该作者
熔丝位是不是也要编程啊

使用特权

评论回复
板凳
diweo| | 2013-4-15 07:12 | 只看该作者
没有好好看数据手册吧。
寄存器9-15: ANSEL:模拟选择寄存器1
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 U-0 U-0 U-0
ANS7 ANS6 ANS5 ANS4 ANS3 — — —
bit 7 bit 0
图注:
R = 可读位W = 可写位U = 未实现位,读为0
-n = POR 时的值1 = 置1 0 = 清零x = 未知
bit 7 ANS7:RC3 模拟选择控制位
1 = 禁止RC3 的数字输入缓冲器
0 = 使能RC3 的数字输入缓冲器
bit 6 ANS6:RC2 模拟选择控制位
1 = 禁止RC2 的数字输入缓冲器
0 = 使能RC2 的数字输入缓冲器
bit 5 ANS5:RC1 模拟选择控制位
1 = 禁止RC1 的数字输入缓冲器
0 = 使能RC1 的数字输入缓冲器
bit 4 ANS4:RC0 模拟选择控制位
1 = 禁止RC0 的数字输入缓冲器
0 = 使能RC0 的数字输入缓冲器
bit 3 ANS3:RA4 模拟选择控制位
1 = 禁止RA4 的数字输入缓冲器
0 = 使能RA4 的数字输入缓冲器
bit 2-0 未实现:读为0

使用特权

评论回复
地板
bartsimpson|  楼主 | 2013-4-15 09:45 | 只看该作者
已解决。将倒数第三行PORTC改为LATC即可。我从microchip的官方论坛问出来的。那人还说,我没搞明白是因为没看过Read-Modify-Write。看来以后要学的还很多呀。
3楼说的ANSEL,在datasheet9.4节被提到:“when these I/O pins are to be used as analoge inputs......”ANSEL只不过是让相应端口在数字输入和模拟输入之间选择一个功能而已,说到底还是输入口设置。而我要的是端口输出高电平。

使用特权

评论回复
5
diweo| | 2013-4-15 11:18 | 只看该作者
是我看反了。。:L

使用特权

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

本版积分规则

1

主题

2

帖子

1

粉丝