电路仿真软件详谈(27),基于电路仿真软件proteus的实时时钟仿真

电路仿真软件的使用越来越多,因此电路仿真软件的重要性不言而喻。对于电路仿真软件,小编在往期文章中做过诸多介绍。为增进大家对电路仿真软件的了解,本文将对电路仿真软件proteus予以讲解,主要内容为基于proteus的实时时钟仿真。如果你对本文即将探讨的内容存在一定兴趣,不妨继续往下阅读哦。

单片机技术应用于各行各业,是一种实用的智能型控制技术,单片机技术的发展极大地推动了电子、通信、计算机、机电一体化等行业的快速发展,成为当前教学和科研的热门技术。利用proteus可以实现单片机教学中很多面向端口、外围设备扩展控制型实验的仿真,提高教学效果,进一步缩短教学与工程实际的距离。

1、Proteus简介

ProteusISIS是英国Lacenterelec-tronics公司开发的电路分析与实物仿真软件,应用范围十分广泛,涉及PCB制版、Spice电路仿真、单片机仿真以及对ARM7/LPC2000的仿真。Proteus主要由ARESISIS两大模块构成,ARES主要用于印刷电路板(PCB)的设计及其电路仿真,ISIS主要用于原理图的设计并仿真。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、ARM系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。该软件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

下面以单片机实时时钟电路为例,介绍使用Proteus进行单片机实时时钟电路设计与仿真的过程。

2、硬件电路图的设计

该实时时钟电路的硬件主要由AT89C51单片机、时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。实时时钟电原理图如图1所示。

运行ProteusISIS后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的Component按钮,接着再点击窗口左侧的元器件选择区的PickDivices.按钮,弹出的PickDevices窗口,再在Category栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把DS1302、MAX7219、数码管、晶振以及多个电阻、电容也添加到器件列表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。所有导线画完后,添加上电源和接地符号,原理图的绘制就完成了,保存设计文件于C:\ProgramFile\LacenterElectronics\Proteus7Professional\clock文件夹,文件名为clock.DSN。

3、软件设计与实现

本实时时钟电路的软件的主要功能包括时钟芯片DS1302的设置和时间的读取,数码管显示驱动芯片MAX7219驱动时间显示等。软件采用汇编语言编写,在WAVE3.2集成调试软件中编辑完成后,以文件名DS1302.asm存盘并编译生成16进制目标文件DS1302.hex。同样保存到C:\ProgramFile\LacenterElectronics\Proteus7Professional\clock文件夹中。

4、系统的仿真分析

电路原理图在ISIS里设计完成,并将系统软件编译成.hex文件后,下面就可以进行实时时钟电路的虚拟仿真了。在ISIS的原理图中,右键单击AT89C51将其选中,然后单击左键打开AT89C51的EditComponent对话框,在ProgramFile选项中选择文件DS1302.hex,单击OK按钮完成仿真设置。点击ISIS下方仿真按钮的运行按钮,系统开始运行,实时显示当前时间。

以上便是此次小编带来的“电路仿真软件”相关内容,希望大家对本文介绍的内容具备一定的认知。

org 0000h sjmp main org 000bh ljmp t0int org 0030h main: mov sp,#60h mov tmod,#01h mov th0, #3ch ;5000微秒 mov tl0,#0b0h setb et0 ;允许t0中断 setb tr0 ;显示t0 setb ex0 ;允许外部中断0 setb ex1 ;允许外部中断1 setb ea ;开总中断 mov R0,#20 mov 26h,#59 mov 27h,#50 mov 28h,#23 re: call disp sjmp re disp: mov A ,26h mov B,#10 div AB ;取余 mov 20h,B ;秒个位 mov 21h,A ;秒十位 mov A,20h mov dptr,#tab movc A,@A+dptr setb p2.5 mov p1,A ;显示秒个位 call del ;延时 clr p2.5 mov A,21h mov dptr,#tab movc A,@A+dptr setb p2.4 mov p1,A ;显示秒十位 call del ;延时 clr p2.4 mov A ,27h mov B,#10 div AB ;取余 mov 22h,B ;分个位 mov 23h,A ;分十位 mov A,22h mov dptr,#tab movc A,@A+dptr setb p2.3 ;选数码管 mov p1,A ;显示分个位 call del ;延时 clr p2.3 mov A,23h mov dptr,#tab movc A,@A+dptr setb p2.2 ;选数码管 mov p1,A ;显示分十位 call del ;延时 clr p2.2 mov A ,28h mov B,#10 div AB ;取余 mov 24h,B ;时个位 mov 25h,A ;时十位 mov A,24h mov dptr,#tab movc A,@A+dptr setb p2.1 ;选数码管 mov p1,A ;显示时个位 call del ;延时 clr p2.1 mov A,25h mov dptr,#tab movc A,@A+dptr setb p2.0 ;选数码管 mov p1,A ;显示时十位 call del ;延时 clr p2.0 ret t0int: mov th0,#3ch mov tl0,#0b0h ;5000us djnz R0,rere mov R0,#20 ;1s inc 26h mov A,26h cjne A,#60,rere ;秒满60跳 mov 26h,#0 ;;清零 inc 27h mov A,27h cjne A,#60,rere ;分满六十跳 mov 27h,#0 ;清零 inc 28h mov A ,28h cjne A,#24,rere ;时满24跳 24小时制 mov 28h,#0 ;清零 rere: reti tab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h DEL:MOV R7,#0AH ;延时子程序 AA:DJNZ R7,AA ret end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值