P1_4=1; //将P1.4口线置高,产生移位
//脉冲SHCLK
au=au<<1;
j++;
}
j=0;
au=0x01;
z++;
}
k=0;
z=0;
}
P1=(P1&0xf0)|i; //通过P1.0~P1.3产生4位
//行扫描信号ABCD
P1_5=1; //开595锁存
i++;
if(i==16) i=0;
}
4 PROTEUS仿真实现
本设计结合使用Keil μVision2和Proteus软件实现系统的软件设计和硬件仿真调试。
Proteus软件可以仿真包括51系列在内的多种常用单片机及其外围电路(如LCD、RAM、ROM、键盘、马达、LED等),是目前最好的模拟单片机外围器件的工具。仿真时只需在Proteus软件中画好单片机的外围控制及LED显示驱动电路,然后在单片机芯片的属性中设置好晶振频率,将用Keil C51编写的源程序生成的.HEX文件保存到芯片中,就可以仿真调试了[4,5]。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil μVision2中直接修改。通过Keil与Proteus的联合调试就可以得到满意的结果,避免了一开始就直接制作实物,从而缩短了系统的开发周期,降低了开发调试成本。
在Proteus软件中没有GSM模块TC35I,但可以利用Proteus提供的串口仿真功能来实现单片机与TC35I模块通信的仿真调试。具体电路如图4所示。单片机的串口(P3.0、P3.1脚)通过串行接口器件COMPIM连接TC35I模块(图中未画出TC35I模块)。首先在仿真主机上利用虚拟串口软件VSPDXP(Virtual Serial Port Driver XP)设置出2个相互连接的虚拟串口COM3和COM4,再启动 “串口调试助手”软件,将其中的串口设置为COM4,波特率选择为4 800 b/s,然后将Proteus仿真电路中的COMPIM器件的串口设置为COM3,波特率也选择为4 800 b/s。必须注意COM3和COM4中波特率的设置值与单片机软件中的波特率设置值要相同,在此都设定为4 800 b/s,最后运行Proteus仿真,此时就可以通过“串口调试助手”软件模拟TC35I输出的数据格式向单片机发出数据了。例如,正常情况下如果从“串口调试助手”发送16进制数据串“08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 0*F 60 59 7D 00 21”,仿真电路中的LED屏幕将显示“你好!”。而单片机发给TC35I模块的AT命令串将在“串口调试助手”的接收窗口里实时显示出来。如果不正确,则可以借助Proteus软件中的虚拟串口终端等虚拟仪器和图表进行代码级跟踪调试。
将仿真成功的电路稍加修改后,制作出电路实物,将程序固化到实物的单片机芯片中,得到的实物运行结果与Proteus的仿真结果完全一致。
基于移动数据的LED显示屏,使用移动通信网络实时更新LED显示屏的内容,避免了原有系统铺设线路或建造专用无线收发装置的麻烦,有效降低了系统成本,对远离办公场所、特别是室外LED显示屏幕的设计提供了一种新思路。同时,在开发此系统过程中,充分利用嵌入式系统软硬件设计仿真平台Proteus软件的强大功能,进行系统虚拟开发,成功后再进行实际制作,大大提高了开发效率,降低了开发成本,对单片机及嵌入式系统的开发具有实用意义。