标题: 提问:大佬们,这个程序有什么问题吗? [打印本页]

作者: 冷凝雪    时间: 2020-4-10 22:24
标题: 提问:大佬们,这个程序有什么问题吗?
#include <stc15.h>
main()
{
unsigned char cnt = 0; //
TMOD = 0x01; //T0=MODE1,T1=MODE0
TH0 = 0xFF; //0xB800 IS 20MS
TL0 = 0xF0;
TR0 = 1; //START T0
while(1)
{
if (TF0 == 1) //20MS?
{
TF0 = 0; //RESET TF0
TH0 = 0xFF; //NEXT IS 20MS
TL0 = 0xF0;
cnt++; //
if (cnt >= 5) //20MSx50=1000MS
{
cnt = 0;
P2 = ~P2; //P2=FF OR 00
}
}
}
}
作者: csmyldl    时间: 2020-4-11 14:30
程序无语法问题,逻辑问题要看编程者意图
作者: 浙江杭州    时间: 2020-4-11 16:23
可能的问题是你计时的时间要加载while前面,然后判断是否溢出。总共5次后取反。最好申明P2口状态。
#include <stc15.h>
main()
{P2=0X00;     //初始化
unsigned char cnt = 0; //
TMOD = 0x01; //T0=MODE1,T1=MODE0
TH0 = 0xFF; //0xB800 IS 20MS
TL0 = 0xF0;
TR0 = 1; //START T0
while(1)
{TH0 = 0xFF; //0xB800 IS 20MS
TL0 = 0xF0;

if (TF0 == 1) //20MS?
{TF0 = 0; //RESET TF0
cnt++; //
if (cnt >= 5) //20MSx50=1000MS
{
cnt = 0;
P2 = ~P2; //P2=FF OR 00
}
}
}
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1