搜索

51单片机c语言编程基础问题我基础不太好下面的程序里初始化函数

gecimao 发表于 2019-07-02 18:33 | 查看: | 回复:

  主函数部分我没问题所以上面略去了,麻烦来个高人指导一下上面初始化函数和中断函数这两段是什么意思,谢谢

  但是前面的初始化函数那几行65536什么的不懂什么意思·········展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部65536是定时器溢出值,用它减去10就是定时器装入的初值,即65526,也就是说定时器每计数10下就进入了定时中断,执行中断服务函数。若是12MHz晶振,那么进入定时中断周期为10us,即频率为100KHz。其输出波形频率和 i 有关,i 最大值为10,所以输出脉冲波频率为10KHz。

  zkb显然是“占空比”的汉语拼音缩写,那么这个函数的功能是输出一个占空比为zkb/10*100%大小的脉冲波形,其频率为10KHz。占空比可通过按键进行调节。

  定时器0为16位!它的最大计数范围为2的16次方,也就是65536,可以把定时器比作一个水桶,如果这个桶是空的,那么它装满水需要65536滴水!也就是说它最多能定时65.536毫秒 ,当然前提是在12Mhz晶振下!假如说你只要定时10ms,那么你的桶里面必须要先装(65536-10000)滴水,这就是所谓的赋初值!假设我们从水池上面接上水管!往你桶里滴水,水管上有三个水龙头,有个总龙头!所有水管要出水,这个总龙头必须要打开,就是EA=1;然后你只是想让定时器0这个方向的水管出水,那就要把这个龙头打开,也就是ET0=1;然而你总得要出水出来吧,并且要知道它还能装多少水吧!所以你还得把最后要出水的这个龙头打开,TR0=1;然后你的水就一滴一滴的往你桶里去,当滴了10000滴后,它是不是就满了,你再滴是不是溢出了,溢出是不是就引起中断了,然后你是不是要把滴进来的水又倒掉!好让下一次的再滴!这是不是就是定时器中断里面的重新赋初值啊!很好理解的

本文链接:http://arnybarn.net/duxiekongzhidianlu/812.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部