利用C语言知识根据原有代码进行改进: 改变小灯输出的状态,如果按键一次,则显示一盏灯D0,如果按键两次,则显示灯D0,D1…,(按键次数最多为八,超过8则对8取余)
原有代码:
电路图
中断函数这样改:
keycnt++;
ledport = 0xff >>(8 - keycnt);
keycnt = keycnt % 8;
其电路图如图4所示,假设初始状态为000,所以当时钟电路产生一个脉冲周期时三进制计数器则进入001、010、100的循环,而在整个电路工作的过程中周期信号是一直和本电路连接的,不会出现循环外的011、101、110、111状态,所以不用担心出现不稳定状态,也就是说从接入电源开始电路就是一直处在循环中的。