张杰
(天津轻工职业技术学院,天津300000)
随着电子技术的迅速发展,电子产品已深入地渗透到我们的生活中,单片机在其中得到了广泛的应用,但单片机的内容比较抽象,相对于模拟电路、数字电路,单片机的开发和调试更为复杂,需要更多的调试设备,但这些设备价格不菲,英国的Labcenter公司推出了具有单片机系统仿真功能的Proteus软件,Proteus是模拟电路、数字电路、模/数混合电路的设计与仿真平台;更是单片机系统先进的设计与仿真平台。它真正实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的设计与仿真过程。
Proteus软件主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及电路原理的交互仿真,ARES主要用于印制电路板的设计。其中Proteus ISIS可以仿真51系列、AVR,PIC,ARM等常用的MCU,并提供周边设备的仿真,下面介绍一下ISIS的主要功能。
2.1 Proteus介绍
Proteus实现了单片机仿真和Spice电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS 232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51μVision 2等软件。
2.2 单片机数字时钟系统硬件的搭建
单片机、按键、74LS254芯片、LED数码管等是组合是单片机数字时钟的最基本的元件。在开发实际的单片机数字时钟系统时,"人机对话"部分主要靠这个系统来实现。在编写这部分程序时要进行频繁的测试从而更改一些参数使系统达到良好的工作状态,常见的问题有:显示界面的布局、菜单层次的设置、按键灵敏度和防抖的参数等。有了下面介绍的Proteus仿真,这些测试和一些经验值的调整就可以不需要进行频繁的硬件测试了,而只需要改动源程序中的一些函数调用。这个系统可以稍加改动轻松应用于其他各类系统的输入和输出部分,具有普遍意义。
数码管介绍
在数字系统中,经常需要将测量、时钟或数值运算结果等字符显示出来,便于人们监视数字系统的工作情况。可见,数字显示电路是数字设备中不可或缺的组成部分。
7段荧光数码管属于分段式半导体显示器件。每个数码管都由7个发光段组成(小数点不包括在内)。这7个发光段其实就是7个发光二极管,它的PN结是由一种特殊的半导体材料——磷砷化镓做成。当外加正向电压时,发光二极管可以将电能转换为光能,从而能够发出清莹悦目的光线,数码管的分类
共阴极数码管
7段荧光数码管有公共的地,即7个发光二极管的负极全部连接在了一起,只要给想点亮的二极管高电平就可以使其发光。这样做的好处是可以免去布线、相互间的干扰等很多麻烦。这种连接方式的数码管叫做共阴极数码管。
共阳极数码管
可以给出共同的正向电压,然后通过控制负极的电压来控制二极管的发光或者熄灭。要电器特性参数和芯片的驱动能力准许,完全可以通过控制负极的电压来控制二极管的发光或者熄灭。这种连接方式的数码管又叫做共阳极数码管。
对应前面介绍的两种数码管可以采用灌电流和拉电流两种连接方法,如果采用了灌电流连接,就要相对应地选择共阳极数码管;反之,如果采用了拉电流连接,就要相应选择共阴极数码管。实际使用中可以根据器件的特性参数做出合适的选择。
下面通过单片机数字时钟系统的开发来具体阐释Proteus在单片机开发系统中的应用。
仿真电路。数码管将从12-00-00开始显示时间,小时按键和分钟按键可用于调整小时与分钟,在调整过程中,时钟以新的时间为起点继续显示,数码管采用动态扫描显示的方式。
仿真程序
时分秒程序部分
void Increase_Hour()
{
if(++h>23)h=0;
DSY_BUFFER[0]=DIS_CODE[h/10];
DSY_BUFFER[1]=DIS_CODE[h%10];
}
void Increase_Minute()
{
if(++m>60)
{m=0;Increase_Hour();}
DSY_BUFFER[3]=DIS_CODE[m/10];
DSY_BUFFER[4]=DIS_CODE[m%10];
}
void Increase_Second()
{
if(++s>59)
{s=0;Increase_Minute();}
DSY_BUFFER[6]=DIS_CODE[s/10];
DSY_BUFFER[7]=DIS_CODE[s%10];
}
程序初始化部分
P0=P3=0xff;
TMOD=0X11;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TH1=0xDC;
TL1=0;
TCON=0x01;
EA=1;ET0=1;
ET1=1;
仿真结果。仿真电路及仿真结果如图1所示。
单片机技术是现代电子工业中不可缺少的一项技术,掌握单片机技术是产品开发的重要条件,Proteus在单片机应用产品研发中有着非常重要的作用。是产品研发的高效、经济、可靠的单片机系统设计与仿真平台。基于Proteus的单片机虚拟开发环境有利于提高产品的开发效率;利用仿真系统,不但可以节约开发时间和开发成本,而且还具有很大的灵活性和可扩展性,相信随着越来越多的人对Proteus的了解和使用,它会对我们的学习、科研和工作带来越来越多的帮助。
[1]彭伟.单片机C语言程序设计实训100例:基于8051+Proteus仿真[J].电子工业出版社.
[2]张靖武,周灵彬.单片机系统的PROTEUS设计与仿真[J].电子工业.
[3]周润景.基于PROTEUS的电路及单片机系统设计与仿真[J].北京航空航天大学出版社.
[4]张迎新.单片机初级教程:单片机基础[J].北京航空航天大学出版社.
[5]单片机典型模块设计实例导航(第2版)求是科技[J].人民邮电出版社.