如何利用51单片机设计发出1MHz频率的方波 5

想做一个课设要求测量水的流量想用超声波,需要频率1MHz的波,怎么产生呢... 想做一个课设要求测量水的流量想用超声波,需要频率1MHz的波,怎么产生呢 展开
 我来答
IF真相
2015-12-25 · TA获得超过4.5万个赞
知道大有可为答主
回答量:5991
采纳率:57%
帮助的人:3580万
展开全部
可以用定时器中断实现这样的处理,这种方法重点在于根据你的晶振频率计算出定时器中断的参数,然后就可以很好的控制定时器中断触发的时间了。只要在中断处理过程里不断的让I/O口取反,就可以实现这样的方波了。

// 常数定义
#define TimeL 0x07 //定时器低位
#define TimeH 0xFE //定时器高位
// I/O口定义
sbit Sound= P1^6; //喇叭

// 主函数
main()
{
// 初始化中断

TMOD = 0x20; //00100000

TL0 = TimeL; //设置定时器0的中断产生周期,低位
TH0 = TimeH; //设置定时器0的中断产生周期,高位
ET0 = 1; //允许定时器0中断产生
TR0 = 1; //打开定时器0
EA = 1; //开总中断
// 进入死循环

while(1){
// 这里可以放置其他过程的处理

}
}

// 定时器中断的处理过程,这个过程关键在 interrupt 1 using 1 这里
// 这是根据MCU说明指定的参数,前面的完全可以自己定制名称,反正是无返回无参数就可以了
// 这里我用了类似VB事件的写法写了过程名称,不过怎么写名称无所谓
// 只要符合函数名规范就可以
void Timer0_Event(void) interrupt 1 using 1
{
TL0 = TimeL;
TH0 = TimeH;
Sound =! Sound;

}
Cindere鞡
2015-03-22 · TA获得超过7251个赞
知道大有可为答主
回答量:1148
采纳率:84%
帮助的人:500万
展开全部
你好:
8051核的单片机,在外接12MHZ晶振下,机器周期是1MHZ,假如在main中这么写:
while(1)
{
P1_0 = 1;

P1_0 = 0;

}
应该就是1MHZ的波了。
记得mov指令好像是1机器周期。
当然,如果是两个机器周期,那么吧外接晶振换为24MHZ,就可以了。
希望我的回答能帮助到你。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可靠的椰子A3
2015-03-18
知道答主
回答量:80
采纳率:0%
帮助的人:13.8万
展开全部
用51单片机设计发
我理解这样的设计
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仰小翠04g
2015-03-18 · TA获得超过110个赞
知道答主
回答量:1081
采纳率:0%
帮助的人:244万
展开全部
好的好的,我整理好范本了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查晓筠0i5
2015-03-18 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4905万
展开全部
需要给你完成一份吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式