找回密码
 立即注册

QQ登录

只需一步,快速开始

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

分频器(单片机计数器实现)源代码

[复制链接]
跳转到指定楼层
楼主
ID:260372 发表于 2017-12-12 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

该程序的仿真原理图:http://www.51hei.com/bbs/dpj-101350-1.html
单片机源程序如下:
  1. /******************************************************************
  2. 程序功能: 本例程为简易分频器(用计数器采集外部脉冲)。
  3.                    实验前,请用排线(杜邦线)将QX-MCS51学习板的P1^0管脚与P3^5(T1)
  4.                    管脚相连。因为P1^0用来模拟外界波形输入,它提供周期为100ms的方波,
  5.                    与T1管脚相连后,T1可对其进行周期计数。
  6.                    程序中的变量TL1决定着分频系数,其值乘以2即为分频系数。
  7.                    改变其值可以得到相应的分频输出波形(方波)。
  8.                    P1^1为输出管脚,将其连接示波器可以看到分频后的波形。
  9. ********************************************************************/

  10. #include<reg52.h>

  11. sbit shuru=P1^0;
  12. sbit shuchu=P1^1;

  13. void main()
  14. {
  15.         TMOD=0x51;        //定时计数器0用于定时,定时计数器1用于计数
  16.         TR0=1;
  17.         TR1=1;          //开通TR1计数器
  18.         TH0=0x4c;// 计时器每隔50000微秒发起一次中断。
  19.         TL0=0x00;
  20.         ET0=1;
  21.         EA=1;

  22.         while(1)
  23.         {                                //TL1为定时计数器1对应的内部寄存器的低八位。每当外部脉冲由1变为0时,其值加一。
  24.                 if(TL1==1)           //对从T1端口采得的波形二分频。
  25.                 {                           //每计数一次(即采的模拟输入方波的一个周期),即执行此函数
  26.                         shuchu=~shuchu;        //模拟方波的周期为100ms,而此处,每隔一个输入方波的周期,
  27.                                                         //输出信号电平变换一次,故其周期为200ms,实现了二分频。
  28.                         TL1=0;
  29.                 }                                                            
  30.         }
  31. }
  32. ……………………

  33. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
分频器(计数器实现).rar (15.33 KB, 下载次数: 38)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:356562 发表于 2018-6-22 05:52 | 只看该作者
很不错的帖子。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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