AVR 系列单片机都带有异步串行接口,而我们现在学习的 ATmega64 更是有两个串口。我们知道单片机的电平一般都是 TTL 电平(关于 TTL 电平与 CMOS 电平等其他电平的区别,我们以后单独详解),而计算机的串口是 RS-232 电平,这两种电平不能互相匹配,所以如果将这两种电平互联,需要一个电平转换电路,本实例中使用常用的 MAX232 芯片,它实现 RS-232 电平和 TTL 电平的互换。
在 MAX232 的数据手册中,有这个芯片的典型连接电路,我们直接采用这种电路即可。关于 MAX232 的连接电路,其实非常简单,我们只要记住 4 电容(或 5 电容)就可以了。这里的 4 电容指的是电路中只需要连接 4 个电容就可以;至于 5 电容,多出来的那个电容是连接 VCC 和 GND 之间的电容,这个电容可以不接,但是从考虑电源的稳定性上来说,建议接上。至于电路中电容大小的选择可以参考数据手册,需要注意的是这里要用无极性电容(不区分正负极)。电容值一般有三种选择 0.1μF、1μF、10μF.电容值的大小会影响到端口的驱动能力,电容大,驱动能力强,电容小,驱动能力弱。通常使用 1μF 的电容就足够了。
RS-232 串行通信电路图如下所示:
