2。采用独立的发光二极管,其中:
1。使用74HC138译码器,38译码器就是用三个管脚来控制8个管脚的亮面,从而解决单片机I/O口无法满足设计需求的问题。 其优点是可以节省管脚的使用,缺点是一个三八译码器内两个灯无法被同时点亮,这样做出的灯表现形式会减少。
2。直接使用8个led,用一个管脚来控制一个led。这样做虽然会消耗较多的元器件,但控制会更加简洁明了,从而增加更多功能。
最后我还是选择最后的方案,直接用led连接管脚的控制更加方便,速度更快,拓展性更强。
2。2。4 按键模块
1。矩阵按键。与上文的三八译码器相同,矩阵按键是将按键排列成一个矩阵,从而减少对I/O口的使用。矩阵按键中按键两端的每一端都是接芯片管脚的,通过把横轴的管脚拉高,读纵向的电压,然后循环一只往下读,利用这种方式来获得矩阵按键的值。它的优点同样是使用较少的管脚,比如要使用16个按键时,只需要8个管脚。但他的缺点也非常明显,在编程时会变得非常辅助,增加不必要的困难。
矩阵按键的设计如图:
2。独立按键。独立按键就是简单的将所有按键的一端接地,另一端分别接到管脚上。简单易懂方便操作。
由于本设计使用到的管脚较少,所以直接使用独立按键。
2。2。6编程软件模块
方案1:采用汇编语言编程
汇编语言是一只低级语言,是一项十分接近硬件的计算机语言,学习他可以让你易CPU的角度进行编程,并了解底层运行机制。汇编语言目前有常见的两中,dos下的16位和win下的32位。学习汇编就得了解cpu,所以他的上手难度要比c++和java要高,。没有硬件基础的话就难以理解。
方案2:采用C语言编程
C语言则与上面的不同,C语言作为比较高级的语言能够用一种比较简单的方法编程。他支持跨平台编译,并有着低级处理的功能,一段c语言程序可以在不同电脑,单片机等等各种各样的作业平台使用。
C语言拥有丰富的运算符,灵活的语法表达,兼容各种软硬件的操作,新颖的工作方式等等优点。深入学习之后,可以用它来解决各种各样的实际问题。
其实在以上两种语言比较后,非常显然易见的,我会选择方案二。毕竟c语言在我大学的学习生活中占了很重要的一部分,我对他比较熟悉,而汇编语言在难度上高处许多,没必要自找不快。
2。2。6 最终方案
经过反复论证,最终确定了如下方案:
(1)采用STC89C52RC单片机作为主控制器。
(2)采用达林顿效应使音乐信号放大
(3)采用C语言编程
2。3 STC89C52RC单片机
STC公司51系列单片机的发展历程:51单片机经过多年的发展拥有了非常丰富的系列,Intel(英特尔)、ATMEL(艾德梅尔)、 Philips(飞利浦)、华邦、Dallas(拉达斯)、Siemens(西门子)还有STC(国产宏晶)单片机等众多公司都推出了自己的产品。在本次设计中我选择了STC89C52RC来实现想要的功能。
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K字节系统可编程Flash存储器。STC89C52使用了经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8kb Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 stc89c51单片机的声光电子琴设计(5):http://www.youerw.com/zidonghua/lunwen_94897.html