proteus指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1:Protues电路分析仿真软件
一.实验目的:
学习Proteus的使用方法
二.实验属性及设备:
验证性实验,使用电脑及相关专业软件。
三.实验原理:
1.概述
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
该软件的特点:
①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
③目前支持的单片机类型有:68000系列、8051系列、A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
④支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、A VR、PIC。
2.常用元件汉语解释
四.实验内容:
1.起动Proteus
从开始菜单中,运行程序,如图:
图1:
2.添加所需元件
顺序选择按钮和,在keywords中填写元件名称,在右侧列表中双击该元件,该元件被选中,并出现在左侧选中元件列表中。
图2:
单击选中元件,放置在Proteus作图区,并按要求连线。
3.电源与地
选择图示按钮,列表中出现power为电源,ground为地。选择元件后可放置在绘图区。
图3:
4.示波器应用
如图示操作可获得示波器。示波器地线默认为自动连接。
图4:
5.使用与非门、按键和LED搭建一个电路,并调试运行。
图5
6.单片机控制LED电路
单片机可不用连接晶振和电源(地)复位电路。按图放置元件并连接。
图6:
单击电阻元件,在特性对话框中把电阻值修改为300(默认单位欧)。
图7:
6.使用keil C或wave软件编写汇编或C单片机程序(对灯进行控制练习,使灯按一定规律进行明灭),并生成hex文件。单击单片机,在对话框program file中装入hex程序。
图8:
点击运行、暂停及停止等按钮,运行程序。
7.自己再编写一个练习程序进行上机仿真。
五.实验要求
提前进行预习,掌握一种单片机程序编制方法(wave或keil C)。如果想对proteus有更多了解,应查找相关资料。
8.附录:
常用头文件:#include
常用数据类型:char,int,long int,double等。
IO口定义:sbit P10=P1^0;
IO口输出:P1=jmn;P10=1;
读IO口:kh=P1;thm=P10;
9 keilc使用
新建工程
新建c文件,编写程序
实验2:直流电动机PWM控制Protues仿真1
一.实验目的:
1.学习PWM波生成方法。
2.学习直流电动机PWM控制方法。
二.实验属性及设备:
验证性实验,使用电脑及相关专业软件。
三.实验原理:
1.本实验采用无制动的不可逆PWM控制方法。控制对象为小型直流电动机,采用功率晶体管作为开关器件,如图1所示。
图1:直流电动机控制原理
2.PWM波的产生
图2:PWM波形图
利用单片机一个I/O口产生高低电平。高电平时间T1,低电平时间T2,则PWM波周期为T,如图2所示。
T=T1+T2
PWM波频率为f=1/T。这里使用单片机T0定时器模式1进行定时操作,单片机振荡频率为12MHz。
假定PWM频率为f,则T=1,000,000/f(机器周期)。T1按占空比进行计算:
T1=αT,T2=(1-α)T
则高电平装入时间TT1=65536-T1,低电平装入时间TT2=65536-T2。
3.如果进行加减速操作,则改变PWM波占空比即可。
四、实验内容
1.按图3搭接电路。电动机电源设置为+12V。
图3:直流电动机控制原理
2.编制程序
单片机使用T0定时器,工作方式1。加减速按键使用中断0和中断1进行控制。以下为C语言控制程序。
#include
sbit PWM=P1^0;
unsigned int TT;
unsigned int TT1;
unsigned int TT2;
unsigned char T1H[10];
unsigned char T1L[10];
unsigned char T2H[10];
unsigned char T2L[10];
#define Pinlv 500; //PWM频率
unsigned char sudu=5; //速度变量
——————————————————————————
void main()
{
unsigned char i;
TT=1000000/Pinlv;
for (i=1;i<=9;i++)
{
TT1=((i+0.5)/10)*TT; //占空比分别为1.5;2.5;3.5;4.5;5.5;6.5;7.5;8.5;9.5共9档
TT2=TT-TT1;
TT1=65536-TT1;
TT2=65536-TT2;
T1H[i]=TT1/256; //高电平时定时器装入时间
T1L[i]=TT1%256;
T2H[i]=TT2/256; //低电平时定时器装入时间
T2L[i]=TT2%256;
}