数字pid直流调速系统。
1. 调试软件介绍。
proteus软件是一种低投资的电子设计自动化软件,提供可**数字和模拟、交流和直流等数千种元器件和多达30多个元件库。proteus软件提供多种现实存在的虚拟仪器仪表。此外,proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供schematic drawing、spice**与pcb设计功能,同时可以**单片机和周边设备,可以**51系列、**r、pic等常用的mcu,并提供周边设备的**,例如373、led、示波器等。
proteus提供了大量的元件库,有ram、rom、键盘、马达、led、lcd、ad/da、部分spi器件、部分iic器件,编译方面支持keil和mplab等编译器。一台计算机、一套电子**软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。
在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、**、调试等。当电路设计完成之后,为了减少在电路板上调试时的难度,保证电路设计的正确性,将keil c51编译生成的*.hex 文件载入proteus软件,实现电路**。
2. 调速设计方案。
调速采用pwm(pulse width modulation)脉宽调制的工作原理是通过产生矩形波,改变占空比,以达到调整脉宽的目的。脉宽调制(pwm)是利用微处理器的数字输出来对模拟电路进行控制的一种技术,它广泛应用在测量、通信到功率控制与变换的许多领域中。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在这一集合中取值。
模拟电压和电流可直接用来进行控制。模拟控制看起来直观而简单,而且模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。但它也有缺点,模拟电路容易随时间漂移,因而难以调节。
能够解决这个问题的精密模拟电路非常庞大、笨重和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。
所以通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和dsp已经在芯片上都包含了pwm控制器,这使数字控制的实现变得更加容易了。
3. lcd显示模块。
液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的**,比如大写的英文字母“a”的**是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。因为其识别的是ascii码,试验可以用ascii码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'a’。
lcd采用标准的14脚接口,其中:
第1脚:vss为电源地。
第2脚:vdd接5v电源正极。
第3脚:vee为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。
第4脚:rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:rw为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:e(或en)端为使能(enable)端。
第7~14脚:d0~d7为8位双向数据端。
lcd图如下。
4. 系统程序如下:
#include <>
#define uchar unsigned char
#define uint unsigned int
sbit open = p2^0;
sbit close = p2^1;
sbit swap = p2^2;
sbit sub_speed = p2^3;
sbit add_speed = p2^4;
sbit pwm1 = p3^0;
sbit pwm2 = p3^1;
液晶显示。sbit e=p3^7;
sbit rw = p3^6;
sbit rs = p3^5;
sbit test = p3^4;
int time = 0;
int high = 20;
int period = 30;
int change = 0;
int flag = 0;
int num_medium = 0;
int num_display = 0;
int count_speed = 0;
uchar wword=
延时t毫秒。
void delay(uchar t)
/写命令函数lcd
void wc51r(uchar j)
rs=0;rw=0;
p1=j;e=1;
e=0;delay(3);
/写数据函数lcd
void wc51ddr(uchar j)
rs=1;rw=0;
p1=j;e=1;
e=0;delay(2);
/初始化函数lcd
void init()
wc51r(0x01); 清屏。
wc51r(0x38); 使用8位数据,显示两行,使用5*7的字型。
wc51r(0x0c); 显示器件,光标开,字符不闪烁。
wc51r(0x06); 字符不动,光标自动右移一格。
8t0中断服务程序pwm波的生成。
void time0_int(void) interrupt 1
time++;
th0 = 0xec;
tl0 = 0x78;
if(change ==0)
pwm2 = 1
if(time ==high)
pwm1=0;
else if(time ==period)
pwm1 = 1;
time = 0;
elsepwm1 = 1;
if(time ==high)
pwm2=0;
else if(time ==period)
pwm2 = 1;
time = 0;
***t1中断服务程序***单位时间(s)方波的个数。
void time1_int(void) interrupt 3
count_speed++;
if(count_speed ==20)
count_speed = 0;
num_display = num_medium;
num_medium = 0;
速度显示的数据处理。
void datamade()
uint data mm,nn;
wc51r(0xc2);
wc51ddr('s');
wc51ddr('p');
wc51ddr('e');
wc51ddr('e');
wc51ddr('d');
wc51ddr(0x3a);
nn = num_display%100;
mm = num_display/100;
wc51ddr(wword[mm]);
mm = nn/10;
nn = nn%10;
wc51ddr(wword[mm]);
wc51ddr(wword[nn]);
通过按键实现对电机开关、调速、转向的控制。
void motor_control()
if(open ==1)
ea = 1;
if(close ==1)
ea = 0;
if(swap ==1)
change = change;
while(swap !=0)
if(sub_speed ==1)
high++;
if(high ==30)
ea=0;while(sub_speed !=0)
if(add_speed ==1)
high--;
if(high ==5)
high = 5;
while(add_speed !=0)
主函数。void main()
5. 直流电机的调速功能**。
运控期中作业
转速电流双闭环直流调速系统。自动化0905班。刘妮。转速电流双闭环直流调速系统。已知参数 电机参数为 调速系统的基本数据如下 晶闸管三相桥式全控整流电路供电的双闭环直流调速系统,1 直流电动机 unom 220v,inom 136a,nnom 1460r min,电枢电阻ra 0.2 允许过载倍数 ...
计网期中作业
计。算。机。网。络。期。中。作。业。计科0702 程波。关于ad hoc的简单介绍。摘要 本文首先介绍了ad hoc网络的特点和应用领域。然后对ad hoc网络的体系结构进行了研究,给出了结点和网络的几种组织结构。最后对ad hoc网络面临的特殊问题进行了深入分析,并对这些问题的影响及引发的研究方向...
2023年计控
一 单项选择题 共72题,每题1分。每题的备选项中,只有1个最符合题意 2011年注册造价工程师考试 工程造价计价与控制 试题 2 环球网校 edu24ol 大中小 频道 造价工程师。二 多项选择题 共20题,每题2分。每题的备选项中,有2个或2个以上符合题意,至少有1个错项。错选,本题不得分 少选...