C51 COMPILER V8.02 FENPIN 07/14/2010 10:57:29 PAGE 1 C51 COMPILER V8.02, COMPILATION OF MODULE FENPIN OBJECT MODULE PLACED IN fenpin.OBJ COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE fenpin.c BROWSE DEBUG OBJECTEXTEND line level source 1 /****************************************************************** 2 “天祥电子” 倾情奉献 3 www.txmcu.cn 4 www.txmcu.com 5 按键功能简介 6 ******************************************************************** 7 程序功能: 本例程为简易分频器(用计数器采集外部脉冲)。 8 实验前,请用排线(杜邦线)将TX-1C学习板的P1^0管脚与P3^5(T1) 9 管脚相连。因为P1^0用来模拟外界波形输入,它提供周期为100ms的方波, 10 与T1管脚相连后,T1可对其进行周期计数。 11 程序中的变量fpxs为分频系数,改变其值可以得到相应的分频输出波形(方波)。 12 P1^1为输出管脚,将其连接示波器可以看到分频后的波形。 13 ********************************************************************/ 14 15 #include 16 17 sbit shuru=P1^0; 18 sbit shuchu=P1^1; 19 20 void main() 21 { 22 1 TMOD=0x51; //定时计数器0用于定时,定时计数器1用于计数 23 1 TR0=1; 24 1 TR1=1; //开通TR1计数器 25 1 TH0=0x4c;// 计时器每隔50000微秒发起一次中断。 26 1 TL0=0x00; 27 1 ET0=1; 28 1 EA=1; 29 1 30 1 while(1) 31 1 { 32 2 if(TL1==1) //对从T1端口采得的波形二分频。 33 2 { //每计数一次(即采的模拟输入方波的一个周期),即执行此函数 34 3 shuchu=~shuchu; //模拟方波的周期为100ms,而此处,每隔一个输入方波的周期, 35 3 //输出信号电平变换一次,故其周期为200ms,实现了二分频。 36 3 TL1=0; 37 3 } 38 2 } 39 1 } 40 41 void time0() interrupt 1 42 { TH0=0x4c; 43 1 TL0=0x00; 44 1 shuru=~shuru; //定时器每隔50ms发起一次中断,shuru电平变换一次,故模拟输入方波的周期为100ms 45 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 38 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- C51 COMPILER V8.02 FENPIN 07/14/2010 10:57:29 PAGE 2 END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)