永发信息网

51单片机12MHz晶振输出方波

答案:2  悬赏:10  手机版
解决时间 2021-03-02 05:14
51单片机接12MHz晶振,定时器0工作方式1,如何设置定时器初值可使频率达到20Hz~20KHz。我是用键盘电路输入频率和占空比,但频率最大只能达到3KHz左右。
求指导,最好能有关于定时器、中断函数的算法参考一下,急求!!!!
最佳答案
1K T=500us+500us
10K T=50us+50us
20K T=25us+25us

1K以上时,最好不要用定时器0工作方式1,里面涉及到软件延时。

给你提供一个简单的20KHz的方波程序。51单片机接12MHz晶振,定时器0工作方式2。
将程序下载到单片机里,测试一下,试试看。根据实测结果要作调整。
未加按键,略作参考吧。(太晚了,不想写了。)

#include
sbit P10=P1^0;
void Delay25us();

void main()
{
TMOD=0x02;
TH0=(256-25)/256;
TL0=(256-25)%256;
while(1)
{
P10=~P10;
Delay25us();
}
}

void Delay25us()
{
TR0=1;
while(!TF0);
TR0=0;
TF0=0;
}
全部回答
这个程序你写的太不规范了。 改你的程序. delay mov r7,#50 ;2 2代表机器周期 d3: mov r6,#50 ;2 d2: mov r5,#200 ;2 d1: djnz r5,d1 ;2 djnz r6,d2 ;2 djnz r7,d3 ;2 ret ;2 其实这个程序来做延迟程序是有误差的,而且很大。 实际延迟时间 t=2us+((2us*200+2us)*60)*50+2us= ... 自己算吧 反正比1s延迟要高,仔细看看计算式子的顺序。以基本2重循环思路来解决3重循环。如果要求不高的话,用它来做1s延迟也可以。 下面来给你写一个通过定时,计数器来做延迟子程序。(精确度很高) 有关知识看定时计数器单元的介绍。 delay: mov tmod,#01h ;选择工作方式1 定时器0 mov th0,#** mov tlo,#** setb tr0 loop1: jnb tf0,loop clr tf0 sjmp main ** 的初始值计算方法 1000 000us=(65535-x)/t t=12*1/fosc fosc 即为晶振频率 用x的值除以256,商给th0,余数给tl0 这样,如果需要延迟子程序直接调用。精确度极高。 希望对你有用。不懂继续问
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国农业大学学生证
成五采,此天子气也。求这一句的翻译
建设摩托YAMAHA技术这个地址在什么地方,我要
东汉徐万秋
花样滑冰属于初中特长生吗?
学园街/津文线(旧)(路口)地址在什么地方,想
固体,气体变热会怎样?
网上怎么销售产品
华拓教育科技公司地址在什么地方,想过去办事
《君主论》吕健中译本的怎么样,公认比较好的
3周岁的宝宝晚上睡觉打呼噜是怎么回事?
注射局麻药后出现头晕、胸闷,面色苍白,全身
御足会馆这个地址在什么地方,我要处理点事
同是猪身上的肉,为什么排骨要比猪肉好吃?
贷款人贷款后残疾了,没有任何经济来源,只有
推荐资讯
下列关于细胞生命历程的叙述正确的是A. 细胞
为什么the most mildly sophisticated的解释
芜湖汇胜机械地址在哪,我要去那里办事
苹果手机怎么找回id
对于中学生而言,学会自理主要包括D①提高基
帮华为代工的有哪些公司
义乌市房屋主体设计
什么时候逛商场的人最多?
本怎么写好看
植物的根尖有什么作用?
空气能热水器是不是空气温度越高水就热的越快
不想跟公婆一起住 怎么跟公婆说
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?