机电的dsp控制课程设计报告大学论文

上传人:鲁** 文档编号:501634115 上传时间:2023-11-08 格式:DOC 页数:14 大小:716KB
返回 下载 相关 举报
机电的dsp控制课程设计报告大学论文_第1页
第1页 / 共14页
机电的dsp控制课程设计报告大学论文_第2页
第2页 / 共14页
机电的dsp控制课程设计报告大学论文_第3页
第3页 / 共14页
机电的dsp控制课程设计报告大学论文_第4页
第4页 / 共14页
机电的dsp控制课程设计报告大学论文_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《机电的dsp控制课程设计报告大学论文》由会员分享,可在线阅读,更多相关《机电的dsp控制课程设计报告大学论文(14页珍藏版)》请在金锄头文库上搜索。

1、 课程名称:电机的DSP控制课程设计院 系: 电子信息与电气工程学院专 业: 电气工程与自动化班 级: 学 号: 姓 名: 上 海 交 通 大 学目录1. 电机控制的DSP芯片32.软件设计要求32.1学会DSP开发环境的使用,能编写C语言程序;32.2编写数码管显示程序、键盘扫描程序;32.3 编写AD采样程序;32.4编写6路PWM正弦波程序(变频器逆变需6路);33. 软件实现33.1数码管显示程序、键盘扫描程序33.1.1程序设计思路33.1.2程序模块43.2 AD采样程序63.2.1程序设计思路63.2.2 程序模块63.3 6路PWM正弦波程序73.3.1 程序设计思路73.3.

2、2 程序模块83.3.3程序设计结果104. 课程总结141. 电机控制的DSP芯片本课程设计用的芯片为TMS320F28027;本课程设计中主要用到的一些电路模块:显示和键盘电路、BC7281、A/D采样电路、PWM输出电路。2.软件设计要求2.1学会DSP开发环境的使用,能编写C语言程序;2.2编写数码管显示程序、键盘扫描程序; 程序运行后,初始值为0,通过1个键,按一下加1,通过另一个 键,按1下减1;(按着不放,超过1秒,不断加1或减1,时间 超过5秒,不断加10,或减10)。2.3 编写AD采样程序; 根据输入的电压值,把AD的结果显示出来,当输入电压变化时, 显示值也变化。2.4编

3、写6路PWM正弦波程序(变频器逆变需6路); PWM的开关频率为10KHz,其输出的正弦波频率为0100Hz, 根据AD的值变化,50Hz时输出100%电压,050Hz按V/f等于 常数输出,死区时间取2us。频率值显示在数码管上。 3. 软件实现3.1数码管显示程序、键盘扫描程序3.1.1程序设计思路此程序关键是如何去计时,最初考虑是用计时器中断去设计程序,但此方法需要在中断中执行判断按键是否持续,以及更改和现实数字,中断中操作过多,经常出错。故后来改为用延时环节计时,此方法的优点是不需要用中断,但计时不够精确。3.1.2程序模块for(;) time=0; /计时变量time初始值为0;

4、if(KEY=0) key_number=Read_7281(0x13);/读取按键值 switch(key_number) case 0x00: keynumber+; if(keynumber9999)keynumber=0; write(); delay(2); break; case 0x01: keynumber-; if(keynumber0)keynumber=9999; write(); delay(2); break; /switch /if while(KEY=0) /如果按键没有松开,则开始计时; if(time=5) /延时环节,延时为1秒; for(cnt1=0;cn

5、t1270;cnt1+) for(cnt2=0;cnt2=1&time9999)keynumber=0; write(); break; case 0x01: keynumber-; If(keynumber5) /按着不放超过5秒,则不断加10或减10; switch(key_number) case 0x00: keynumber+=10; if(keynumber9999)keynumber=0; write(); delay(15); break; case 0x01: keynumber-=10; if(keynumber0)keynumber=9999; write(); dela

6、y(15); break; default : break; /for3.2 AD采样程序3.2.1程序设计思路此程序相对简单,只需要用ADC中断获取通道的采样值,再将采样值在数码管上显示即可。3.2.2 程序模块/ADC中断,获取通道采样值;interrupt void adc_isr(void) Voltage00 = AdcResult.ADCRESULT0;/ 模数转换结果由 ADCINA0 通道采样产生 Voltage01 = AdcResult.ADCRESULT1;/ 模数转换结果由 ADCINA1 通道采样产生 Voltage02 = AdcResult.ADCRESULT2;

7、/ 模数转换结果由 ADCINA2 通道采样产生 Voltage03 = AdcResult.ADCRESULT3;/ 模数转换结果由 ADCINA3 通道采样产生 Voltage04 = AdcResult.ADCRESULT4;/ 模数转换结果由 ADCINA4 通道采样产生/ 28027 缺 ADCINA5 ADCRESULT5 Voltage05 = AdcResult.ADCRESULT6;/ 模数转换结果由 ADCINA6 通道采样产生 Voltage06 = AdcResult.ADCRESULT7;/ 模数转换结果由 ADCINA7 通道采样产生/ 28027 缺 ADCINB

8、0 ADCRESULT8 Voltage07 = AdcResult.ADCRESULT9;/ 模数转换结果由 ADCINB1 通道采样产生 Voltage08 = AdcResult.ADCRESULT10;/ 模数转换结果由 ADCINB2 通道采样产生 Voltage09 = AdcResult.ADCRESULT11;/ 模数转换结果由 ADCINB3 通道采样产生 Voltage010 = AdcResult.ADCRESULT12;/ 模数转换结果由 ADCINB4 通道采样产生/ 28027 缺 ADCINB5 ADCRESULT13 Voltage011 = AdcResult

9、.ADCRESULT14;/ 模数转换结果由 ADCINB6 通道采样产生 Voltage012 = AdcResult.ADCRESULT15;/ 模数转换结果由 ADCINB7 通道采样产生 AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;/Clear ADCINT1 flag reinitialize for next SOC PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; / Acknowledge interrupt to PIE return;/for循环 for(;) /计算每一位的数值,并显示; qw = Voltage

10、00/1000;bw = (Voltage00 - 1000*qw)/100;sw = (Voltage00 - 1000*qw - 100*bw)/10;gw = Voltage00 - 1000*qw - 100*bw - 10*sw;qw1 = Voltage01/1000;bw1 = (Voltage01 - 1000*qw1)/100;sw1 = (Voltage01 - 1000*qw1 - 100*bw1)/10;gw1 = Voltage01 - 1000*qw1 - 100*bw1 - 10*sw1; Write_7281(0x15,(0x70+qw); / 向最右边算起第8位写0 Write_7281(0x15,(0x60+bw);/ 向最右边算起第7位写0 Write_7281(0x15,(0x50+sw);/ 向最右边算起第6位写0 Write_7281(0x15,(0x40+gw); / 向最右边算起第5位写0 Write_7281(0x15,(0x30+qw1); / 向最右边算起第4位写0 Write_7281(0x15,(0x20+bw1);/ 向最右边算起第3位写0 Write_7281(0x15,(0x10+sw1);/ 向最右边算起第2位写0 Write_7281(0x15,(0x00+g

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号