找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1365|回复: 2
打印 上一主题 下一主题
收起左侧

提问:大佬们,这个程序有什么问题吗?

[复制链接]
跳转到指定楼层
楼主
ID:706401 发表于 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
}
}
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-4-11 14:30 | 只看该作者
程序无语法问题,逻辑问题要看编程者意图
回复

使用道具 举报

板凳
ID:709595 发表于 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
}
}
}
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表