打印

现在要使用P4.5 P4.4.作为普通输出口,怎么设置才能做到?

[复制链接]
411|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2019-3-8 19:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在要使用P4.5 P4.4.作为普通输出口,怎么设置才能做到?
沙发
wangpe| | 2019-3-8 19:28 | 只看该作者
你得问题是什么

使用特权

评论回复
板凳
yufe|  楼主 | 2019-3-8 19:32 | 只看该作者

在程序开始设置 P4M0 P4M1 为 0,发现P4.2 P4.3 可以输出,P4.4.P4.5无法输出

使用特权

评论回复
地板
langgq| | 2019-3-8 19:35 | 只看该作者
由于P4.4/P4.5 Pin的Reset后Default设定为OCD_ICE功能,因此如不要OCD_ICE功能后,需要使用P4.4/P4.5 Pin的话,需要在程序一开始就设定Disable OCD ICE功能在P4.4/P4.5

使用特权

评论回复
5
yufe|  楼主 | 2019-3-8 19:37 | 只看该作者
设定方式是什么养的

使用特权

评论回复
6
wangzsa| | 2019-3-8 19:40 | 只看该作者

ISPCR=0x80;
IFMT=0x07;    //#AUXRA_Rd ;set read AUXRA command
SCMD=0x46;
SCMD=0xB9;
Data=IFD;
//Data|=0x20;      //AUXRA.5=1 enable OCD_ICE on P4.4/P4.5
Data&=0x04;      //AUXRA.5=0 disable OCD_ICE on P4.4/P4.5
IFD=Data;
IFMT=0x06;  //AUXRA_Wr ;set write AUXRA command
SCMD=0x46;
SCMD=0xB9;
ISPCR=0x00;

使用特权

评论回复
7
yufe|  楼主 | 2019-3-8 19:47 | 只看该作者

我是把上面的程序放在我的主程序里的一开头的位置了,但是没有实现我想要的P4.4和P4.5为 准双向口啊?

使用特权

评论回复
8
zhuww| | 2019-3-8 19:50 | 只看该作者
代码看看

使用特权

评论回复
9
yufe|  楼主 | 2019-3-8 19:54 | 只看该作者

sbit Led1= P4^4;  
sbit Led2= P4^5;  
void main(void)
{        
        uchar Data=0;        
        ISPCR=0x80;         //使能ISP/IAP 读/写/擦除功能
        IFMT =0x07;  //设置 读 AUXRA寄存器 (保护的SFR)
        SCMD =0x46;         //当ISPCR.7为“1”且SCMD顺序写入命令“0x46 0xB9”时,ISP操作被触发
        SCMD =0xB9;
        Data = IFD;
        Data&=0x04;  //disable OCD_ICE on P4.4/P4.5
        IFD  =Data;
        IFMT =0x06;  //设置写 AUXRA 寄存器(保护的SFR)
        SCMD =0x46;
        SCMD =0xB9;
        ISPCR=0x00;

        Led1=0;
        Led2=0;
        while(1){delay(200);}
}

使用特权

评论回复
10
zhanglli| | 2019-3-8 19:58 | 只看该作者
你可以试一下哈

使用特权

评论回复
11
lium| | 2019-3-8 20:02 | 只看该作者

楼主用的是什么单片机,什么设置方式呢?

使用特权

评论回复
12
yufe|  楼主 | 2019-3-8 20:04 | 只看该作者
搞定了,呵呵,犯了低级错误……结贴啦,多谢各位

使用特权

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

本版积分规则

983

主题

10170

帖子

1

粉丝