微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 电机转速测量控制程序

电机转速测量控制程序

时间:09-18 来源:互联网 点击:
以单片机8031为核心, 利用8279芯片实现按键输入和利用数码管显示所测转速,利用ADC0809将输入电压模拟量转化为数字量(实验箱内部已接好相关接口)控制电机转速的目的。然后利用DA0832将电机上的传感器配合DA0832的CKMOT接口将脉冲信号接到8031的INT0,利用外中断实现速度的测量,一次外中断会使速度计数器自动加一,利用定时器产生一秒的计时,得出一秒内速度计数器的值就可以得到电机的转速。另定时计数器每250MS产生一次定时器中断,利用中断来检测是否有新的控制信号输入,以达到实时控制转速的目的。
   ORG 0000hajmp mainORG 0003h  ;外部中断0AJMP ZSORG 000BH  ;定时计数器0中断AJMP JSORG 0100Hmain: mov sp,#60hCLR PSW.5    ;清零标志位SETB P1.0    ;置位检测位setb et0SETB IT0 ;外部中断0下降沿有效SETB EX0 ;允许T0中断mov DPTR,#5FFFH ;8279初始化MOV A,#0DCHMOVX @DPTR,AWAIT: MOVX A,@DPTRJB ACC.7,WAITMOV A,#00HMOVX @DPTR,AMOV A,#34HMOVX @DPTR,AMOV R0,#30H ;清零所用数值缓冲区CL:   MOV A,#00HMOV @R0,AINC R0CJNE R0,#36H,CLMOV 36H,#200MOV 37H,#20ACALL DIRTIME: MOV TMOD,#02H ;一秒定时MOV TH0,#6MOV TL0,#6SETB TR0  ;开启T0中断SETB EALOP2: JNB PSW.5,LOP3CLR PSW.5ACALL DIR   ;到一秒显示转速JMP LOP2LOP3: MOV DPTR,#9FF4H ;启动a/dMOVX @DPTR,A;ACALL DELAY1JB P1.0, $MOVX A,@DPTRMOV DPTR,#7FFFH ;启动d/aMOVX @DPTR,AAJMP LOP2JS:   PUSH ACC   ;T0中断子程序DJNZ 36H,OUTDJNZ 37H,nextajmp next1 next: MOV 36H,#200ajmp outnext1:SETB PSW.5MOV 33H,30HMOV 34H,31HMOV 35H,32HMOV 30H,#0MOV 31H,#0MOV 32H,#0MOV 36H,#200MOV 37H,#20OUT:  POP ACCRETIZS:   PUSH ACC   ;外部中断子程序CLR EX0MOV A,30HADD A,#1DA AMOV 30H,ACJNE A,#99H,OUT1MOV 30H,#0MOV A,31HADD A,#1DA AMOV 31H,ACJNE A,#99H,OUT1MOV 31H,#0MOV A,32HADD A,#1DA AMOV 32H,AOUT1: SETB EX0POP ACCRETI   DIR:  MOV R0,#33HMOV DPTR,#5FFFHMOV A,#92HMOVX @DPTR,AMOV R2,#03HLED:  MOV A,@R0ANL A,#0FHMOV DPTR,#LEDTABMOVC A,@A+DPTRMOV DPTR,#5EFFHMOVX @DPTR,AMOV A,@R0SWAP AANL A,#0FHMOV DPTR,#LEDTABMOVC A,@A+DPTRMOV DPTR,#5EFFHMOVX @DPTR,AINC R0DJNZ R2,LEDRETLEDTAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90HDELAY1: MOV R6,#5DELAY2: MOV R7,#200DJNZ R7,$DJNZ R6,DELAY2  RETEND

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top