论文部分内容阅读
摘 要:在电路实时仿真、调试、测试的实验中,运用Proteus对电路进行仿真性分析。该文介绍了运用Proteus的ISIS软件进行基本电子线路的仿真分析方法,同时通过比较分析了Proteus在电子线路仿真实验中具有的优势。
关键词:Proteus 电路仿真实验 单片机
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2014)05(b)-0044-03
在电子线路的设计和学习中,EDA设计和仿真是一个十分重要的环节,利用虚拟的实验平台,不仅能够直观而准确地对电路进行仿真设计,而且更易于被学习者接受和理解,同时减少实验和制作成本。Proteus以其独特的功能优势各高校电子相关专业的电路仿真和设计中得到广泛的应用。
该文以Proteus为仿真平台,详细介绍利用其直观而强大的电路设计与分析工具实现对电子线路的实验仿真。
1 Proteus的功能及设计方法
Proteus是一个集成化的电路虚拟仿真软件,其电路仿真功能强大,且独特的单片机仿真功能是Multisim及其他任何仿真软件都不具备的,同时PCB电路制版功能可以和Protel相媲美[1]。它包含ISIS和ARES应用软件,具体功能分布如图1所示。ISIS应用软件是智能原理图输入系统,系统设计与仿真的基本平台,可以仿真、分析各种模拟器件和基础电路;ARES是高级PCB布线编辑软件[2]。在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计,能真正实现从概念到产品的完整设计,该文主要介绍利用ISIS应用软件实现四路彩灯的仿真测试与分析。
2 四路彩灯的纯硬件分析设计与仿真
四路彩灯是数字电路设计中的一个非常有趣的课题,利用纯硬件电路来实现四个彩灯的控制,使得彩灯按设计要求亮或者灭。虽然利用单片机在Proteus环境下能够非常简单的实现此课题,但在数字电路的学习中,此纯硬件电路的设计能够很好地帮助学习者实现对数字逻辑关系的深层理解,同时Proteus直观方便的界面能使枯燥的数字逻辑关系在教学的课堂上显得丰富多彩,虚拟的仿真能使学习者有身临其境的实践效果。
2.1 设计要求
设计一个彩灯控制电路,利用纯硬件电路使得4个彩灯实现如下三个过程:
(1)4个灯依次点亮,每灯亮1 s,共4 s;
(2)4个灯依次熄灭,先亮的灯后灭,共4 s;
(3)4个灯同时亮1下灭1下,闪4下,共4 s。
2.2 电路分析设计
此课题的设计是在一定数字电路学习基础上进行的,4个彩灯的实现可以用四个发光二极管表示,要实现彩灯在12 s内的三个循环过程,其核心是四位双向通用移位寄存器74LS194。4个彩灯应连接在74LS194的Q0~Q3上,DSR稳定接高电平,DSL稳定接低电平,P0~P3接周期为1秒的方波信号。接下来需要考虑时钟和方式控制的信号如何实现。
由课题的设计要求可知,彩灯闪烁的周期是12 s,前8 s实现依次点亮和依次熄灭(先亮后灭)的功能,每个彩灯的时钟信号频率为1 Hz;后4 s实现同时闪烁4次的功能,故后4 s的时钟频率应为前8 s的2倍,即2 Hz。理论上可以用555定时器产生2 Hz的方波信号,再用D触发器分频产生1 Hz的方波信号,这样就可以实现所需的时钟信号;除此之外可以采用晶振、CD4060和合适的门电路来实现1 Hz的时钟信号。
彩灯三个状态的循环可以由S1S0按01、10、11顺序循环来实现,为了帮助学习者更好理解时序逻辑电路,可以使用D触发器设计一个同步三进制计数器,时钟周期为4 s,实现对S1S0的循环控制。
由以上设计分析后,在Proteus中绘制好电路原理图如图2所示,其中时钟产生电路直接用脉冲信号源代替。
2.3 电路仿真验证
单击Proteus ISIS界面中的“Play”开关即可启动电路仿真。此时可以非常清楚地看到电路中各节点的电平高低情况,同时四只彩灯也会依次按要求亮灭。如果不能满足设计要求,则可以根据彩灯的亮暗显示和各节点的电平情况较轻松地找出问题所在,不仅能够解决设计问题,而且能很好地帮助学习者理解电路及各部分功能。
Proteus还提供了很多自带的虚拟测量工具,比如此例中可以利用示波器来实时观测电路中重要节点的波形。如图3给出的是加在4个彩灯上的信号波形。由图中可以看出,横轴每小格表示的时间长度是0.5 s,从图示的0时刻开始D1~D4同时亮灭,闪烁一次的周期是1 s;随后D1亮1 s后D2亮,依次直到D4亮1 s;下一个动作是D4到D1依次熄灭,间隔时间是1 s,满足课题的设计要求。
3 四路彩灯的单片机设计与仿真
目前,单片机的应用越来越广泛,在电路系统的学习中,如果光靠书本进行理论学习,不仅空洞乏味,而且效果很不理想;如果都利用实物进行试验设计,不仅成本较高,而且费时费力。所以,Proteus软件为学习者和设计者提供了一个很好的虚拟实验平台,基于单片机的电子系统仿真是Proteus的特色,它完全支持MCS-51及其派生系列单片机的设计系统,另外也能仿真基于AVR和PIC系列的单片机系统[2]。仍然以四路彩灯的课题为例来看看Proteus在单片机的学习和应用中的优势。
3.1 电路的设计
运行Proteus ISIS后在编辑窗口绘制电路原理图,此设计中的电路非常简单,从元件库中调出AT89C51单片机放入编辑窗口的合适位置,在单片机的18引脚和19引脚上接入由C1、C2和晶振X1构成的时钟电路,在9号引脚上接入由R1、C3构成的上电复位电路。然后在P10~P13上接D1~D4 4个发光二极管,再在后面串上限流电阻接地就行了。完成后的电路图如图4所示。 3.2 软件的编制
程序的编辑在Keil软件中实现,这里使用KeilC μVision4开发环境,首先打开软件,单击Project/New uVision Project新建一个工程,在保存时会弹出一个“选择单片机型号”的对话框,这里选用Atmel的89C51。然后设置输出需要生成“HEX”文件。现在可以通过File/New来编写程序了,注意程序若用C语言编写,则保存时文件名后缀需用“.c”;程序若用汇编语言编写,则保存时文件名后缀需用“.asm”。
要实现4个灯依次点亮,每灯亮1 s,然后4个灯依次熄灭,先亮的灯后灭,最后4个灯同时亮1下灭1下,共闪4下。三个过程如此循环。四路彩灯的源程序如下:
void main()
{
TMOD=0x01 ; //设置定时器0为工作方式1
TH0=(65536-45872)/256 ; //写入初值,定时50ms
TL0=(65536-45872)%256 ;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1 ; //启动定时器0
while(1) //程序停止在这里等待中断发生
{
if(timer1s_flag>=10) //设置数组中每个字符的显示时间是0.5s
{
timer1s_flag = 0;
P1 = ~col_s[count]; //设置彩灯亮灭顺序,按col_s[]数组内依次显示
count++;
count %= 26;
}
}
}
/*************/
// 定时器0中断服务程序.
/************/
void timer0() interrupt 1 using 2
{
TH0=(65536-45872)/256 ; //重装初值
TL0=(65536-45872)%256 ;
timer1s_flag++;
}
运行Project/Built target对程序进行编译和修改,直到没有错误出现,此时在保存路径中会得到一个“HEX”的目标代码文件。
3.3 仿真结果
在已绘制好电路图的Proteus ISIS界面中,双击AT89C51元器件,在出现的窗口中“Program File”栏里将前面生成的“HEX”文件添加进来,然后就可以对电路进行仿真了。图5是仿真后的部分结果,由于与纯硬件电路相比,单片机电路中发光二极管公共端接高电平,故此波形在实际基础上作了反向处理。利用Proteus与Keil的联调,可以很好地实现单片机电路的学习仿真,并且仿真结果与工程实践十分接近。
4 结语
该文结合同一实例详解介绍了Proteus软件在普通电路仿真和单片机学习仿真中的功能。从中可以看出,Proteus功能强大,使用方便,可以作为高等学校电子电路实验和单片机实验的模拟仿真工具,多门相关课程的学习仿真只需要这一种软件即可,避免学生对专业软件学习多且不深的现状,可以提高学生的学习兴趣,同时还克服了实验箱教学中固定硬件资源导致实验内容固定的局限性。而且Proteus还可以为开发者提供很好的仿真平台,在具体工程实践中,降低开发成本,缩短开发周期。
参考文献
[1] 朱清慧,张凤蕊.Proteus教程电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.
[2] 彭利军,郝海峰.基于Proteus的单片机系统的虚拟仿真[J].电子与封装,2006,6(7):36-38.
关键词:Proteus 电路仿真实验 单片机
中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2014)05(b)-0044-03
在电子线路的设计和学习中,EDA设计和仿真是一个十分重要的环节,利用虚拟的实验平台,不仅能够直观而准确地对电路进行仿真设计,而且更易于被学习者接受和理解,同时减少实验和制作成本。Proteus以其独特的功能优势各高校电子相关专业的电路仿真和设计中得到广泛的应用。
该文以Proteus为仿真平台,详细介绍利用其直观而强大的电路设计与分析工具实现对电子线路的实验仿真。
1 Proteus的功能及设计方法
Proteus是一个集成化的电路虚拟仿真软件,其电路仿真功能强大,且独特的单片机仿真功能是Multisim及其他任何仿真软件都不具备的,同时PCB电路制版功能可以和Protel相媲美[1]。它包含ISIS和ARES应用软件,具体功能分布如图1所示。ISIS应用软件是智能原理图输入系统,系统设计与仿真的基本平台,可以仿真、分析各种模拟器件和基础电路;ARES是高级PCB布线编辑软件[2]。在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计,能真正实现从概念到产品的完整设计,该文主要介绍利用ISIS应用软件实现四路彩灯的仿真测试与分析。
2 四路彩灯的纯硬件分析设计与仿真
四路彩灯是数字电路设计中的一个非常有趣的课题,利用纯硬件电路来实现四个彩灯的控制,使得彩灯按设计要求亮或者灭。虽然利用单片机在Proteus环境下能够非常简单的实现此课题,但在数字电路的学习中,此纯硬件电路的设计能够很好地帮助学习者实现对数字逻辑关系的深层理解,同时Proteus直观方便的界面能使枯燥的数字逻辑关系在教学的课堂上显得丰富多彩,虚拟的仿真能使学习者有身临其境的实践效果。
2.1 设计要求
设计一个彩灯控制电路,利用纯硬件电路使得4个彩灯实现如下三个过程:
(1)4个灯依次点亮,每灯亮1 s,共4 s;
(2)4个灯依次熄灭,先亮的灯后灭,共4 s;
(3)4个灯同时亮1下灭1下,闪4下,共4 s。
2.2 电路分析设计
此课题的设计是在一定数字电路学习基础上进行的,4个彩灯的实现可以用四个发光二极管表示,要实现彩灯在12 s内的三个循环过程,其核心是四位双向通用移位寄存器74LS194。4个彩灯应连接在74LS194的Q0~Q3上,DSR稳定接高电平,DSL稳定接低电平,P0~P3接周期为1秒的方波信号。接下来需要考虑时钟和方式控制的信号如何实现。
由课题的设计要求可知,彩灯闪烁的周期是12 s,前8 s实现依次点亮和依次熄灭(先亮后灭)的功能,每个彩灯的时钟信号频率为1 Hz;后4 s实现同时闪烁4次的功能,故后4 s的时钟频率应为前8 s的2倍,即2 Hz。理论上可以用555定时器产生2 Hz的方波信号,再用D触发器分频产生1 Hz的方波信号,这样就可以实现所需的时钟信号;除此之外可以采用晶振、CD4060和合适的门电路来实现1 Hz的时钟信号。
彩灯三个状态的循环可以由S1S0按01、10、11顺序循环来实现,为了帮助学习者更好理解时序逻辑电路,可以使用D触发器设计一个同步三进制计数器,时钟周期为4 s,实现对S1S0的循环控制。
由以上设计分析后,在Proteus中绘制好电路原理图如图2所示,其中时钟产生电路直接用脉冲信号源代替。
2.3 电路仿真验证
单击Proteus ISIS界面中的“Play”开关即可启动电路仿真。此时可以非常清楚地看到电路中各节点的电平高低情况,同时四只彩灯也会依次按要求亮灭。如果不能满足设计要求,则可以根据彩灯的亮暗显示和各节点的电平情况较轻松地找出问题所在,不仅能够解决设计问题,而且能很好地帮助学习者理解电路及各部分功能。
Proteus还提供了很多自带的虚拟测量工具,比如此例中可以利用示波器来实时观测电路中重要节点的波形。如图3给出的是加在4个彩灯上的信号波形。由图中可以看出,横轴每小格表示的时间长度是0.5 s,从图示的0时刻开始D1~D4同时亮灭,闪烁一次的周期是1 s;随后D1亮1 s后D2亮,依次直到D4亮1 s;下一个动作是D4到D1依次熄灭,间隔时间是1 s,满足课题的设计要求。
3 四路彩灯的单片机设计与仿真
目前,单片机的应用越来越广泛,在电路系统的学习中,如果光靠书本进行理论学习,不仅空洞乏味,而且效果很不理想;如果都利用实物进行试验设计,不仅成本较高,而且费时费力。所以,Proteus软件为学习者和设计者提供了一个很好的虚拟实验平台,基于单片机的电子系统仿真是Proteus的特色,它完全支持MCS-51及其派生系列单片机的设计系统,另外也能仿真基于AVR和PIC系列的单片机系统[2]。仍然以四路彩灯的课题为例来看看Proteus在单片机的学习和应用中的优势。
3.1 电路的设计
运行Proteus ISIS后在编辑窗口绘制电路原理图,此设计中的电路非常简单,从元件库中调出AT89C51单片机放入编辑窗口的合适位置,在单片机的18引脚和19引脚上接入由C1、C2和晶振X1构成的时钟电路,在9号引脚上接入由R1、C3构成的上电复位电路。然后在P10~P13上接D1~D4 4个发光二极管,再在后面串上限流电阻接地就行了。完成后的电路图如图4所示。 3.2 软件的编制
程序的编辑在Keil软件中实现,这里使用KeilC μVision4开发环境,首先打开软件,单击Project/New uVision Project新建一个工程,在保存时会弹出一个“选择单片机型号”的对话框,这里选用Atmel的89C51。然后设置输出需要生成“HEX”文件。现在可以通过File/New来编写程序了,注意程序若用C语言编写,则保存时文件名后缀需用“.c”;程序若用汇编语言编写,则保存时文件名后缀需用“.asm”。
要实现4个灯依次点亮,每灯亮1 s,然后4个灯依次熄灭,先亮的灯后灭,最后4个灯同时亮1下灭1下,共闪4下。三个过程如此循环。四路彩灯的源程序如下:
void main()
{
TMOD=0x01 ; //设置定时器0为工作方式1
TH0=(65536-45872)/256 ; //写入初值,定时50ms
TL0=(65536-45872)%256 ;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1 ; //启动定时器0
while(1) //程序停止在这里等待中断发生
{
if(timer1s_flag>=10) //设置数组中每个字符的显示时间是0.5s
{
timer1s_flag = 0;
P1 = ~col_s[count]; //设置彩灯亮灭顺序,按col_s[]数组内依次显示
count++;
count %= 26;
}
}
}
/*************/
// 定时器0中断服务程序.
/************/
void timer0() interrupt 1 using 2
{
TH0=(65536-45872)/256 ; //重装初值
TL0=(65536-45872)%256 ;
timer1s_flag++;
}
运行Project/Built target对程序进行编译和修改,直到没有错误出现,此时在保存路径中会得到一个“HEX”的目标代码文件。
3.3 仿真结果
在已绘制好电路图的Proteus ISIS界面中,双击AT89C51元器件,在出现的窗口中“Program File”栏里将前面生成的“HEX”文件添加进来,然后就可以对电路进行仿真了。图5是仿真后的部分结果,由于与纯硬件电路相比,单片机电路中发光二极管公共端接高电平,故此波形在实际基础上作了反向处理。利用Proteus与Keil的联调,可以很好地实现单片机电路的学习仿真,并且仿真结果与工程实践十分接近。
4 结语
该文结合同一实例详解介绍了Proteus软件在普通电路仿真和单片机学习仿真中的功能。从中可以看出,Proteus功能强大,使用方便,可以作为高等学校电子电路实验和单片机实验的模拟仿真工具,多门相关课程的学习仿真只需要这一种软件即可,避免学生对专业软件学习多且不深的现状,可以提高学生的学习兴趣,同时还克服了实验箱教学中固定硬件资源导致实验内容固定的局限性。而且Proteus还可以为开发者提供很好的仿真平台,在具体工程实践中,降低开发成本,缩短开发周期。
参考文献
[1] 朱清慧,张凤蕊.Proteus教程电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.
[2] 彭利军,郝海峰.基于Proteus的单片机系统的虚拟仿真[J].电子与封装,2006,6(7):36-38.