一.实验目的: 学习Proteus的使用方法 二.实验属性及设备:
验证性实验,使用电脑及相关专业软件。 三.实验原理: 1.概述
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。 该软件的特点:
① 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
③ 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
④ 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。 2.常用元件汉语解释
表:Proteus常用元件英汉对照 元件 Res POT-LIN Cap Button 1N914 LED-RED NPN或PNP 7400 7404 7408 c51 LM339 AD0808 DA0832 74273 555 Motor-DC Motor-Stepper BLDC 7seg-BCD
四.实验内容: 1.起动Proteus
1
中文 电阻 可变电阻 电容 按钮 二极管 红色发光二极管 三极管 与非门 非门 与门 51单片机 电压比较器 AD转换 DA转换 锁存器 555定时器 直流电动机 四相步进电动机 无刷直流电动机 数码管+译码器 备注 从开始菜单中,运行程序,如图:
图1:
2.添加所需元件 顺序选择按钮
和
,在keywords中填写元件名称,在右侧列表中双击该元件,该元件被选中,
并出现在左侧选中元件列表中。
图2: 单击选中元件,放置在Proteus作图区,并按要求连线。
3.电源与地
选择图示按钮,列表中出现power为电源,ground为地。选择元件后可放置在绘图区。
图3:
4.示波器应用
如图示操作可获得示波器。示波器地线默认为自动连接。
2
图4:
5.使用与非门、按键和LED搭建一个电路,并调试运行。
图5
6.单片机控制LED电路
单片机可不用连接晶振和电源(地)复位电路。按图放置元件并连接。
3
图6:
单击电阻元件,在特性对话框中把电阻值修改为300(默认单位欧)。
图7: 6.使用keil C或wave软件编写汇编或C单片机程序(对灯进行控制练习,使灯按一定规律进行明灭),并生成hex文件。单击单片机,在对话框program file中装入hex程序。
4
图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文件,编写程序 5 实验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。 6 图3:直流电动机控制原理 2.编制程序 单片机使用T0定时器,工作方式1。加减速按键使用中断0和中断1进行控制。以下为C语言控制程序。 #include 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; } 7 PWM=1; //高电平 TMOD=0x01; //定时器0工作方式1 TH0=T1H[sudu]; //TT1 TL0=T1L[sudu]; TR0=1; //开定时器0 EA=1; //开中断 ET0=1; //开定时器0中断 EX0=1; //开外部中断 EX1=1; IT0=1; //下降沿触发 IT1=1; while(1) { P2=sudu; } } —————————————————————————— void timer0()interrupt 1 //产生PWM波 { if (PWM==0) { PWM=1; //高电平 TH0=T1H[sudu]; //TT1 TL0=T1L[sudu]; } else { PWM=0; //低电平 TH0=T2H[sudu]; //TT2 TL0=T2L[sudu]; } } ———————————————————————— void int0()interrupt 0 //加速 { if (sudu<9) sudu++; } ———————————————————————— void int2()interrupt 2 //减速 { if (sudu>1) sudu--; } 3.运行程序,进行加减速操作。通过电机转速表观察转速,并通过示波器观察PWM波变化情况,如图4所示。 8 图4:示波器波形图 4.选做题目:查找资料,对直流电动机其它控制方式进行编程控制仿真。 五、实验要求: 复习直流电动机PWM波控制方法,编制单片机控制程序。 9 实验3、直流电动机PWM控制Protues仿真2 一.实验目的: 1.学习驱动芯片L298特性,并对直流电动机进行PWM控制。 二.实验属性及设备: 验证性实验,使用电脑及相关专业软件。 三.实验原理: 1.本实验L298芯片对直流电动机进行PWM控制。 L298是SGS公司的产品,恒压恒流桥式2A驱动芯片。可以驱动两个直流电动机,也可用于步进电动机的驱动。其输出电压最高可达50V,可以直接通过电源来调节输出电压;也可直接用单片机的IO口提供信号。电路简单,使用比较方便。L298外形及管脚如图1,proteus仿真模型如图2。 图1:L298外形及管脚图 图2:L298仿真模型 L298N可接受标准TTL逻辑电平信号,9管脚接4.5~7 V电压。4脚VS接电源电压,VS电压范围为+2.5~46 V。输出电流可达2.5 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个直流电动机,OUT1,OUT2以及OUT3,OUT4之间可分别接直流电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。表1是L298N功能逻辑图。 表1:L298逻辑功能 ENA 0 1 1 1 1 IN1 X 0 0 1 1 IN2 X 0 1 0 1 电机状态 停止 停止 反转 正转 刹停 In3,In4的逻辑图与表1相同。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。 2.PWM波生成方法与上一实验方法相同。 10 四、实验内容 1.按图3搭接电路。电动机电源设置为+15V(不限)。 图3:实验电路图 利用PWM波对ENA进行使能控制,图中的二极管为起续流作用。 2.编制程序 单片机使用T0定时器,工作方式1。 #include sbit P20=P2^0; sbit P21=P2^1; sbit P24=P2^4; unsigned char T1H; unsigned char T1L; unsigned char T2H; unsigned char T2L; bit PWMBJ; —————————————————————————— void main() { unsigned int pinlv=1000; unsigned int TT; unsigned int T1; unsigned int T2; float zkb=0.9; TT=11059200/(12*pinlv); T1=65535- zkb*TT; T2=65535-(1-zkb)*TT; T1H=T1/256; T1L=T1%256; T2H=T2/256; T2L=T2%256; TMOD=0x01; 11 EA=1; ET0=1; TR0=1; P20=1; //正反转控制 P21=0; while(1); } —————————————————————————— void timer0()interrupt 1 //定时器0中断程序 { if (PWMBJ==1) { PWMBJ=0; P24=0; TH0=T2H; TL0=T2L; } else { PWMBJ=1; P24=1; TH0=T1H; TL0=T1L; } } 3.调试程序 4.在程序中改变占空比参数,改变电机速度,对IN1和IN2电平改变,使电机正反转。 5.选作内容,在此基础上,增加几个按钮,可直接对电机进行正转、反转、停止控制。 五、实验要求: 学习L298驱动芯片功能,编制单片机控制程序。 12 实验4:直流电动机转速测量Proteus仿真 一.实验目的: 1.学习电机转速测量方法。 二.实验属性及设备: 验证性实验,使用电脑及相关专业软件。 三.实验原理: 1.电机转速测量一般可使用霍尔传感器或编码盘,这里以增量式编码盘为例。单击直流电动机,在特性表中改变其每转脉冲(pulses per revolution)为240个。电机旋转时,编码盘发出连续脉冲。当转速较高时,一般可使用在一定周期内对脉冲计数的方法。当转速较低时,则可对其脉冲宽度进行测量,则转速(r/min) 60n2脉冲宽度每周脉冲数2. 测量时,编码盘信号接INT0,定时器T0设置为方式1,GATE=1。这样,起始时,定时器T0清零,当信号脉冲高电平时,定时器T0开始计时,当信号脉冲低低电平时,定时器T0停止计时。则定时器T0的值即为半个脉冲周期值T。定时器T0方式1时工作原理如图1。 振荡器TR0GATEINT0÷12控制&+ 图1:定时器T0工作方式1工作原理图 3.转速显示使用带译码器的数码管,7SEG-BCD-GRN。 四、实验内容 1.按图2搭接电路。 图2:实验接线图 13 2.编制电机控制及转速测量程序 #include unsigned int T; //信号脉冲周期 void delay(); //延时 ———————————————————————— void main() { unsigned int pinlv=1000; unsigned int TT; unsigned int T1; unsigned int T2; float zkb=0.9; unsigned char sudu;//转速 TT=11059200/(12*pinlv); T1=65535- zkb*TT; T2=65535-(1-zkb)*TT; T1H=T1/256; T1L=T1%256; T2H=T2/256; T2L=T2%256; TMOD=0x19; EA=1; ET1=1; TR1=1; TR0=1; EX0=1; //开外部中断0 IT0=1; //下降沿中断 P20=1; P21=0; while(1) { //sudu=(60)/((12/11059200)*T*2*240); sudu=115200/T; //转速计算 P1=(sudu/100)*16+(sudu%100)/10; //显示 P0= sudu%10; delay(); } } 14 ———————————————————————— void int0()interrupt 0 //信号脉冲周期测量 { T=TH0*256+TL0; TH0=0; TL0=0; } ———————————————————————— void timer1()interrupt 3 //PWM波控制 { if (PWMBJ==1) { PWMBJ=0; P24=0; TH1=T2H; TL1=T2L; } else { PWMBJ=1; P24=1; TH1=T1H; TL1=T1L; } } ———————————————————————— void delay() //延时 { unsigned int i=500; while(i--); } 3.调试程序,观察数码管显示与电机转速表显示是否一致。 4.选作内容 1)PID控制程序 编制PID控制程序,程序流程按图3。 单片机 r+-ye数字PID控制器α直流电动机驱动单元直流电动机y测速单元 图3:电动机调速控制原理图 调试程序,观察电机转速与设定值是否一致。 2)上位机显示转速曲线 程序流程按图4,程序结构按图5。 15 上位机 曲线绘制r+-yye数字PID控制器α直流电动机驱动单元直流电动机y 测速单元 图4:电动机调速控制原理图 上位机程序外部中断0程序定时器0中断程序串口 通讯串口中断程序脉冲周期单片机主程序及子程序初始化PID参数改变转速设定绘制转速变化曲线计算转速PID控制发送转速数据延时定时参数定时器1中断程序PWM波产生PID及转速参数串口通讯 图5:电动机调速控制程序流程图 按图6接线,增加一个串口通讯控件,串口通讯协议:9600,N,8,1,晶振频率11.0592MH,使用端口1通讯。 图6:实验接线图 VB界面如图7,添加一个通讯控件,使用端口com2通讯。 16 图7:VB控制界面 程序运行效果如图8: 图8:电动机调速控制速度响应曲线 注意:为编程简单,PID通讯参数都使用字节数据,在单片机程序中予以修正。 五、实验要求: 复习转速测量及PID控制有关知识,编制单片机控制程序。 17 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务