初学者求助 STC89C52单片机, 不用外部中断的前提下,如何对外部信号处理。

比如:若外部输入高电平的话然P1^0输出低电位,若外部输入为低电平则让P1^1输出低电位。

可以实现 但只能用扫描方式实现 方法:
1、把输入端值1,如果输入信号为0的话,会把该端口拉到0电位,这时采集的话,就是0电平。
2、该信号的采集在简单程序的时候可在主程序执行,如果主程序过于复杂,可用定时器定时中断进行定时扫描。
3、输入端的信号确定了 就可控制输出了。追问

能具体点吗?
如果是C编程的话是直接用 (P1^0位声明没写)
if(P2^0==0)
{
P1^0=0;
}这样吗?
最好能给个C的程序例子这样看的明确点
新手求教。。。QQ1054961784

追答

只简单说一下过程:
void delay(unsigned char t) //1ms延时程序
{。。。。。} //略
main()
{..... //预执行语句,这里没有
while(1)
{
P2^0=1;
if(P2^0=0)
{ P1^0=0;}
if(P2^0=1)
{ P1^0=1;}
delay(200);//延时200ms,200ms刷新一次
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-10
根据精度要求,选择定时时间,定式扫描P1.0,检测为0,在中断中p1.1=0追问

能具体点吗?
如果是C编程的话是直接用 (P1^0位声明没写)
if(P2^0==0)
{
P1^0=0;
}这样吗?
最好能给个C的程序例子这样看的明确点
新手求教。。。QQ1054961784

第2个回答  2012-02-10
最好用中断,要不那延时的时间,cpu什么都不能做的。
相似回答
大家正在搜