如果用万用表测量的话,1.6伏是有效值,由于单片的IO只能输出电平量,所以通过IO驱动蜂鸣器播放歌曲,只能通过控制高低电平的频率来控制蜂鸣器发出不同的音调,所以电压的有效值肯定小于TTL高电平电压,如果频率很快的话万用表测量出来的电压就会小于TTL的高电平电压了
我想了一下几种可能:
第一步:检查单片机20(GND)和40(VCC)脚之间电压是否满足单片机工作要求
第二步:不接蜂鸣器,用示波器观察P2.3,看是否满足TTL电平的标准(万用表测的是有效值)
如果以上没问题
那么用KEIL编程之前选择芯片型号,选对没有。这个问题我范过,结果P2口的电压是2.3伏!
还用可能是程序烧录的问题
可以用一个三极管来驱动,也建议采用那种方式,因为TTL系列的灌电流(引脚输出低电平)远比拉电流(引脚高电平)要大,大概是是十倍的的关系,记不太清了!
不过很遗憾,2.1伏仍然不是一个典型的值,我在自己的实验板上实验,用万用表测得低电平都在0.3V以下,高电平是四点几伏,STC的51增强型单片机
不知道你现在有没有做出来?
如果你是直接将P2.3接到蜂鸣器的话,这个电压是可以理解的---它被拉低了,而且蜂鸣器的工作电流是比较大的,直接接上是驱动不了的,应在其前面加放大电路,即在IO与蜂鸣器之间加一级放大,电路图可以参考:http://baike.baidu.com/view/183969.html
如果你确认程序有正确输出,请检查你的电路!
特别是io口部分,看它是不是被外电路影响拉高或拉低。
不过这里提醒你,仿真正确不代表程序没问题,仿真并不是实际!
所以如果电路查不出问题,程序也要检查!
试试看 肯定可以,哈哈