51单片机疑问:当P1^0口从低电平升到高电平时,P0^0口输出一个脉冲,持续10ms.请问程式如何编写~谢谢~
当P1^0口从低电平升到高电平时,P0^0口输出一个持续10ms的脉冲,请用c语言,晶振12MHZ...
当P1^0口从低电平升到高电平时,P0^0口输出一个持续10ms的脉冲,请用c语言,晶振12MHZ
展开
2个回答
展开全部
请问程式如何编写
----
用汇编、用C,都可以编写。
检测上升沿,定时 10ms,都不是难事。
但是,首先需要知道晶振频率是多少。
sbit P00 = P0^0;
sbit P10 = P1^0;
main()
{
TMOD = 0x01;
while(1) {
while(P10 == 1);
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256;
while(P10 == 0); //等待上升
P00 = 1; //输出脉冲
TR0 = 1; //开始定时
while(TF0 == 0); //等待10ms
P00 = 0; //脉冲结束
TR0 = 0; //停止定时
TF0 = 0;
}
}
----
用汇编、用C,都可以编写。
检测上升沿,定时 10ms,都不是难事。
但是,首先需要知道晶振频率是多少。
sbit P00 = P0^0;
sbit P10 = P1^0;
main()
{
TMOD = 0x01;
while(1) {
while(P10 == 1);
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256;
while(P10 == 0); //等待上升
P00 = 1; //输出脉冲
TR0 = 1; //开始定时
while(TF0 == 0); //等待10ms
P00 = 0; //脉冲结束
TR0 = 0; //停止定时
TF0 = 0;
}
}
追问
大哥,如果变成P1^0k口或P1^1口从低电平升到高电平时,P0^1口输出一个持续10ms的脉冲,那怎么写啊
追答
前面这两行:
sbit P00 = P0^0;
sbit P10 = P1^0;
就是设定接口的。
其中的 P0^0、P0^0,你可以自己随便指定,程序不用变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询