单片机引脚信号检测分析
检测对象
单片机AT89C2051,使用6MHz石英晶体,控制三个发光二极管各自渐变亮,渐熄灭。
三个LED共组成七种亮灭情况(没有全部熄灭的状态),分别对应二进制数的一到七。依序变化一个周期约49秒,每种变化历时七秒。
所用的示波器,标称电压是实际电压的十分之一。
检测过程
1 用示波器看5脚信号,是标准的正弦波形,周期约160ns,即六兆的频率,振幅是2V(即幅度4V),都位于横轴的上方,即5脚电势总高于电源负极。其4脚信号与5脚相似,但略有些变形,可见是带有杂波。
2.I/O口输出的是矩形波,矩形波周期8ms(即48000个时钟脉冲),幅值3V。使用最快的扫描速度,可以看到矩形波上升沿,高5V,宽400ns。
3.使用较慢的扫描速度,可以看到矩形波的脉宽比随灯的亮暗变化而改变。当灯由暗变亮,其脉宽比由0%逐渐变大到100%,当脉宽比维持在100%,灯持续地亮着。当灯由亮变暗,其脉宽比由100%逐渐变小到0%,当脉宽比维持在0%,灯一直不亮。
4.脉宽比由0%逐渐变大到100%或由100%逐渐变小到0%所经历的时间都是大约6.8秒时间。
理论分析
单片机通过改变输出口某引脚电平的脉宽比来实现让发光二极管亮度的逐渐变化。因为6.8s/8ms等于850,所以灯的每次亮暗变化过程里包含了850个矩形波,又因为48000/850等于56,所以相邻两个矩形波脉宽相差56个时钟周期。
在编程方面,假设要由A状态变化到B状态,则先把B发送到输出口并延时N个时钟脉冲,再把A发送到同一输出口并延时(48000-N)个时钟脉冲,每经历一个这样的变化就让N值递增56,当N由1增大到48000,则灯就由A状态变化到B状态了。
评论