MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。其引脚如图3.7所示,内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚DNG、16脚VCC(+5V)。
图3.7 MAX232引脚图
最后经过将各个电路的整合,得到整体电路图如图3.8:
4 系统软件设计
程序开发采用Keil C51开发环境软件程序是整个系统的控制核心部分,显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。本程序采用C51语言设计,共分为3个部分:主程序、汉字显示子程序、串口中断服务子程序。该课题的软件程序见附录二。
4.1 主程序设计
主程序流程图如图4.1所示。在主程序中首先对串口进行初始化,注意波特率应与串口调试助手一样设置为9600b/s,晶振设置为l1.0592MHz。设置初始状态的显示方式为单个显示,再判断按键key3(停止键),若按下去则停止否则判断外部中断0的标志位flag(外部中断0的流程图如4.2所示,当按键key1按下时,flag=0;当按键key2按下时,flag=1),若flag=0,则显示方式为单个显示,若flag=1,则显示方式为流动显示。
图4.1主程序流程图
图4.2 外部中断0流程图
主程序代码如下 :
void main()
{
TMOD=0X20; //定时器T1,工作方式2
TL1=0XFD;
TH1=0XFD; //波特率9600,SMOD=0,定时器T1的初值
SCON=0X50; //工作方式1,允许接收
PCON=0X00; //SOMD=0,波特率不加倍
TR1=1; //启动定时器T1
ES=1; //允许串行口中断
EA=1; //开总的中断
EX0=1; //外部中断0允许中断
IT0=0; //外部中断0电平触发
dange();
while(key3==1)
{
switch(flag)
{
case 0: zhuge();break;
case 1: liudong();break;
}
}
}
外部中断0代码如下:
void INT0_srv() interrupt 0
{
if(key1==0)
{ flag=0; }
else if(key2==0)
{ flag=1; }
}
4.2 汉字显示子程序
显示部分采用动态扫描方式,实现对显示的汉字信息进行传输控制及显示功能。单片机通过串口接收PC机传来的数据,暂时存放在缓冲区,经过分析处理后按一定的顺序从缓冲区读取显示。显示采用逐行扫描的方式,图4.3是显示程序流程图。 AT89C51单片机PC机串口的LED汉字显示系统设计(8):http://www.youerw.com/tongxin/lunwen_2917.html