|
|
|
|
51单片机C语言编程基础及实例
|
|
|
|
文章编号: |
090106102159 |
文章分类: |
单片机 > 51系列 |
|
点 击: |
|
关 键 词: |
C语言,基础,实例 |
|
文章来源: |
网络 |
|
摘 要: |
基础知识:51单片机编程基础。第一节:单数码管按键显示。第二节:双数码管可调秒表。第三节:十字路口交通灯。第四节:数码管驱动。第五节:键盘驱动。第六节:低频频率计。第七节:电子表。第八节:串行口应用。 |
|
第六节:低频频率计
实例目的:学时定时器、计数器、中断应用
说明:选用24MHz的晶体,主频可达2MHz。用T1产生100us的时标,T0作信号脉冲计数器。假设晶体频率没有误差,而且稳定不变(实际上可达万分之一);被测信号是周期性矩形波(正负脉冲宽度都不能小于0.5us),频率小于1MHz,大于1Hz。要求测量时标1S,测量精度为0.1%。
解:从测量精度要求来看,当频率超过1KHz时,可采用1S时标内计数信号脉冲个数来测量信号频,而信号频率低于1KHz时,可以通过测量信号的周期来求出信号频率。两种方法自动转换。
对于低于1KHz的信号,信号周期最小为1ms,也就是说超过1000us,而我们用的定时器计时脉冲周期为0.5us,如果定时多计或少计一个脉冲,误差为1us,所以相对误差为1us/1000us=0.1%。信号周期越大,即信号频率越低,相对误差就越小。
从上面描述来看,当信号频率超过1KHz后,信号周期就少于1000us,显然采用上面的测量方法,不能达到测量精度要求,这时我们采用1S单位时间计数信号的脉冲个数,最少能计到1000个脉冲,由于信号频率不超过1MHz,而我们定时脉冲为2MHz,最差多计或少计一个信号脉冲,这样相对误差为1/1000,可见信号频率越高,相对误差越小。
信号除输入到T1(P3.5)外,还输入到INT1(P3.3)。
|
|
|
|
|
|
|
|
|
|