关于51单片机产生500KHZ方波

我写了这个程序。可是不知道错在了哪里。求各位大神指点... 我写了这个程序。
可是不知道错在了哪里。
求各位大神指点
展开
 我来答
lycdl
高粉答主

推荐于2017-12-16 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4771万
展开全部
有什么问题呢?是程序不执行,还是什么?
是输出的方波不是500KHZ吧。首先告诉你,是不可能输出500KHZ方波的。
按你的程序计算,定时一个机器周期,就1us,方波周期就是2us,输出方波应该是500KHZ的,可为什么不是呢?
你是这么想的吧?
看来你对单片机的工作,还是不理解的。
单片机工作是靠执行指令,就是程序,来完成。可执行指令也是要需要时间的,执行一般的指令也需要2us的,你又用定时器的方式1,每次中断还要重写时间常数,就你的中断程序是需要7us的。可是,单片机响应中断,中断结束从中断返回需要的时间更长了。都些时间都要加起来才是一个中断的时间,一个周期则是2倍。这周期远远超过了2us。所以,是不可能输出500KHZ方波的。
按理说,应该用定时器的方式2,自动重装时间常数,可以节省时间,再利用查询方式,(不要用中断,因中断太费时了),虽然可以大大节省时间,但也不可能达到500KHZ,只是频率比你现在的程序会高很多的。
真要得到500KHZ的方波,有两种方案,1,用1MHZ的晶振组成振荡器,再分频就行。
2,用STC单片机,晶振频率选更高的,它内部有时钟分频电路,直接输出分频的方波,不需要执行程序,不需要中断。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式