你好 请问STC12C5A32S2 的ALE/P4.5如何设置成I/O口?

如题所述

STC12C5A32S2系列单片机P4/P5口的使用

P4端口的地址在C0h ,P4口中的每一位均可位寻址, 位地址如下:

位         P4.7          P4.6          P4.5          P4.4          P4.3          P4.2         P4.1       P4.0

位地址  C7h           C6h           C5h          C4h           C3h           C2h          C1h       C0h

由P4SW寄存器设置(NA/P4.4,ALE/P4.5,EX_LVD/P4.6)三个端口的第二功能

             地址       7          6                 5               4          3 2 1 0      

P4SW   BBH       -    LVD_P4.6   ALE_P4.5   NA_P4.4    -  -  - -        x000,xxxx

NA/P4.4:0,复位后P4SW.4 = 0,NA/P4.4脚是弱上拉,无任何功能    

                1,通过设置P4SW.4 = 1,将NA/P4.4脚设置成I/O口(P4.4)

ALE/P4.5:0,复位后P4SW.5=0,ALE/P4.5脚是ALE信号

                  1,通过设置P4SW.5 = 1,将ALE/P4.5脚设置成I/O口(P4.5)

EX_LVD/P4.6: 0,复位后P4SW.6=0,EX_LVD/P4.6是外部低压检测脚

                          1,通过设置P4SW.6=1,将EX_LVD/P4.6脚设置成I/O口(P4.6)

在ISP烧录程序时设置RST/P4.7的第二功能

RST/P4.7在ISP烧录程序时选择是复位脚还是P4.7口,如设置成P4.7口,必须使用外部时钟。

追问

谢谢,那如何设置P4SW.5 = 1?

追答

你用的是什么头文件,如果不是STC12C5A32S2.H,你得定义一下P4SW和P4的地址。

void main()
{
P4SW |= 0x20; //设置P4SW.5 = 1(初始化ALE/P4.5成I/O口)

while(1)
{
P4^5 = 0; //点亮P4.5管脚上的LED
}
}

追问

我不是这个头文件,P4SW和P4的地址该怎么定义?

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考