/****************************************************************** “天祥电子” 倾情奉献 www.txmcu.cn www.txmcu.com 按键功能简介 ******************************************************************** 程序功能: 本例程为简易分频器(用计数器采集外部脉冲)。 实验前,请用排线(杜邦线)将TX-1C学习板的P1^0管脚与P3^5(T1) 管脚相连。因为P1^0用来模拟外界波形输入,它提供周期为100ms的方波, 与T1管脚相连后,T1可对其进行周期计数。 程序中的变量TL1决定着分频系数,其值乘以2即为分频系数。 改变其值可以得到相应的分频输出波形(方波)。 P1^1为输出管脚,将其连接示波器可以看到分频后的波形。 ********************************************************************/ #include 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; } } } void time0() interrupt 1 { TH0=0x4c; TL0=0x00; shuru=~shuru; //定时器每隔50ms发起一次中断,shuru电平变换一次,故模拟输入方波的周期为100ms }