3.2.9 段选反向驱动
两个反向驱动的本意在于,虽然Max7219驱动的是共阴极数码管,但是从datasheet上面可以看出来,段选的拉流不可以满足这种型号的数码管,位选的灌流也不能接受,所以这里配合ULN2003来使用。因为ULN2003的特点,高位接受灌流,低位为高阻,所以要使用反向驱动。这里,段选的反向驱动在程序里面的反向了,而对于位选,用于是该芯片自己进行的,所以程序控制不了,所以在Max7219位选的下游使用了一个与非门来当作反向器来使用。
3.3.10 上位机接口
采用MAX232芯片进行RS232-TTL电平转换,输出至串口,然后再通过USB转串口模块连接至上位机。
3.2.11 大尺寸数码管
这个前面说过了。
4硬件实现的步骤
4.1硬件实现的各个步骤
(1) 通过实验板来验证各个主要功能模块的正确实现。
这个就是在实验板接线,来分开的检测各个部分的正确性,当然有的部分还是没有办法验证的。
(2) 仿真器+面包板上面的插线实验
恩,仿真器很好使。就是上面的限流电阻给不小心被烧了,郁闷。
(3) 最小系统+面包板上面插线实验
使用仿真器的时候用的是电脑提供的+5V电压,可能和用自己的供电的不太一样,尤其是同时也在使用+12V电源的时候,电脑给出的+5V可能的比较低,这样一来会有些不必要的问题,而用最小系统则没有这些问题。
(4) 焊接万能板
这个很有趣也很关键。
(5) 仿真器+电路板的实现
用来验证电路板上的各个部分是否焊接成功。
(6) 最小系统+电路板的实现
恩这个就是最后的验证了。
4.2一个原则
由上可见,在实验过程中,总体上也采取单变量原则,这样方便有效地对于每一部分进行检验。另外,如果在检验焊接板上面的错误的话,要配合着面包板使用才行,也是保证单变量,这样对比出来面包上成功的时候和现在失败的时候只有哪个地方不同,那百分之九十就是这个地方了。
5软件实现(单片机上的软件)
5.1程序编写
模块化,使整个程序的每个部分具有较好的可移植性。
5.2程序测试
在Keil Uvision + Proteus联调环境下进行逻辑的测试,不过这个只是逻辑上面的测试,距离能成功还有很远。
5.3最终代码
最后的代码将在另见。
6电脑端(上位机)显示程序
电脑端使用C#编写程序,利用了.Net的SerialPort类对电脑端口检测和接受数据。这个将会另有介绍。
7 后续工作和几个问题
(1) 电源还需优化, 可以采用三稳压管电源。
(2) 电阻发热问题: 我们使用的3W的大功率电阻竟然不到1.5W的情况下就发热了,还没有搞懂。
(3) 我们的74HC00与非门在未加高电平的情况下就已经正常工作了,不清楚这是什么情况。
(4) 可以考虑增加抢答模式与小组积分,实现按着使用者的要求对于程序进行选择。
(5) 无线端抢答端电池的问题。因为目前的设计是电池如果没有取出的话,将一直对发射系统供电,这样会消耗电池,但采用一次按键先后接通电路,发射编码的方法,总是不稳定。
电脑抢答器网 抢答器设计与制作的专业网站 大学生课程设计的园地 |