最新简单实例掌握PROTEUS速成Word格式.docx
《最新简单实例掌握PROTEUS速成Word格式.docx》由会员分享,可在线阅读,更多相关《最新简单实例掌握PROTEUS速成Word格式.docx(90页珍藏版)》请在冰豆网上搜索。
(2)源程序设计33
3.4.3步骤三:
PROTEUS仿真35
3.5扩展练习36
子情境四:
定时/计数器的使用——方波发生器37
4.1子情境内容:
用AT89C51单片机定时/计数器0的定时功能可构成一简单的方波发生器,实现周期为2s的方波,并能在虚拟示波器上直观地显示波形。
37
4.2子情境目标:
4.3知识点链接37
4.4.1步骤一:
PROTEUS电路设计,实现周期为2s的方波的原理图如图5-22所示。
(1)程序流程图38
(2)源程序设计38
4.4.3步骤三:
PROTEUS仿真39
4.5扩展练习41
子情境五:
单片机外部中断仿真42
5.1子情境内容:
外部中断是单片机的重要内容,本子情境用外部中断功能改变流水灯和数码管的显示状态。
42
5.2子情境目标:
(1)理解单片机的中断原理及中断过程42
(2)用PROTEUS设计、仿真单片机的外部中断。
5.3知识点链接42
5.4任务步骤42
5.4.1步骤一:
PROTEUS电路设计,实现外部中断功能改变流水灯和数码管的显示状态的原理图42
5.4.2步骤二:
源程序设计与目标代码文件生成43
(1)程序流程图43
(2)源程序设计43
5.4.3步骤三:
PROTEUS仿真45
5.5扩展练习47
主程序中数码管从0至9顺序显示数字,中断发生后(在单片机P3.2引脚上有低电平),数码管从9至0反序显示。
47
子情境六:
直流电机正反转48
6.1子情境内容:
用单片机AT89C51控制直流电机正反转。
48
6.2子情境目标:
(1)掌握趋动电机正反转的电路48
(2)用PROTEUS实现电机正反转电路的设计,并进行实时交互仿真48
6.3知识点链接48
6.4任务步骤48
6.4.1步骤一:
PROTEUS电路设计,实现用单片机AT89C51控制直流电机正反转原理图48
6.4.2步骤二:
源程序设计与目标代码文件生成50
(1)程序流程图50
(2)源程序设计51
6.4.3步骤三:
PROTEUS仿真52
6.5扩展练习53
子情境七:
用ADC0809实现电压表55
7.1子情境内容:
利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的电压值,用四位数码管显示。
55
7.2子情境目标:
(1)掌握PROTEUS中电压探针和电压表的使用方法55
(2)通过制作简易电压表,学会AD转换芯片在单片机应用系统中的硬件接口技术和编程方法。
7.3知识点链接55
了解ADC0809芯片的功能以及使用方法55
(1)功能:
ADC0809芯片为8通道模/数转换器,可以和单片机直接接口,将IN0~IN7任何一通道输入的模拟电压转换成八位二进制数,在时钟为500KHZ时,一次变换时间约为100us。
(2)使用方法:
28脚双列直插式封装如图5-39所示,各引脚功能如下:
7.4任务步骤56
7.4.1步骤一:
PROTEUS电路设计,利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图5-40所示。
56
7.4.2步骤二:
源程序设计与目标代码文件生成58
(1)程序流程图58
(2)源程序设计59
7.4.3步骤三:
PROTEUS仿真62
7.5扩展练习66
子情境八:
1602液晶显示器67
8.1子情境内容:
利用单片机AT89C52控制液晶显示器(LiquidCrystalDisplay,简称为LCD)实时显示。
在1602液晶的第一行显示“ILOVEMYFAMILY”,在第二行显示“WWW.YZCIT.CN”。
67
8.2子情境目标:
(1)掌握1602液晶与单片机的接口电路67
(2)通过控制LCD,学会LCD液晶模块在单片机应用系统中的编程方法。
8.3知识点链接67
了解LCD1602芯片的功能以及使用方法67
本情境中所使用的液晶显示器型号为1602,意思是每行显示16个字符,一共可以显示两行。
此液晶只能显ASCII字符,如数字、大小写字母、各种符号等。
1602液晶的引脚图67
8.4任务步骤68
8.4.1步骤一:
PROTEUS电路设计,利用单片机AT89C52控制液晶显示器实时显示的原理图如图5-46所示。
68
8.4.2步骤二:
源程序设计与目标代码文件生成69
(1)程序流程图69
(2)源程序设计69
8.4.3步骤三:
PROTEUS仿真71
8.5扩展练习72
子情境九:
简易秒表制作73
9.1子情境内容:
制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。
73
9.2子情境目标:
(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路73
(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘73
9.3知识点链接73
9.4任务步骤73
9.4.1步骤一:
PROTEUS电路设计,简易秒表的原理图如图5-51所示。
9.4.2步骤二:
源程序设计与目标代码文件生成74
(1)程序流程图74
(2)源程序设计76
9.4.3步骤三:
PROTEUS仿真79
9.5扩展练习81
此子情境设计的秒表只能显示两位整数,如果要记录110跨栏12:
88秒的成绩,则必须再增加两位数码管来显示小数位。
想想硬件和软件应该做如何改动。
81
子情境十:
点阵LED简单图形显示技术82
10.1子情境内容:
利用单片机AT89C52在8×
8点阵上逐次显示心形、圆形和菱形图。
82
10.2子情境目标:
(1)通过学习点阵LED显示技术,掌握单片机与点阵的接口电路。
(2)进一步熟悉单片机I/O口的运用方法,了解动态显示的编程方法82
10.3知识点链接82
10.4任务步骤83
10.4.1步骤一:
PROTEUS电路设计,LED点阵的原理图如图5-56所示。
83
10.4.2步骤二:
源程序设计与目标代码文件生成84
(1)程序流程图84
(2)源程序设计85
10.4.3步骤三:
PROTEUS仿真87
10.5扩展练习88
简单实例助你快速掌握PROTEUS的用法
为了更快掌握PROTEUS设计与仿真操作,我们先从一简单实例入手带你入门。
让我们首先来熟悉一下仿真软件的主界面:
图5-1仿真软件的主界面
运行protues的ISIS模块,进入仿真软件的主界面,如图5-1所示,区域①为菜单及工具栏,区域②为元器件预览区,区域③为对象选择器窗口,区域④为编辑窗口,区域⑤为绘图工具栏,区域⑥为元器件调整工具栏,区域⑦为运行工具条。
Proteus是一种集单片机仿真和SPICE分析于一身的仿真软件。
其功能非常强大,不仅能仿真模拟电路、数字电路以及模拟数字混合电路,更重要的是可以仿真51系列、AVR、PIC等常用主流单片机。
Protues提供了丰富的资源:
(1)Proteus拥有的元器件资源:
Proteus可提供30多种元件库,超过8000种模拟、数字元器件。
(2)Proteus可提供的仿真仪表资源:
仿真仪器仪表的数量、类型和质量是衡量仿真实验室是否合格的一个关键因素。
Proteus可提供常用的示波器(本文的实例中示波器被用来观察产生的波形)、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。
以下简要罗列了proteus中常用元器件和仿真仪表中英文对照表:
7407驱动门
1N914二极管
74Ls00与非门
74LS04非门
74LS08与门
74LS390TTL双十进制计数器
7SEG4针BCD-LED输出从0-9对应于4根线的BCD码
7SEG3-8译码器电路BCD-7SEG转换电路
AND与门
BATTERY电池/电池组
BUS总线
CAP电容
CAPACITOR电容器
CLOCK时钟信号源
CRYSTAL晶振
FUSE保险丝
GROUND地
LAMP灯
LED-RED红色发光二极管
LM016L2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。
LOGICANALYSER逻辑分析器
LOGICPROBE逻辑探针
LOGICPROBE[BIG]逻辑探针用来显示连接位置的逻辑状态
LOGICSTATE逻辑状态用鼠标点击,可改变该方框连接位置的逻辑状态
LOGICTOGGLE逻辑触发
MOTOR马达
OR或门
POT-LIN三引线可变电阻器
POWER电源
RES电阻
RESISTOR电阻器
SWITCH按钮手动按一下一个状态
VOLTMETER伏特计
VOLTMETER-MILLImV伏特计
VTERM串行口终端
Electromechanical电机
Inductors变压器
LaplacePrimitives拉普拉斯变换
Miscellaneous各种器件AERIAL-天线;
ATAHDD;
ATMEGA64;
BATTERY;
CELL;
CRYSTAL-晶振;
FUSE;
METER-仪表;
Optoelectronics各种发光器件发光二极管,LED,液晶等等
Resistors各种电阻
SimulatorPrimitives常用的器件
Speakers&
Sounders
扬声器
Switches&
Relays开关,继电器,键盘
Transistors晶体管(三极管,场效应管)
TTL74series
TTL74ALSseries
TTL74ASseries
TTL74Fseries
TTL74HCseries
TTL74HCTseries
TTL74LSseries
TTL74Sseries
此模拟电路集成芯片
Capacitors电容集合
Connectors排座,排插
DataConvertersADC,DAC
DebuggingTools调试工具
下面开始我们的第一个任务:
用P1口的第一个引脚控制一个LED灯,1秒钟闪烁一次。
通过此子情境的练习,快速掌握PROTEUS的基本用法
1.3子情境步骤
PROTEUS电路设计
整个设计都是在ISIS编辑区中完成的。
(1)单击工具栏上的“新建”按钮
,新建一个设计文档。
单击“保存”按钮
,弹出如图5-2所示的“SaveISISDesigneFile”对话框,在文件名框中输入“LED”(简单实例的文件名),再单击“保存”按钮,完成新建设计文件操作,其后缀名自动为.DSN。
图5-2保存ISIS设计文件
(2)选取元器件
此简单实例需要如下元器件:
单片机:
AT89C51
发光二极管:
LED-RED
瓷片电容:
CAP*
电阻:
RES*
晶振:
CRYSTAL
按钮:
BUTTON
单击图5-3中的“P”按钮
,弹出如图5-4所示的选取元器件对话框,在此对话框左上角“keywords(关键词)”一栏中输入元器件名称,如“AT89C52”,系统在对象库中进行搜索查找,并将与关键词匹配的元器件显示在“Results”中。
在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C52”添加至对象选择器窗口。
按照此方法完成其它元器件的选取,如果忘记关键词的完整写法,可以用“*”代替,如“CRY*”可以找到晶振。
被选取的元器件都加入到ISIS对象选择器中。
如图5-5所示。
图5-3单击“P”按钮选取元器件
图5-4选取元器件窗口
图5-5选取元器件均加入到ISIS对象选择器中
(3)放置元器件至图形编辑窗口
在对象选择器窗口中,选中AT89C51,将鼠标置于图形编辑窗口该对象的欲放置的位置、单击鼠标左键,该对象被完成放置。
同理,将BUTTON、RES等放置到图形编辑窗口中。
如图5-6所示。
若元器件方向需要调整,先在ISIS对象选择器窗口中单击选中该元器件,再单击工具栏上相应的转向按钮
,把元器件旋转到合适的方向后再将其放置于图形编辑窗口。
若对象位置需要移动,将鼠标移到该对象上,单击鼠标右键,此时我们已经注意到,该对象的颜色已变至红色,表明该对象已被选中,按下鼠标左键,拖动鼠标,将对象移至新位置后,松开鼠标,完成移动操作。
通过一系列的移动、旋转、放置等操作,将元器件放在ISIS编辑窗口中合适的位置。
如图5-6所示。
(4)放置终端(电源、地)
放置电源操作:
单击工具栏中的终端按钮
,在对象选择器窗口中选择“POWER”如图5-7所示,再在编辑区中要放电源的位置单击完成。
放置地(GROUND)的操作与此类似。
图5-6各元器件放在ISIS编辑窗口中合适的位置
图5-7放置终端符号
(5)元器件之间的连线
Proteus的智能化可以在你想要画线的时候进行自动检测。
下面,我们来操作将电阻R1的右端连接到LED显示器的左端,如图5-6所示。
当鼠标的指针靠近R1右端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针靠近LED的左端的连接点时,跟着鼠标的指针就会出现一个“□”号,表明找到了LED显示器的连接点,单击鼠标左键完成电阻R1和LED的连线。
Proteus具有线路自动路径功能(简称WAR),当选中两个连接点后,WAR将选择一个合适的路径连线。
WAR可通过使用标准工具栏里的“WAR”命令按钮
来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
同理,我们可以完成其它连线。
在此过程的任何时刻,都可以按ESC键或者单击鼠标的右键来放弃画线。
(6)修改、设置元器件的属性
PROTEUS库中的元器件都有相应的属性,要设置修改元器件的属性,只需要双击ISIS编辑区中的该元器件。
例如,发光二极管的限流电阻R1,双击它弹出如图5-7所示的属性窗口,在窗口中已经将电阻的阻值修改为330欧姆。
图5-9是编辑完成的“简单实例”的电路。
图5-8设置限流电阻阻值为330欧姆
图5-9编辑完成的简单实例的电路图
源程序设计与生成目标代码文件
(1)程序流程图
图5-10发光二极管闪烁的流程图
(2)源程序设计
将放光二极管闪烁的程序保存在文件FLASH_LED.C中,在keil中编译生成目标代码文件,本例为FLASH_LED.HEX。
#include<
reg52.h>
//头文件
#defineuintunsignedint//宏定义
sbitD1=P1^0;
//声明单片机P1口的第一位
voiddelay(uintz);
//声明子函数
voidmain()
{
while
(1)//大循环
{
D1=0;
//点亮第一个发光二极管
delay(500);
//延时500毫秒
D1=1;
//关闭第一个发光二极管
}
}
voiddelay(uintz)//延时子程序延时约z毫秒
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
PROTEUS仿真
(1)加载目标代码文件
双击编辑窗口的AT89C52器件,在弹出如图5—11所示属性编辑对话框ProgramFile一栏中单击打开按钮
,出现文件浏览对话框,找到FLASH_LED.HEX文件,单击“打开”按钮,完成添加文件。
在Clockfrequency栏中把频率设置为12MHZ,仿真系统则以12MHZ的时钟频率运行。
因为单片机运行的时钟频率以属性设置中的“Clockfrequency”为准,所以在编辑区设计MCS-51系列单片机系统电路时,可以略去单片机振荡电路,并且复位电路也可以略去。
所以从子情境三开始就将振荡电路和复位电路省略。
图5-11加载目标代码文件窗口
(2)仿真
单击按钮
,启动仿真,仿真运行片段如图5-12所示。
发光二极管间隔500毫秒闪烁。
图5—12仿真运行片段
红色方块代表低电平,蓝色方块代表高电平,灰色方块代表不确定电平
1.4扩展练习
改成让P1.1口控制LED灯1秒钟闪烁一次。
用发光二极管实现流水灯乒乓球效果
(1)通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果
(2)用PROTEUS设计、仿真以AT89C52为核心的放光二极管流水灯电路。
(3)掌握发光二极管的控制方法
2.2子情境步骤
(1)选取元器件:
按快捷键“P”按钮
,打开元器件选择窗口。
在关键词栏中输入元器件的关键词,选取需要的元器件。
①单片机:
AT89C52
②电阻、8排阻:
③红色发光二极管:
④瓷片电容:
⑤晶振:
(2)放置元器件:
在对象选择器中单击选中AT89C52,在编辑区中合适的位置单击,器件AT89C52就被放置到编辑区中。
如果要改变元器件的放置方向,先在ISIS对象选择器中单击选中该元器件,再单击工具栏上相应的转向按钮
(3)放置终端(电源、地)
,在对象选择器窗口中选择“POWER”,再在编辑区中要放电源的位置单击完成。
(4)元器件之间的连线
因为ISIS的智能化程度很高,只要单击所要连线的起点和终点。
例如元器件的引脚、终端等,在这两点间会自动生成一条线。
若要画折线,只要在转折点单击;
若中途想取消连线,右击即可。
(5)元器件属性设置
设置好的原理图如图5-13所示。
图5-13流水灯乒乓效果原理图
源程序设计与目标代码文件生成
(1)程序流程图
//52系列单片机头文件
#include<
intrins.h>
//包含_crol_(循环左移)函数所在的头文件
voiddelay(intz);
unsignedchartemp;
//定义一个变量,用来给P1口赋值
inti,j;
temp=0xfe;
//赋初值11111110
P1=temp;
//先点亮第一个发光二极管
for(i=7;
i>
i--)//控制亮点从低位往高位移动7次
{
delay(500);
temp=_crol_(temp,1);
//将temp循环左移一位后再赋给temp
P1=temp;
//将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
}
for(j=7;
j>
j--)//控制亮点从高位往低位移动7次
temp=_cror_(temp,1);
//将temp循环右移一位后再赋给temp
//将移位后的值赋给P1口,从高位到地位逐个点亮发光二极管
voiddelay(intz)
unsignedintx,y;
x--)//延时z毫秒
(2)生成目标代码文件
在KEIL软件中,编译C语言源程序,生成目标代码文件,本例中为pingpang.hex。
加载目标代码文件,双击编辑窗口的AT89C51器件,在弹出属性编辑对话框ProgramFile一栏中单击打开按钮
,出现文件浏览对话框,找到pingpang.hex文件,单击“打开”按钮,完成添加文件。
,启动仿真,仿真运行片段如图5-15所示。
通过AT89C52单片机控制8个发光二极管,实现亮点由低位到高位再由高位到低位来回流动的乒乓球效果。
图5-15流水灯乒乓效果运行片段
2.4扩展练习
此子情境中流水灯在同一时刻只显示一盏灯,现在完成同时亮着两个灯流动的效果。
数码管动态扫描
(1)掌握单片机控制四位数码管的动态扫描技术,包括程序设计和电
路设计,本任务的效果是让四位数码管稳定的显示1234。
(2)用PROTEUS进行电路设计和实时仿真
3.3知识点链接
(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)
动态显示的特点是将所有位数码管的段选线s一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人