收藏 分享(赏)

proteus的使用方法.doc

上传人:hskm5268 文档编号:7058359 上传时间:2019-05-04 格式:DOC 页数:18 大小:99.50KB
下载 相关 举报
proteus的使用方法.doc_第1页
第1页 / 共18页
proteus的使用方法.doc_第2页
第2页 / 共18页
proteus的使用方法.doc_第3页
第3页 / 共18页
proteus的使用方法.doc_第4页
第4页 / 共18页
proteus的使用方法.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、Proteus 软件使用方法Proteus 软件使用方法 一2008-11-18 20:47Proteus 软件是 Labcenter Electronics 公司的一款电路设计与仿真软件,它包括 ISIS、 ARES 等软件模块,ARES 模块主要用来完成 PCB 的设计,而 ISIS模块用来完成电路原理图的布图与仿真。Proteus 的软件仿真基于 VSM 技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、 PIC 系列等等,以及单片机外围电路,比如键盘、LED、LCD 等等。通过 Proteus 软件的使用我们能够轻易地获得一个功能齐全、实用

2、方便的单片机实验室。本文中由于我们主要使用 Proteus 软件在单片机方面的仿真功能,所以我们重点研究 ISIS 模块的用法,在下面的内容中,如不特别说明,我们所说的 Proteus 软件特指其 ISIS 模块。在进行下面的操作前,我先说明一点:我的 Proteus 版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。下面我们首先来熟悉一下 Proteus 的界面。Proteus 是一个标准的Windows 窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:如图

3、中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在 Keil 简介中所讲的工程项目相配套的 Proteus 工程为例来详细讲述 Proteus 的操作方法以及注意事项。首先点击启动界面区域中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示:在对话框中的“ Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的 AT89C51,就可以直接输入。输入以后我们

4、能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB 参数。这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。那么我们就不能够用该元器件进行仿真了,或者我们只能做它的 PCB 板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档

5、中时,我们可以点击“ OK”按钮来完成元器件的添加。添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上 Proteus 的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地

6、方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的 Keil 操作介绍中的简单例子)。因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在 Proteus 中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。下面我们来添加电源。先说明一点,Proteus 中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,我们在这里只说明

7、本文中可能会用得到的以及比较重要的工具。l:(Selection Mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。l:(Component Mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。l :(Wire Label Mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。l :(Text Script Mode)。文本模式,选中它能够为文档添加文本。l :(Buses Mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。l:(Terminals Mode)

8、。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。l:(Virtual Instruments Mode)。虚拟仪器模式,选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。好了,下面我们就来添加电源。首先点击 ,选择终端模式,然后在元器件浏览区中点击 POWER(电源)来选中电源,通过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。放置并连接好线路的电路图一部分如下图:连接好电路图以后我们还需要做一些修改。由上图我们可以看出,图中的 R1电阻值为10k ,这个电阻作为限流电阻显

9、然太大,将使发光二极管 D1亮度很低或者根本就不亮,影响我们的仿真结果。所以我们要进行修改。修改方法如下:首先我们双击电阻图标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“ Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为 ;如果在数字后面加上 K 或者 k,则表示 k 之意。这里我们填入270,表示270 。修改好各组件属性以后就要将程序(H

10、EX 文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。在这个对话框中我们点击“ Program files”框右侧的 ,来打开选择程序代码窗口,选中相应的 HEX 文件后返回,这时,按钮左侧的框中就填入了相应的 HEX 文件,我们点击对话框的“OK” 按钮,回到文档,程序文件就添加完毕了。装载好程序,我们就可以进行仿真了。首先来熟悉一下上面第一个图中区域的运行工具条。因为比较简单,我们只作一下介绍。工具条从左到右依次是“Play”、“Step”、“ Pause”、“Stop”按钮,即运行、步进、暂停、停止。下面我们点击“Play”按钮来仿真

11、运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可以点击“Stop”来停止运行。proteus 软件使用方法 二2008-11-18 20:50计算机仿真辅助单片机指令系统学习计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看到结果。1.数据传送指令:数据传送类指令主要包括:MOV、MOVX 、MOVC、PUSH、POP、XCH 等。下面我们通过一个简单的汇编程序来学习这些指令。例1. 汇编语言源文件如下图所示:

12、在 MedWin 中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。然后进行编译、汇编并将代码装入内存进行仿真。由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区 IData、数据区 XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平铺窗口。因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“ 指令跟踪(F7)”或“指令单步(F8)”按钮来单步执行。指令执行中的一个画面如下图所示:从图中我们能够清晰地观察到每一条指令执行的每一个

13、结果,从而加深我们对这些指令的理解与记忆。除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在 MedWin 中仿真,比如 PUSH、POP 、MOVC 等,相信你会得到一个很好的结果,而且 MedWin 肯定会提高你学习指令的兴趣。2.算术操作类指令算术操作类指令主要有:ADD、ADDC、DA A、SUB 、INC、DEC 、MUL 、DIV 等。算术操作类指令比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是 MUL、DIV 两条指令,在 51系列单片机中更是被束之高阁,很少使用。此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上

14、节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。例2. 两个压缩 BCD 码求和:将两个 BCD 码(每个占4位)分别放在一个字节的高4 位和低 4位即组成压缩 BCD 码。本例中有两个压缩 BCD码数字,都是四位数,第一个数的高两位放在20H,低两位放在21H 中;第二个高低位分别放在30H、31H 中。要求所得结果放在40H 、41H 中。汇编源程序如下图:在 MedWin 中编辑好源文件后,以“.asm”为后缀将其保存为汇编文件,然后进行编译、汇编并将代码装入内存进行仿真。你可以像上例那样步进观察其详细执

15、行过程,分析原因;当然也可以在“ljmp $”处设置断点,然后全速运行。需要注意程序中使用到了内部存储器,所以你需要将数据区“ IData”窗口调出来进行观察。运行的最后结果如下图所示:从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656 。3.逻辑运算指令、控制转移类指令逻辑运算指令,顾名思义,是用于逻辑运算的指令。主要包括:CLR、CPL、ANL、ORL、XRL 等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC 等。控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。它主要包括三类指令:

16、一是无条件转移指令,比如:AJMP、SJMP、LJMP 等;二是条件转移指令,比如:JZ、CJNE、DJNZ 等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI 等。鉴于单独针对逻辑运算指令进行的仿真十分简单(事实上与数据传送类指令相同),可以很容易、很方便地自己针对相应的指令设计程序来观察结果,进行学习。所以此处不再针对逻辑运算指令举例仿真。而控制转移类指令又不可能单独使用,往往与其他指令结合使用来组成相应的程序,所以也无法单独进行仿真。所以下面我们就将逻辑运算类指令与控制转移类指令相结合来编写仿真程序,通过一个实例同时来仿真这两类指令的应用。例3. 十六进制整数转化

17、为 BCD 码整数:4 位十六进制整数高低位依次放在 R3、 R4中,要求转换后的 BCD 整数按高低位顺序放在R5、R6、R7 中。程序源文件如下图:在 MedWin 中编辑好源文件以后,将其以“.asm”为后缀保存为汇编源文件,然后编译、汇编并将产生的代码装入内存进行仿真调试。仿真前需要注意首先输入 R3、R4设置十六进制初始值,具体设置方法如下。首先调出寄存器窗口,然后在需要修改的寄存器名称或者数值上双击,这时其内容将变为可修改,我们在其中填入需要设置的数值(字母大小写均可)即可,如下图所示:设置好初始值以后,你可以单步观察几步以便明白其原理,然后就可以设置一个断点全速运行了,最后就可以

18、看到所得到的结果,比如我们输入8FD6,将得到结果:R5=03,R6=68 ,R7=22。4.位操作指令位操作比较简单,我们也不再写实例进行仿真,如果你感兴趣,可以自己写一些针对相应指令的小程序来仿真之。这里我们主要说明一下仿真位操作指令与其他指令的不同及注意事项。位操作指令是对单片机内部存储器的位地址空间进行的相应操作,所以我们查看相应结果时应该打开相应窗口。单片机的位地址空间可以这样来打开:点击“查看 ”菜单下面的“数据区 Bit”子菜单。位地址空间窗口如下图所示:除此之外,在相应的位操作中如果我们需要查看各种位标志时,可以点击上图中下侧的“ 位”标签,将“字节”标签换过来进行查看。Pro

19、teus 软件使用方法 三2008-11-18 20:53Proteus 仿真辅助定时器/计数器的学习2008年MCS-51系列单片机内部有两个定时器/计数器 T0、T1,它们都具有两种工作模式(定时器和计数器)以及四种工作方式(方式0、1、2、3)。定时器/计数器 T0由特殊功能寄存器 TH0和 TL0构成,T1由特殊功能寄存器 TH1和 TL1构成。除此之外,与定时器/计数器有关的特殊功能寄存器还有工作方式控制寄存器 TMOD 和控制寄存器 TCON。关于它们的详细内容和具体应用请参阅相关参考文献,此处不做探讨。由于定时器/计数器 T0与 T1用法几乎完全相同,所以下面的例子中我们将全部使

20、用 T0。而且定时器/计数器方式0和方式3较少使用,因此我们也将主要仿真说明其方式1和2的用法,另外我们还会给出一种其计数器的用法。例1.定时器/计数器 T0工作于定时器模式方式1,在 P1.0端口产生周期为100ms 的方波。首先计算计数初值:周期为100ms,定时应为50ms(半个周期)。一个计算公式为:计数初值=2 16-tf/12其中 t 为定时时间(单位为 s),f 为单片机的时钟频率(单位为MHz)。所以,计数初值为2 16-0.0512M/12=15536=3CB0H。因此,TH0的初值应为3CH,TL0的初值应为 B0H。因此,此例的源代码如下图:在 MedWin 中将源文件编

21、辑完成以后,保存为汇编源文件并编译、汇编产生源代码(.HEX 文件)。下面我们在 Proteus 中设计电路,此例电路也比较简单,只需在AT89C51单片机的 P1.0口连上一个示波器来观察产生的相应波形就可以了。选择示波器时要注意首先在前面的文章“我的毕业论文(三):Proteus软件的基本用法”中第一个图:Proteus 界面里面的区域点击按钮 选择虚拟仪器模式,然后在区域中选择“OSCILLOSCOPE”(示波器)。完成的电路图如下图所示:构建好电路图以后,下面就可以为单片机添加程序代码(.HEX文件)了。双击单片机图标,添加上面的源文件所生成的程序代码,添加好以后,接着就可以进行下面的

22、仿真。点击运行按钮,系统就运行了起来,我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形效果如下图所示:如果你的 Proteus 版本是7.0以前的版本,那么你的示波器和波形效果可能与图中略有不同,但并不影响仿真效果;如果是最新版本,则应该完全相同。从图中我们能够看出,波形的周期为100ms,这与我们设定的目标相一致;而其幅值则近似为5V。例2.设计一个延时程序,延时500ms。为了能够清晰地看到延时效果,我们设计在 P1.0口连接一个 LED 发光二极管,使其使用该延时程序每500ms 闪烁一次。通常情况下,为了简便,人们会使用软件延时,即通过执行一段没有

23、意义的程序来达到延时的目的。但那样做会浪费系统资源,使得系统在延时过程中不能响应任何外部或内部事件。所以,人们对其做了改进,而通过定时器/计数器定时来进行延时。由于方式2定时时间过短(12MHz 下最大250s 左右),所以,此处我们仍然选用方式1。但方式1在12MHz 下的最大定时时间也只有60多ms,仍然不能满足延时要求。所以,延时程序需要软硬件协作。即我们可以这样去做,通过硬件 T0延时50ms,然后设置一个计数器,当计数器计到10时,我们延时的目标就达到了。源程序如下图:(计数器初值计算与上例相同)将上面的源文件保存为汇编文件,然后进行编译/汇编,并生产源代码装入内存在 MedWin

24、中仿真运行看延时效果(可以通过指令单步执行“lcall dly500”一句观察指令执行时间,则实际执行时间就是延时时间)。结果发现,实际执行中该延时程序比我们的要求多延时了87s,这是因为延时程序中还插入了其他指令(比如设置 T0模式等),所以我们的延时程序不是十分精确,实际应用中我们可以通过调整 T0初值来稍作调整,但此处对延时要求并不精确,所以我们就不再做调整了。下面我们可以在 Proteus 中构建电路来观察我们的延时效果。电路图十分简单,如下图所示:注意 LED 的阴阳极不要接反,图中的限流电阻在模拟时可以略去,但如果添加上的话,最好阻值不要设置的过大,以免 LED 发光太弱,影响观察

25、效果。设置好电路图以及各元器件的属性以后,我们就可以点击仿真按钮来观察效果了。可以看到,LED 按照大约0.5s 的周期开始闪烁。例3.定时器/计数器的计数功能。本例使用 T1对外部脉冲进行计数,每计数一次,与 P1口相连的8个 LED 发光二极管的亮灯个数和位置就按照它们的顺序所表示的 BCD 码(亮灯代表1,灭灯为0)做加法。比如开始为29(00101001),计数一次以后,对应的数字变为30(00110000)。这里我们用按键来模拟外部脉冲,每按一次,表示产生一个脉冲。显然,根据要求,我们可以使 T1工作于计数器方式2,而且我们可以设置其初值为 FF,这样,外部产生一个脉冲,T1检查到就

26、会发生中断,然后我们在中断子程序中按要求进行处理。其源程序如下图所示:将上面在 MedWin 中编辑好的源文件保存为汇编文件,然后进行编译/汇编,并产生相应的源代码(.HEX 文件)。注意因为Proteus 仿真电路的按键为理想按键,所以程序设计时并没有考虑按键的抖动,但在实际应用中应该注意,否则将可能实现不了预期目的。另外,本例为了仿真的方便,设置 T1计数器的初值为 FFH,实际应用中可以灵活地根据相关要求进行改动。然后我们根据题中要求设计电路。设计好的电路图如下图所示:设计电路图时要注意因为本电路图中需要较多的限流电阻(如果添加的话),所以在绘制电路图时考虑用排阻来进行代替。图中 RP1

27、就是一个8的排阻。Proteus 中提供了几种排阻,你可以使用关键词“respack”进行查找。设计好电路图,我们就可以将上面汇编源文件产生的源代码装入单片机,然后进行仿真。仿真时使用鼠标点击按键,你可以看到 LED 按照BCD 码Proteus 软件使用方法 四2008-11-18 20:59Proteus 仿真辅助中断功能的学习Proteus 软件使用方法 四2008-11-18 20:59Proteus 仿真辅助中断功能的学习MCS-51系列单片机具有5 个中断源,2个中断优先级,可以实现2级中断服务程序嵌套。5 个中断源分别为:两个外部输入中断源 INT0(P3.2)和INT1( P3

28、.3),中断请求标志分别为 IE0和 IE1; 2个内部定时器/ 计数器的溢出中断源 T0(计数时 P3.4输入)和 T1(计数时 P3.5输入),中断请求标志分别为TF0和 TF1;串口中断请求源,其中断请求标志为 RI 或 TI。中断请求标志位分布在特殊功能寄存器TCON(IE0 、IE1、TF0 、TF1 )和 SCON( RI、TI )中。与中断有关的特殊功能寄存器除它们以外还有中断允许寄存器 IE 和中断优先级寄存器IP。这些寄存器都能够进行位寻址。此处不再对它们进行详细的探讨。关于它们的详细情况和具体功能以及中断的其他知识请参阅相关参考文献,此处我们从略。事实上,关于中断我们在上一

29、篇文章中讨论定时器/计数器时已经对T0、T1的相关中断进行过较为详尽的讨论和举例。而关于串口中断,我们会在下节讲解串口时进行相应的讨论,所以本节我们只简单讨论一下外部中断 INT0和 INT1,并举例分析。例1. 外部中断 INT0和 INT1同时存在。和上篇文章中的例3一样,P1口连接8个 LED 发光二极管,两个按键分别接到外部中断 INT0和 INT1。正常情况下,8 个 LED 闪烁发光。当 INT0发生中断时,使 P1口的8个LED 做一个灯的左移右移两次;当 INT1发生中断时,使 P1口的8个 LED做两个灯的左移右移两次。此例的源程序如下图所示:源文件编辑结束以后,将源文件保存

30、为汇编文件,然后进行编译/汇编,并产生相应的源代码以便下面仿真使用。下面我们在 Proteus 中绘制电路,此例电路图和上篇文章中最后一例的电路图大体相同,只不过将接在 P3.5的按键改为接在 P3.2和 P3.3的 INT0和 INT1的中断请求输入端。绘制好的电路图如下图所示:电路设计好以后,我们就可以将上面生成的源代码装入单片机,然后进行Proteus 软件使用方法 七2008-11-18 21:09Proteus 仿真辅助数码管的学习数码管又称 LED 数码管,它是由7 段或8段 LED 构成的显示器件。有共阴极和共阳极两种。按其显示方式则可分为静态显示方式和动态显示方式两种。关于数码

31、管的其他知识请参阅相关参考文献,此处不作讨论。下面我们将主要讲述数码管显示的仿真。1.静态显示方式静态显示方式较为简单,编程十分容易,但占用 IO 口线较多。实际使用中不太多见。下面我们就通过一个简单的例子来予以说明。例1. 单片机的 P2口接一个共阳极数码管,利用该数码管显示从0到9,然后返回到 0的循环。该例子较为简单,源文件如下图:源文件编辑结束以后,将其保存为汇编文件,然后进行编译/ 汇编,并产生相应的源代码,准备用于仿真。下面我们编辑电路图。此例的电路图十分简单,只需将一个共阳极数码管连到单片机的 P2口即可。数码管使用关键词“7Seg”进行查找。可以看到有很多结果,注意区分共阳极“

32、Anode ”和共阴极“Cathode”即可。这里我们选用较为简单的“ 7SEG-COM-ANODE”数码管。最后得到的电路图如下图所示:绘制好电路图,我们就可以将前面所生成的源代码装入单片机,然后点击仿真按钮进行仿真。可以看到数码管显示的数字按照我们程序中设定的要求进行变化着,仿真中的一个画面如上图所示。2.动态显示方式动态显示方式是一种相对较为高级的显示方式,它编程较为复杂,但占用 IO 口线少,达到了节约硬件资源的目的,实际使用中较多利用。下面我们也利用一个实例来详细说明这种显示方式。例2. 数码管动态显示方式。单片机 P2口接一个二位数码管的8位段码线,P3 口的低二位接数码管的两位位

33、码线。程序使得二位数码管做0到99的循环显示。该例源文件如下图所示:源文件编辑结束以后,将其保存为汇编文件,然后进行编译/ 汇编,并产生相应的源代码,准备用于仿真。接下来我们绘制电路图。此例电路图比较简单,如下图所示,但有几点需要注意:(1 )单片机的 IO 口的驱动能力有限,所以此例我们选用了大功率晶体管驱动电路,即图中的两个 NPN 三极管,单片机通过控制它们的通断来达到控制位码的目的。(2)关于数码管,此例我们选用了2 位的共阳极数码管7SEG-MPX2-CA,这样可以方便我们连线和使用。而且由于我们的例子中没有用到小数点(DP),所以为了简便在图中我们没有连接 P2.7和 DP 引脚。

34、当然,如果你连接好这个引脚,仿真结果不会受到任何影响,因为在段码表中,P2.7 引脚一直输出的都是高电平,也就是说小数点一直处于熄灭状态。绘制好电路图,就可以点击仿真按钮进行仿真了。仿真中的一个效果如上图所示。3.事实上,在实际的应用中我们还可以选用数码管显示驱动译码芯片来达到控制数码管显示的目的。常用的这类芯片有 CD4511、MAX7219等。关于这些芯片的使用方法请参阅相关参考文献,此处我们仅以 MAX7219为例来简单介绍一下这类芯片的使用。例3. 单片机使用 MAX7219接8个数码管,初始时利用这些数码管从左到右显示7 到0 ,然后依次将最右侧的数字移到最左侧显示。鉴于 C51语言在此类程序编写中的明显优势,此例我们将使用 C51语言进行编写,源文件如下:在 Keil中编辑好源文件以后,进行编译、链接,并生成源代码(.HEX 文件)。注意生成.HEX 文件时要按照前面的文章中的相应介绍进行设置。然后我们来绘制电路图。本例的电路图较为简单,MAX7219与数码管连接的段码和位码在芯片上已经标识明确,直接相连即可;唯独需要注意的就是要按照前面程序中定义的那样,将 MAX7219的DN、CLK、LOAD 三引脚分别与单片机 AT89C51的 P1.0、P1.1、P1.2引脚相连。如下图所示,此处我们就不再作其他说明了。绘制好电路图以后,将我们刚才生成的源代码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报