微机原理及应用课程设计说明书微型直流电机调速系统设计Word文档下载推荐.docx
- 文档编号:17445727
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:24
- 大小:206.21KB
微机原理及应用课程设计说明书微型直流电机调速系统设计Word文档下载推荐.docx
《微机原理及应用课程设计说明书微型直流电机调速系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理及应用课程设计说明书微型直流电机调速系统设计Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
五、系统调试及结论……………………………………………………5
1.调试方法
2.重点问题及解决方法
3.运行结果及结论
六、设计体会……………………………………………………………6
参考文献………………………………………………………………7
一、系统功能要求分析
此设计要求利用实验装置,设计一个直流电机控制系统的原理线路,编制应用程序,实现直流电机转速控制的功能,并且进一步可增加转速测量的功能。
系统功能具体要求及分析如下:
(1)开始运行,电机停止:
未按任何键之前,设定初值,使经DA0832转换后的电流为零,电机不转。
(2)按档调速功能:
直流电机可有三个转速,分为一、二、三档,其中按下按键“一”电机在低速档运行;
按下按键“二”电机在中速档运行;
按下按键“三”电机在高速档运行。
(3)连续调速功能:
按下“加速”键,编程控制DA0832输入数字量累加,直流电机可在原速基础上升速;
按下“减速”键,编程控制DA0832输入数字量自减,直流电机可相对原速减速。
(4)停止功能:
设有停止键,控制电机的停止运行。
调节电位器改变DA0832的基准电压,使得初值00H对应的输出电流为0,从而电机停止运行。
(5)改变转向功能:
原理上,调节DAC0832的基准电压,使得某一中间值对应转速为零,则在输入数字量大于此值时为正电压,电机正转;
再输入数字量小于此值时为负电压,电极反转。
(6)测速功能:
在一定时间内对霍尔元件产生的脉冲数计数,从而求得电机转速,并在数码管显示。
二、方案设计及其说明
(一)硬件设计
在硬件上,所用到的芯片主要有:
CPU8086、并行通信接口芯片8255A、可编程定时计数芯片8253、可编程中断控制器8259A、以及键盘扫描显示芯片8279。
(1)电机转速的控制:
电机转速大小的控制可以通过改变加于电机两端的电压来实现,选用DAC0832芯片实现数字量到模拟量的转化,设置电机转速给定值,不同的数字量对应输出不同的电流,再通过一个高输入阻抗的线性运算放大器LM324得到相应的模拟电压信号,从而控制电机转速。
(2)按键状态的检测及显示:
设K1、K2、K3为一、二、三档,K4为停止键,K5、K6为加速和减速键。
选用8255芯片PA口读取按键状态从而控制电机在不同档运行以及电机加速或减速,并且可以通过8255的PB口输出控制相应按键指示灯的亮灭以及利用8279芯片得到数码管相应的显示,如:
在一档,其灯亮,且显示“1”。
(3)转速的测量及显示:
利用霍尔传感器产生转速脉冲,用8253芯片设计定时/计数电路通过脉冲计数测得转速。
可用8253的CT0记脉冲数,CT1定时到利用8259产生中断,显示计数。
经分析,实验时电机旋转一圈可产生4个脉冲,则可以定时0.25S产生中断,利用8279对计数进行显示,即为转速。
(二)软件设计
设计中用到的有8253、8255,8259的初始化程序,各开关状态检测及电机速度控制子程序,以及调用库函数DISPLAY8显示程序,中断服务程序,延时子程序等。
三、原理线路设计
3.1原理框图:
3.2工作原理说明
1、数模转换模块:
利用DAC0832芯片,其工作原理如下:
DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式。
其由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量与输入的数字量成正比,从而实现D\A转换。
DAC0832输出的是电流,本设计中需用输出电压控制电机转速,所以还必须经过一个外接的运算放大器转换成电压。
DAC0832外部线路如图所示。
2、按键控制模块:
利用并行接口通信8255芯片,其有三个8位的并行I/O端口为PA、PB、PC,一个控制端口,运用可编程功能对控制端口写入不同的控制字可定义PA、PB、PC的工作方式或者直接对C口进行操作。
8255有两个控制字如图:
图2.1C口置位/复位控制字图2.2工作方式控制字
在此设计中,用PA、和PB工作在基本输入输出方式,PA输入开关状态,PB作为输出口控制8个LED的亮灭。
8255接线原理如图2.3
图2.3
3、测速模块:
利用8253和8259芯片。
8253有3个完全独立的16位定时计数器:
CT0、CT1、CT2,均为减法计数器,可预置计数初值,有6种可选择的工作方式,写入相应控制字,以实现计数、定时、分频等功能。
8253接线原理如图3.1.
图3.1
在此设计中,选用计数器0工作在方式二作为计数器,对霍尔元件产生的转速脉冲进行计数;
用计数器1工作在方式二作为定时器,定时0.25S,可循环定时,每次定时到会产生负脉冲,利用其上升沿作为8259的中断信号,在中断服务中对所计数进行显示。
方式二为计数分频方式,工作方式如图3.2。
4、显示模块:
利用可编程键盘/显示接口8279,8279可为64键的接触式按键阵列提供扫描接口,显示部分能为发光二极管、数码管、液晶显示器等提供扫描显示接口。
由于它本身可提供扫描信号,因而可代替微处理器完成键盘和显示器的控制,单个芯片就能完成键盘输入和LED显示控制两种功能。
在此设计中,通过调用8279显示函数在晶体管上显示开关状态和电机运行速度。
3.3操作时序分析
(1)开始运行时,电机停止,未按键前,状态灯全灭,状态显示00,转速显示00。
(2)按下K1键LED1亮,状态显示01,表示为一档,电机以低速运行,晶体管高两位显示相应速度。
(3)按下K2键LED2亮,状态显示02,表示为二档,电机以中速运行,晶体管高两位显示相应速度。
(4)按下K3键LED3亮,状态显示03,表示为三档,电机以高速运行,晶体管高两位显示相应速度。
(5)按下K4键LED4亮,状态显示04,为停止档,电机停止运行,晶体管高两位显示00。
(6)按下K5键LED5亮,状态显示AA,为连续加速档,电机在原速上逐渐加速,直至最高速度后以最高速度运行,速度显示增加至显示最高速。
(7)按下K6键LED6亮,状态显示DD,为连续减速档,电机在原速上逐渐减速,直至停止,速度显示逐减至显示00。
3.4特点说明
(1)在调速方面既可以直接的选择低、中、高某一档位让电机运行,要想更精准的调速,可使用连续加减速按键加或减至自己想要的速度让电机以此速度运行。
可见,此系统的调速是灵活的。
(2)本设计有速度显示功能,将此刻的电机转速成为可观量,切实的掌握电机转速,从而按主覌要求要求进行调速。
(3)在测速时,采用定时到产生中断进行计数显示的方法,时延比较小,较为精确。
四、程序设计
4.1程序结构及流程
中断服务程序流程:
电机加速程序流程:
4.2程序算法分析
在主程序中有8253、8255、8259的初始化以及开关状态检测程序,检测到某开关闭合转入相应的档位子程序或连续加减速子程序并进行速度的输出,控制电机的调速。
为实现测速,加入了中断服务程序,0.25S产生一次中断,即0.25S采一次值,进入中断服务程序,锁存计数值并计算得所记脉冲数进行显示,即为电机的转速。
4.3关键程序段说明
1、显示程序段
LedDisplayPROCNEAR;
输出显示速度,状态
CALLDELAY
MOVAL,COUNTER2
MOVAH,AL
ANDAL,0FH;
取低四位
MOVBuffer,AL;
显示速度低位
ANDAH,0F0H;
取高四位
RORAH,4
MOVBuffer+1,AH;
;
显示速度高位
MOVBuffer+2,10H;
中间4位不需要显示
MOVBuffer+3,10H
MOVBuffer+4,10H
MOVBuffer+5,10H
MOVAL,COUNTER1
ANDAL,0FH
MOVBuffer+6,AL;
显示状态低位
ANDAH,0F0H
RORAH,4
MOVBuffer+7,AH;
显示状态高位
LEASI,Buffer
CALLDELAY
CALLDisplay8;
调用现实函数
RET
LedDisplayENDP
2、中断服务程序段
INT_0PROCNEAR
CLI;
关中断
PUSHDX;
寄存器入栈保护
PUSHAX
MOVDX,TCL;
写8253控制字
MOVAL,00000000B
OUTDX,AL
XORBX,BX;
BX清零
MOVDX,T0;
读T0的低字节,存放BL
INAL,DX
MOVBL,AL
INAL,DX;
读T0的高字节,存放BH
MOVBH,AL
MOVAX,Counter3;
取T0上次中断时的CE
SUBAX,BX;
计算脉冲数存放AX
MOVCounter3,BX;
中断后的CE存放Counter3数组
MOVCOUNTER1,AL;
脉冲数输出显示
MOVDX,IO8259_0;
8259的IR0中断
MOVAL,20H
OUTDX,AL
POPAX;
寄存器出栈
POPDX
STI;
开中断
IRET;
中断返回
INT_0ENDP
4.4源程序清单(见附录)
五、系统调试及结论
5.1调试方法
先在星研软件下编好程序进行编译链接,若无语法错误,则与硬件连接,全速运行,看预期功能是否实现,若有逻辑错误,可进行:
(1)加跳转指令进行调试:
若程序中出现逻辑错误,可在某一句的后边加跳转指令,跳过下一段指令,以检测前面的程序是否有问题。
这样可以缩小查找问题的范围,以发现问题之所在。
(2)单步进入进行调试:
星研软件中可进行单步调试,这样可以掌握指令的执行顺序及跳转的位置,并可观察每一步运行后寄存器内值的变化,从而发现一些问题。
5.2重点问题及解决方法
问题一:
状态灯显示混乱,开关与LED没有对应显示。
解决:
通过对实验箱上的LED进行电平测试,发现所采用的8个LED灯是在接低电平的情况下亮的,由此,应对8255的A口输入量取反后再由B口输出控制灯的亮灭,这样开关状态刚好与状态灯的亮灭对应,解决了此问题。
问题二:
测速时,速度显示为不变值或一直显示00。
经请教老师,发现是设计思路有误。
开始时,我们是用8255检测按键状态,通过对PC口的置位和复位控制计数器8253的门控信号,以此控制计数的停止来产生中断再显示计数。
老师讲每个芯片的工作都是有时延的,这样连接下来,时延就比较大了,不能准确的测速,甚至不能正常的显示。
分析后我们直接用定时计数器1的OUT1作为8259的中断信号,利用其计数定时到的上升沿产生中断,对计数进行显示。
问题三:
测速时,电机以恒速运行,速度显示却不停变化。
8253计数器为减1计数,则初值减现值得计数值。
对程序进行调试分析,0.25S采一次数,发现在下一次计数时计数初值并没有重新装入,起初认为是8253计数器0工作方式的问题,但改变其工作方式并未解决问题,最后修改程序,用上次计完数的值减此次计数后的值得计数值进行显示,成为一个累减的过程。
这样修改后显示正确,但是减为零时的计数值需避过,否则会有错误。
问题四:
程序在单步运行时结果正确,全速运行时结果混乱。
原理上单步运行和全速运行所得结果是一样的,其差别主要在于单步时指令执行间时差更大,经分析,DAC0832的D/A转换是需要一定时间的,所以输出时必须要加延时程序,给它足够的转换时间。
问题五:
直流电机转速不受控制。
查资料知DAC0832输出的是电流,要输出电压,必须经过一个运算放大器转换。
5.3运行结果及结论
运行结果:
开始运行时,电机停止,状态灯全灭,速度显示为零,按下按键后,相应状态灯亮并显示相应的电机速度,按停止键后,电机停止运行。
结论:
运行结果与预期要求相符,利用实验装置完成小直流电机调速系统的原理线路设计,编制应用程序,实现了直流电机的转速控制和速度显示等一系列功能,达到了设计要求并且进行了功能的扩展。
六、设计体会
通过本次微机原理课程设计,我深刻体会到了微机原理课程的实用性及重要性。
让我知道学习并不是停留于课本和知识表面的,真正的学习是理论与时间的糅合,是将抽象化的知识变为切实可用的事物。
在设计的过程中,也是对自身的一种考验,考验知识的娴熟度,动手的能力,创新的思维,细心和耐心等,当然这也是一个发现不足的过程,知不足而后进,其中收益是很大的。
在设计的过程中,我们遇到了各种各样的问题,有失落过,却也有解决后的欣喜。
在摸索中,我进一步认识和掌握了各个芯片的功能及用法,练习了编程及调试,提高了独立思考的能力和解决问题的思维。
总之,在这几天中,自己的探索,老师的指导及与同学的讨论让我获益匪浅。
由于本次设计时间比较短,我们完成的设计达到了预期要求,但并不是尽善尽美的,还有很多进步的空间。
所以我会继续努力的,饱含信心和热情的去学习。
参考文献
[1]微机接口实验系统使用手册
[2]微机接口实验系统实验指导书
[3]微机原理及应用课程设计指导书
[4]微机原理及接口技术项目教程
[5]微型计算机原理及应用
附录:
源程序代码
.MODELTINY
EXTRNDisplay8:
NEAR
IO8259_0EQU0D000H
IO8259_1EQU0D001H
DAC0832EQU0F000H
PAEQU0E000H
PBEQU0E001H
PCEQU0E002H
PTLEQU0E003H
T0EQU0C000H
T1EQU0C001H
T2EQU0C002H
TCLEQU0C003H
.STACK100
.DATA
BUFFERDB8DUP(?
)
Counter1DB?
;
定义速度数组
Counter2DB?
定义电机状态数组
Counter3DW?
ReDisplayFlagDB0;
中断标志
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVES,AX
NOP;
CALLInit8259
CALLWriIntver
MOVDX,PTL;
8255初始化
MOVAL,10010000B
OUTDX,AL
MOVDX,DAC0832;
初速度为0
MOVAL,00H
MOVDX,TCL
MOVAL,00110010B;
计数器T0,工作方式1,初值0FFFFH
OUTDX,AL
MOVAL,01110100B;
定时器T1,工作方式2,实现0.25秒定时
MOVDX,T1;
定时器T1装初值
MOVAX,31250
MOVAL,AH
MOVDX,T0;
计数器T0装初值
MOVAX,200
AGAIN:
STI;
开中断
NOP
MOVCX,0FFFFH
LOOP$
MOVDX,PA;
读开关状态
INAL,DX
TESTAL,00000001B
JENEXT1
CALLONE
JMPAGAIN
NEXT1:
TESTAL,00000010B
JENEXT2
CALLTWO
NEXT2:
TESTAL,00000100B
JENEXT3
CALLTHREE
NEXT3:
TESTAL,00001000B
JEAA
CALLTINGZHI
AA:
TESTAL,00010000B
JECC
CALLJIASU
CC:
TESTAL,00100000B
JEWU
CALLJIANSU
WU:
NOTAL
MOVDX,PB
MOVCounter2,00H
;
CALLLedDisplay
CALLDELAY
NOP
CALLLedDisplay
JMPAGAIN
SHUCHU0:
CALLSHUCHU
JMPAGAIN
JIANSUPROCNEAR;
减速函数
POPBX
POPCX
POPAX
CMPAL,00H
JBESHUCHU0
SUBAL,05H
PUSHAX
PUSHCX
PUSHBX
MOVDX,DAC0832
MOVCounter2,0AAH
RET
JIANSUENDP
JIASUPROCNEAR;
加速函数
CMPAL,0FFH
JAESHUCHU0
ADDAL,05H
MOVCounter2,0DDH
JIASUENDP
ONEPROCNEAR;
1档运行函数
MOVAL,70H
MOVCounter2,01H
ONEENDP
TWOPROCNEAR;
2档运行函数
MOVAL,0A0H
MOVCounter2,02H
TWOENDP
THREEPROCNEAR;
3档运行函数
MOVAL,0F0H
MOVCounter2,03H
THREEENDP
TINGZHIPROCNEAR;
停止档位函数
MOVAL,0H
MOVCounter2,04H
RET
TINGZHIENDP
SHUCHUPROCNEAR;
速度输出函数
POPDX
PUSHAX;
保存原速度,以供连续调速
PUSHDX
SHUCHUENDP
Init8259PROCNEAR;
中断初始化
MOVDX,IO8259_0
MOVAL,13H
OUTDX,AL
MOVDX,IO8259_1
MOVAL,08H
OUTDX,AL
MOVAL,09H
MOVAL,0FEH
Init8259ENDP
WriIntverPROCNEAR;
中断向量表
PUSHES
MOVAX,0
MOVDI,20H
LEAAX,INT_0
STOSW
MOVAX,CS
POPES
WriIntverENDP
INT_0PROCNEAR
CLI
PUSHDX;
中断服务
PUSHAX
MOVREDISPLAYFLAG,1
MOVAL,00000000B
XORBX,BX
MOVDX,T0
INAL,DX
MOVBL,AL
MOVBH,AL
MOVAX,Counter3
SUBAX,BX
MOVCounter3,BX
MOVCOUNTER1,AL
MOVDX,IO8259_0
MOVAL,20H
MOVAX,0FFFFH
POPAX
POPDX
STI
IRET
INT_0ENDP
LedDisplayP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 课程设计 说明书 微型 直流电机 调速 系统 设计