该程序的仿真原理图:http://www.51hei.com/bbs/dpj-101350-1.html
单片机源程序如下:
- /******************************************************************
- 程序功能: 本例程为简易分频器(用计数器采集外部脉冲)。
- 实验前,请用排线(杜邦线)将QX-MCS51学习板的P1^0管脚与P3^5(T1)
- 管脚相连。因为P1^0用来模拟外界波形输入,它提供周期为100ms的方波,
- 与T1管脚相连后,T1可对其进行周期计数。
- 程序中的变量TL1决定着分频系数,其值乘以2即为分频系数。
- 改变其值可以得到相应的分频输出波形(方波)。
- P1^1为输出管脚,将其连接示波器可以看到分频后的波形。
- ********************************************************************/
- #include<reg52.h>
- sbit shuru=P1^0;
- sbit shuchu=P1^1;
- void main()
- {
- TMOD=0x51; //定时计数器0用于定时,定时计数器1用于计数
- TR0=1;
- TR1=1; //开通TR1计数器
- TH0=0x4c;// 计时器每隔50000微秒发起一次中断。
- TL0=0x00;
- ET0=1;
- EA=1;
- while(1)
- { //TL1为定时计数器1对应的内部寄存器的低八位。每当外部脉冲由1变为0时,其值加一。
- if(TL1==1) //对从T1端口采得的波形二分频。
- { //每计数一次(即采的模拟输入方波的一个周期),即执行此函数
- shuchu=~shuchu; //模拟方波的周期为100ms,而此处,每隔一个输入方波的周期,
- //输出信号电平变换一次,故其周期为200ms,实现了二分频。
- TL1=0;
- }
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
分频器(计数器实现).rar
(15.33 KB, 下载次数: 38)
|