C与单片机的简单程序问题请教

来源:百度知道 编辑:UC知道 时间:2024/07/05 19:24:37
我想做一个定时开启与定时关闭的程序,就是一个时钟一直在走时,设定时间让它开和关,这是程序的一部份,怎么能设定P3开却不能关,我没弄懂还请大虾提示!谢谢了先! 程序如下:
if(h_num==12&m_num==0&s_num==15) //分别设置时分秒的启动时间
P3=0; //接通继电器
else
if(h_num==12&m_num==0&s_num==20)
P3=1; //关闭继电器
h_num是时,m_num是分.............
这是一个while(1)的循环内的

你的程序有问题:
1.else应该加一个花括号
2.P3指的是MCU的P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7这8个口。所以你写P3=1,表示P3.0=1
见下表。这个十进制数表示为1
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
0 0 0 0 0 0 0 1
我没有看见你的硬件电路结构,所以就把你的P3口全部拉成高电平了。见下表,这个数二进制是1111,1111B,十进制是255,如果写16进制就是0xff(或者0ffH)
P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
1 1 1 1 1 1 1 1
我帮你改了一下程序段,你再试试吧。
if(h_num==12&m_num==0&s_num==15) //分别设置时分秒的启动时间
P3=0x00; //接通继电器
else
{
if(h_num==12&m_num==0&s_num==20)
P3=0xff; //关闭继电器
}

P3,应该是8个引脚的接口。
P3=0,8个脚,都输出0;
P3=1,8个脚,只有P3.0输出1。

老徐回答的很好呀!