0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机proteus电路设计仿真实验

CHANBAEK 来源:郎哥编程课堂 作者:郎宏林 2023-11-01 09:22 次阅读

EDA仿真工具proteus

proteus是由英国Labcenter Electronics公司研发的EDA仿真工具软件,EDA主要用于自动化控制系统电路设计和仿真。我们使用proteus主要完成两部分工作:一部分工作用于设计单片机应用电路,包括单片机与外围芯片电子器件的布局和连线;一部分工作用于电路仿真,在仿真单片机内运行keil开发工具编写的嵌入式程序,验证电路设计和嵌入式程序运行结果,降低学习嵌入式开发硬件操作的依赖程度。

proteus支持ARM、51等单片机仿真,51单片机主要支持ATMEL公司研制的51系列单片机,但不影响使用其它51系列单片机编写的嵌入式程序,因为51系列单片机的指令架构都是相同的。proteus仿真的单片机可以运行keil、matlab、IAR等软件开发的嵌入式程序,并可以进行源代码级调试。

图片

proteus正版软件费用比较高,可以在proteus官网下载演示版,演示版是免费的且没有时间限制。但演示版只能在现有的示例上运行自己编写的程序,不能仿真调试,不能保存设计文件,若演示版不能满足要求,可以通过搜索引擎查询其它安装方式。

图片

点亮二极管实验任务

实验目的

设计51单片机最小系统电路,包括单片机晶振电路、复位电路和发光二级管控制电路,加载前面实验用keil编写的单片机嵌入程序,验证程序的运行结果,实验用单片机型号为AT89C52。

1.1.2.2.实验步骤

实验步骤如下:① 认识晶振、电容电阻、发光二极管元器件;② 了解晶振电路、复位电路、发光二极管控制电路;③ 使用proteus设计电路模型;④ 加载运行keil编写的单片机程序。

图片

实验用相关电子元器件

晶振

晶振(Crystal)——单片机的心脏,为单片机提供时钟脉冲,单片机所有操作都在时钟脉冲下执行。

图片

时钟脉冲除时间外,一般要注意上升沿、下降沿、高电平、低电平,上图有8个时序脉冲,开始是低电平,过一段时间后出现一个上升沿,并跃变到高电平,高电平持续一段时间后,出现下降沿,并跃变到低电平。

时钟周期是晶振工作频率的倒数,例如12M的晶振,它的时钟周期就是1/12 μs,若采用了1MHZ的时钟频率,则时钟周期为1μs;若采用4MHZ的时钟频率,则时钟周期为250ns。

下图是晶振电子元器件的实物图和电路符号。

image.png

电容

电容(capacitance)——两个相互靠近的导体,中间夹一层不导电的绝缘介质,就构成了电容器,电容器可以储存电荷,在交变电路内会交替充放电,因此电容可以通交流,隔直流,电容可以与晶振构成时钟脉冲电路,与电阻构成单片机复位电路,另外滤波、谐振、整流等电路都要用到电容。

电容的容量单位为:法拉(F),其它单位有:毫法(mF)、微法(uf)、纳法(nF)、皮法(pf),单位的换算进率是1000。

下图是电容电子元器件的实物图和电路符号。

image.png

电阻

电阻(resistance)——又称为电阻器,该器件在电路中阻碍电流的流动,是电路内主要的负载器件。电阻的单位是欧姆,简称欧,用希腊字母“Ω”表示。常用的电阻单位还有千欧姆(KΩ),兆欧姆(MΩ)。

换算关系:1KΩ=1000Ω,1MΩ=1000KΩ

在电路图中一般将电阻值中的Ω省去,凡阻值在千欧以下的电阻,直接用数字表示,阻值在千欧以上的,用K表示;兆欧以上的用M表示。

下图是电阻电子元器件的实物图和电路符号。

image.png

发光二极管

发光二级管(LED)——是一种光电子器件,该器件通电后,电能转换为光能。

下图是发光二极管电子元器件的实物图和电路符号。

image.png

实验用相关电路

晶振电路

晶振电路构成时钟脉冲振荡电路,为单片机提供时钟脉冲,下图为AT89C52单片机的外部晶振电路。

图片

晶振电路由晶振和两个相同容量的电容构成,这两个电容一般称为匹配电容或负载电容,并联到晶振两端,为晶体振荡提供电流回路,若没有这两个电容,晶振的振荡会因为没有电流回路而停振,这两个电容的容量都很小,选择几十皮法即可,两个电容的另一端都需要接地。

AT89C52单片机的XTAL1和XTAL2是外接时钟引脚,XTAL1为片内振荡电路的输入端,XTAL2为片内振荡电路的输出端,这两个引脚外接晶振和电容,晶振一般取值为12MHZ,电容一般取值为10P~30P。

复位电路

复位电路让单片机恢复到初始状态,让单片机的程序从头开始执行。AT89C52单片机的RST引脚为复位引脚,该引脚连续输入两个机器周期以上高电平时有效,机器周期是单片机完成一个基本操作所需要的时间,一个机器周期大约为12个时钟周期。下图为AT89C52的复位电路。

图片

复位电路由一个极性电容和一个电阻串联构成,电容的正极接5V电源,负极接1K的电阻,电阻的一端接地,RST引脚接电容的负极。该电路为上电复位,当单片机在通电瞬间,确保复位端为高电位并持续大约2个机器周期。当单片机加电时,复位电路通过电容给RST端加一个高电平,此高电平信号随着对电容的充电而逐渐降低,因此要保持电容充电时间足够长来完成复位操作。

发光二极管控制电路

发光二极管控制电路用于控制二极管的发光状态,下图为发光二级管控制电路。

图片

电路图的D1为发光二极管,一端接单片机P1第0位,一端接200欧姆的电阻,电阻的一端接5V电源,该电阻对电路进行限流,因为发光二级管允许流过的电流较小,所以需要串联一个几百欧姆的电阻。

在当前电路下,单片机加电后,发光二级管并不会点亮,因为单片机I/O口(包括P1口)所有位引脚都输出高电平,该电路无电流流通。前面我们使用keil编写了一个嵌入程序,该嵌入程序将P1口第0位改变为低电平,在这种情况下,该电路将有电流通过,发光二级管被点亮。

实验过程

新建电路设计模型

proteus安装完成后程序名称为“ISISX Professional”,其中‘X’是版本号。启动proteus,启动后的proteus工作窗口如下图所示。

图片

展开【File】菜单,选择【New Design…】命令,或按下Ctrl+O快捷键,在弹出的“Create New Design”对话框中,选择“DEFAULT”模板,单击【OK】按钮。如下图所示。

图片

展开【File】菜单,选择【Save Design】命令,或按下Ctrl+S快捷键,在弹出的“Save ISIS Design File”对话框,输入文件名称,单击“保存”按钮保存电路模型。

图片

1.1.5.2.添加单片机到电路模型

proteus提供了仿真电子元器件库,后面统称为元件库,单击下图所示的“P”按钮可以打开元件库窗口。

图片

元件库窗口如下图。

图片

“keywords”输入域可以输入要查找的元器件英文名称的关键词、或者元器件的型号。proteus会将与关键词或型号相匹配的项列在“Results”列表窗口,在列表窗口选择需要添加的元器件项,单击“OK”按钮即可将选择的元器件添加到当前电路模型的存储库,以备使用。

例如在“keywords”输入域输入要查找的单片机型号“AT89”,proteus会在列表窗口列出与关键词“AT89”相关的元器件,在列表窗口选择“AT89C52”单片机,proteus会在“Preview”窗口预览“AT89C52”单片机的电路模型符号。单片机型号确定后,单击“OK”按钮将选择的单片机添加到电路模型元器件库。

图片

在电路模型元器件库选择“AT89C52”,在电路模型设计窗口合适位置单击鼠标左键,放置到单片机,并可以拖动单片机到电路模型的合适位置,位置确定后双击鼠标左键,将单片机添加到电路模型。

图片

为单片机添加晶振电路

前面说过晶振电路需要晶振、电容、电源元器件,打开元件库,分别使用关键词“crystal”和“cap”搜索晶振和电容元器件,添加晶振、电容到电路模型元器件库。

图片

图片

图片

晶振电路还需要5V的电源,用鼠标单击proteus窗口左侧工具条的“Terminals Mode”模式,该模式包含了电源(POWER)、接地(GROUND)等电路器件。如下图所示。

图片

图片

从“Terminals Mode”模式切换到电路模型元器件库,用鼠标单击proteus窗口左侧工具条的“Component Mode”模式即可完成切换。

图片

从电路模型元器件库添加两个电容、一个晶振、一个接地点到电路模型,如下图所示。

图片

为方便元器件连接,可以对元器件进行旋转。例如旋转名称为X1的晶振器件:用鼠标选中X1元器件,单击鼠标右键,在弹出的菜单中选择“Rotate Anti-clockwise”命令,X1元器件会在当前状态下逆时针旋转90度。

图片

添加的电子元器件默认显示元器件多个参数,如元器件名称、元器件值的大小、元器件文字说明等。设计者可以自定义是否显示和修改这些参数。例如修改名称为C1的电容元器件,用鼠标选中C1元器件,双击该C1元器件,proteus会弹出C1元器件参数修改对话框,如下图所示。

图片

在输入域“Component Reference”可以修改元器件的名称,在输入域“Capacitance”可以修改C1电容的容量,在这里修改为22pf,若不需要在电路模型显示C1电容的名称和容量,可以选上Hidden检查框。

按照上述步骤,分别修改电容器件C1和C2的容量为22pf,修改X1晶振的振荡频率为12MHZ。修改后电路模型如下图所示。

图片

我们发现电路模型内电子元器件的文本说明没有隐藏,若需要隐藏文本说明,展开【Template】菜单,选择“Set Design Defaults……”命令,在弹出的对话框(如下图所示)去掉“Show Hidden text”检查。

图片

元器件参数配置完成后的电路模型如下图所示。

图片

下一步的工作是将单片机、电容、晶振、电源通过导线连接在一起,连接方式可以参照前面的晶振电路图。连接方法是将鼠标移动到元器件的一端或电路的节点,当鼠标变为绿色的铅笔时,按下鼠标左键,同时拖动鼠标绘制出导线,拖动导线到合适位置后,双击鼠标左键导线绘制完成。

绘制晶振电路时,可以分别从单片机的XTAL1脚和XTAL2脚引出导线连接C1和C2的一端,同时连接到晶振的两端,然后将C1和C2另一端分别连接到接地点。

图片

为单片机添加复位电路

复位电路需要一个22uF的极性电容,一个1K的电阻,一个+5V的直流电源。打开元件库,使用关键词“res”搜索电阻元器件,添加电阻到电路模型元器件库,使用关键词“cap-pol”搜索极性电容元器件,添加极性电容到电路模型元器件库。

图片

图片

从电路模型元器件库添加一个极性电容、一个电阻、一个电源到电路模型,如下图所示。

图片

修改C3电容容量参数为22uf,修改R1电阻值为1K,电源默认为+5V电源,无需修改。

复位电路元器件参数配置完成后的电路模型如下图所示。

图片

参照前面的复位电路图,将单片机、C3、R1、电源通过导线连接在一起,连接之前添加接地点到电路模型。

图片

为单片机添加发光二极管控制电路

发光二级管控制电路需要一个200欧姆的电阻,一个发光二极管,一个+5V的直流电源。打开元件库,使用关键词“LED-RED”搜索发光二极管元器件,添加发光二极管到电路模型元器件库。

图片

从电路模型元器件库添加一个发光二极管、一个电阻、一个电源到电路模型,修改元器件参数,调整元器件到合适位置,如下图所示。

图片

参照前面的发光二极管电路图,将单片机、D1、R2、电源通过导线连接在一起。

图片

装载和运行Keil编写的嵌入式程序

实际上51单片机要正常工作,还需要在Vcc引脚接入电源,在Vss引脚或GND引脚接公共接地端。proteus默认单片机已经接电源和接地,无需再进行导线连接。

在前面的“Keil开发环境与第一个单片机实验”课程中,我们编写了控制单片机P1口第0位输出低电平的程序,程序代码如下:

#include
sbit led1 = P1^0;
void main()
{
       led1 = 0;
}

51单片机只能运行HEX或BIN文件,HEX是十六进制文件,英文全称为“hexadecimal”,BIN文件是二进制文件,英文全称为binary,这两种文件可以通过软件相互转换。若需要Keil编译后输出HEX文件,需要对Keil输出选项进行配置。在Keil工作窗口,展开【Project】菜单,选择“Options for Targets”命令,在弹出的对话框中,选择“Output”标签页,确定“Create Hex File”被选中。

图片

重新编译C源代码,在项目的输出目录可以看到扩展名为“hex”的HEX文件。

图片

C程序编译完成后,回到proteus工作窗口,在电路模型窗口使用鼠标双击单片机,或选中单片机后单击鼠标右键,在弹出的菜单中选择“Edit Properties”命令,proteus弹出Edit Component对话框(见下图),选择使用keil编译的HEX文件,单击【OK】按钮即可装载C程序到单片机。

图片

在电路模型内仿真运行前面装载的单片机程序,运行程序有两种方式:一种方式是展开【Debug】菜单,选择“Start/Restart Debugging”命令来运行程序;一种方式是用鼠标单击调试工具条的启动按钮(见下图)来运行程序。

图片

程序运行后电路模型各端口状态如下图所示。

图片

观察电路模型状态,D1发光二级管已经点亮,蓝色方块表示该端口为低电平,红色方块表示该端口为高电平,灰色方块表示电压不确定。下一节实验课程解释P0口电压不确定的问题。

实验小结

通过这次实验,掌握了proteus设计单片机电路模型的过程,并仿真运行由Keil编写的嵌入式C程序,点亮了发光二极管。下次实验目标主要是应用proteus结合keil对嵌入式程序进行源代码级调试,并解释在实验过程中,P0口电压不确定的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620836
  • 电路设计
    +关注

    关注

    6565

    文章

    2317

    浏览量

    195412
  • Proteus
    +关注

    关注

    76

    文章

    1688

    浏览量

    105596
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132161
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120700
收藏 人收藏

    评论

    相关推荐

    51单片机230个proteus仿真实

    51单片机230个proteus仿真实
    发表于 07-07 10:58

    51单片机230个Proteus仿真实

    51单片机230个Proteus仿真实
    发表于 12-23 12:54

    51单片机230个Proteus仿真实

    51单片机230个Proteus仿真实
    发表于 04-22 23:17

    51单片机230个Proteus仿真实

    `51单片机230个Proteus仿真实例`
    发表于 06-20 12:39

    51单片机230个仿真实51单片机外围proteus仿真

    本帖最后由 嗨,悠悠 于 2013-10-29 21:20 编辑 51单片机230个仿真实51单片机外围
    发表于 10-20 11:21

    51单片机230个Proteus仿真实

    51单片机230个Proteus仿真实
    发表于 02-24 07:03

    51单片机330个Proteus仿真实

    电子发烧友为单片机学习者提供了51单片机230个Proteus仿真实例,欢迎大家下载学习[hide][/hide]
    发表于 03-16 15:44

    51单片机300个proteus仿真实例下载 精选资料分享

    51单片机300个proteus仿真实例下载,不仅有230个51单片机
    发表于 07-16 07:11

    51单片机230个Proteus仿真实例.zip(最齐全)

    51单片机230个Proteus仿真实例(最齐全)。要学习的可以看下下载用Protues仿真软件来加载学习。
    发表于 01-21 14:45 52次下载

    51单片机230个Proteus仿真实

    51单片机230个Proteus仿真实例。大家看看吧,有助于学习单片机
    发表于 03-30 15:39 42次下载

    51单片机Proteus仿真实

    51单片机PROTEUS仿真,压缩包,无密码,免积分。
    发表于 04-19 15:17 271次下载

    如何使用proteus运行一个51单片机仿真实

    本文档的主要内容详细介绍的是如何使用proteus运行一个51单片机仿真实例。
    发表于 07-23 17:37 8次下载
    如何使用<b class='flag-5'>proteus</b>运行一个<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>仿真实</b>例

    Proteus仿真实验51单片机数模转换实验

    三角波,电压范围0V~-5V按键三:输出正弦波,幅值0~-5V四、波形展示:五、文件下载:Proteus仿真实验51单片机数模(D/A)转换实验
    发表于 11-23 16:36 18次下载
    <b class='flag-5'>Proteus</b><b class='flag-5'>仿真实验</b>之 <b class='flag-5'>51</b><b class='flag-5'>单片机</b>数模转换<b class='flag-5'>实验</b>

    51单片机串口通讯 +Proteus仿真实验

    51单片机串口通讯 +Proteus仿真实验
    发表于 11-23 16:36 56次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>串口通讯 +<b class='flag-5'>Proteus</b><b class='flag-5'>仿真实验</b>

    51单片机仿真实验

    51单片机仿真实验文档
    发表于 06-09 14:58 5次下载