直流电机转速控制Word格式文档下载.docx
《直流电机转速控制Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《直流电机转速控制Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
键盘程序计算键号的方法是先确定列线号,再与键号寄存器内容相加得到按键号。
再通过按键号查表跳转到按键的功能模块,由于按键的不同,从而实现单片机控制直流电机转速功能。
1.4显示器设计
这里选用六个共阴极数码管显示脉冲数,采用动态扫描显示,当有键盘按下时,则数码管显示按键的内容。
此处当键盘输入中断产生时,显示的是由霍尔元件采集来的脉冲数,由十六进制转换为十进制后存入显示缓冲区,再查表显示出想要得到的数字。
当电机停止时,数码管显示为零。
预显示的6位数据分别存放在单片机的RAM单元7AH~7FH中,作为显示缓冲单元,由8155的PB口输出。
PA口输出扫描信号,通过反相驱动器去逐个点亮各位LED,8155I/O口的地址为7F00~7F05H。
1.5霍尔转速传感器设计
霍尔转速传感器的主要工作原理是霍尔效应,也就是当转动的金属部件通过霍尔传感器的磁场时会引起电势的变化,通过对电势的测量就可以得到被测量对象的转速值。
霍尔转速传感器的主要组成部分是传感头和齿圈,而传感头又是由霍尔元件、永磁体和电子电路组成的。
霍尔器件是有半导体材料制成的一种薄片,器件的长、宽、高分别为l、b、d。
若在垂直于薄片平面(沿厚度d)方向施加外加磁场B,在沿l方向的两个端面加以外电场,则有一定的电流经过。
由于电子在磁场中运动,所以将受到一个洛仑磁力,其大小为:
fl=qVB
式中:
fl――洛仑磁力,q――载流子电荷,V――载流子运动速度,B――磁感应强度。
这样使电子的运动轨迹发生偏移,在霍尔元器件薄片的两个侧面分别产生电子积聚或电荷过剩,形成霍尔电场,霍尔元器件两个侧面间的电位差UH称为霍尔电压。
霍尔电压大小为:
UH=RH×
I×
B/d(mV)
RH---霍尔常数,d---元件厚度,B---磁感应强度,I---控制电流,设KH=RH/d,则UH=KH×
B(mV)
KH为霍尔器件的灵敏系数(mV/mA/T),它表示该霍尔元件在单位磁感应强度和单位控制电流下输出霍尔电动势的大小。
应注意,当电磁感应强度B反向时,霍尔电动势也反向。
霍尔转速传感器就是通过磁力线密度的变化,在磁力线穿过传感器上的感应元件时,产生霍尔电势。
霍尔转速传感器的霍尔元件在产生霍尔电势后,会将其转换为交变电信号,最后传感器的内置电路会将信号调整和放大,输出矩形脉冲信号,其频率和转速成正比,测出脉冲的周期或频率即可计算出转速。
霍尔元件测速原理图
第2章总程序方框图设计
第3章总程序设计
ORG0000H
AJMPMAIN
ORG000BH
AJMPT0INT
ORG001BH
AJMPT1INT
ORG0100H
MAIN:
初始化
SETBP1.0启动指示灯灭
SETBP1.1反向指示灯灭
MOV50H,#00H
MOV51H,#00H
ACALLSTART设置初始DA数据
LOOP:
ACALLSHOW显示转速
ACALLKEY键盘扫描
ACALLKYM键义功能跳转
AJMPLOOP
SHOW:
ACALLCOUNT计算脉冲频率
ACALLTRANSFORM将16进制计时数转换为十进制
ACALLDISP显示
RET
START:
MOVA,#80H
MOVDPTR,#0FEFFH
MOVX@DPTR,A
MOVDPTR,#7FFFH
键盘扫描程序,无键按下则R4返回0FFH,有键按下则R4返回键值
KEY:
MOVDPTR,#7F00H
MOVA,#03H
MOVR4,#00H
MOVR2,#01H
KEY1:
MOVDPTR,#7F01H
MOVA,R2
INCDPTR
MOVXA,@DPTR
JBACC.0,KEY2
MOVA,#00H
AJMPKEY4
KEY2:
JBACC.1,KEY3
MOVA,#01H
KEY3:
JBACC.2,NEXT
MOVA,#02H
KEY4:
ADDA,R4
MOVR4,A
NEXT:
MOVA,R4
ADDA,#03H
JBACC.2,NEXT1
RLA
MOVR2,A
AJMPKEY1
NEXT1:
MOVR4,#0FFH
键义跳转程序
KYM:
MOVA,R4判别有无键按下
CJNEA,#0FFH,KYM1
KYM1:
CJNEA,#08H,KYM2判别开启键是否按下
XRL51H,A
KYM2:
MOVA,51H
JZKYM4
CLRP1.0开启指示灯亮
CJNEA,#07H,KYM3判别反向键是否按下
XRL50H,A
KYM3:
MOVA,50H
JNZKYMB
AJMPKYMF
KYM4:
SETBP1.0开启指示灯灭
KYMF:
正向
SETBP1.1
MOVDPTR,#TBJ1
MOVB,#02H
MULAB;
A
JMP@A+DPTR
TBJ1:
AJMPPROGF1
AJMPPROGF2
AJMPPROGF3
AJMPPROGF4
AJMPPROGFF
AJMPPROGBB
AJMPPROGSP
KYMB:
反向
CLRP1.1
MOVDPTR,#TBJ2
TBJ2:
AJMPPROGB1
AJMPPROGB2
AJMPPROGB3
AJMPPROGB4
向DA输出数据
PROGF1:
MOVR2,#0A0H
AJMPDAC0832
PROGF2:
MOVR2,#0C0H
PROGF3:
MOVR2,#0E0H
PROGF4:
MOVR2,#0FFH
PROGB1:
MOVR2,#60H
PROGB2:
MOVR2,#40H
PROGB3:
MOVR2,#20H
PROGB4:
MOVR2,#00H
PROGFF:
ADDA,R2
PROGBB:
SUBBA,#02H
PROGSP:
MOVR2,#80H
DAC0832:
MOVX@DPTR,A
ACALLDELAY
AJMPSHOW
计算脉冲频率
COUNT:
MOVR2,#64H
MOV52H,#00H
MOV53H,#00H
MOV54H,#00H
MOVIE,#8AH
MOVTMOD,#11H
MOVTH1,#00H
MOVTL1,#00H
SETBTR1
MOVTH0,#0D8H
MOVTL0,#0F0H
SETBTR0
SJMP$
T0INT:
DJNZR2,COUNT1
AJMPCOUNT2
COUNT1:
RETI
T1INT:
MOV53H,TH1
MOV54H,TL1
COUNT2:
CLRTR1
CLRC
MOVA,TL1
ADDCA,54H
MOV54H,A
MOVA,TH1
ADDCA,53H
MOV53H,A
JNCCOUNT3
MOV52H,#01H
COUNT3:
十六进制转化为十进制
TRANSFORM:
MOVR0,54H
MOVR1,53H
MOVR2,52H
CLRA
MOVR3,A
MOVR5,A
MOVR6,#14H
TRANSFORM1:
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
MOVR1,A