89C51单片机设计一个彩灯控制系统,有4个控制开关,8盏LED灯

1.当闭合第1个开关时,8盏灯同时闪烁;
2.闭合第2个开关时,8盏灯从左到右依次被点亮,最后全亮;
3.闭合第3个开关时,8盏灯从右到左依次被点亮,最后全亮;
4.闭合第4个开关,8盏灯隔灯闪烁。(控制过程中的时间自己设定;每次只允许一个开关闭合)如果能有硬件设计最好

89C51有4个8bit端口,共32个IO,这个需求只需要4位输入和8位输出,用面包板就能搭出原型。
可以找网上现成的基于89C51的原理图改一下,比如控制LED的电路。
4个开关输入,可以用port1或者port2,带内部拉高,只要在闭合的时候拉底就可以。注意开关的瞬间信号容易出现毛刺信号,用多次检测做平均或者检测连续状态来消除。
8位输出,一般用于控制三极管,再通过三极管控制LED灯。选择接通电流与LED灯匹配的三极管。
再加上电源和编程烧录的电路,就差不多了。

四个开关有12种组合状态,比如开两个开关,或者三个开关。怎么处理

你这个,好像写的有点复杂了,,,,我相信你的开关是复位开关,只要一直轮询,那几个开关,然后,将开关按下的情况,单片机控制小灯高低电平变化就行了