1、一、设计目的1了解直流电机控制原理。2学习单片机控制直流电机的编程方法。3了解单片机控制外部设备的常用电路。4学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。5通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。二、设计要求 1、 利用D/A电路,输出-8V到+8V的电压,控制直流电机。 2、电机速度可调,具有启动键、方向控制键及提示灯、加速键、减速键及停止键:S0键-升速,每按一次,电压值增大一个定值,转速提高。S
2、1键-减速,每按一次,电压值减小一个定值,转速降低。3、 利用霍尔元件感应电机转速,读出感应脉冲,从而计算出电机转速,用数码管显示出来。三、电路及连线设计DA_CS-CS1 脉冲输出- P3.4 -8到+8-直流电压P1.0-K0启动 P1.1-K1停止 P1.2-K2反方向运动P1.3-K3正方向减速 P1.4-K4正方向增速 P1.7-方向灯亮P1.5-K5反方向减速 P1.6-K6反方向加速 CS0地址译码-KEY/LED-CS四、使用说明 在电压允许范围内,直流电机的转速随着电压的升高而加快,若加上的电压为负电压,则电机会反向旋转。本实验仪的D/A变换可输出-8V到+8V的电压,将电压
3、经驱动后加在直流电机上,使其运转。通过单片机输出数据到D/A变换电路,控制电压的高低和正负,观察电机的旋转情况。在电机转盘上安装一个小磁芯,用霍尔元件感应电机转速,用单片机控制读回感应脉冲,从而测算出电机的转速。有兴趣的同学,可以做一个恒速的试验,即让电机转速保持一定。若电机转速偏低,则提高输出电压,若电机转速偏高,则降低输出电压。 首先给电机一定的阻力,让转速保持一定,然后稍微给加大阻力,观察D/A输出的电压是否能做出反应,再减小阻力,也观察D/A电压,有何变化。注意所加的阻力不能过大,以免电机烧毁。五、流程图设计否是六、程序设计如下:CS0832 EQU 09000HOUTBIT EQU
4、08002H ; 位控制口OUTSEG EQU 08004H ; 段控制口LEDBUF EQU 60H ; 显示缓冲NUM EQU 70H ; 显示的数据 ORG 0000H SJMP START ORG 0030HSTART: CLR P1.7 ; 指示是否反转 MOV DPTR,#CS0832 ; DPTR指针到电机控制口 MOV A,#080H ; 零电压对应值给寄存器A MOVX DPTR,A ; 电机转速为零 LJMP SUDUXIANSHI ; 速度显示ZZ: 正传开始 反转指示灯灭 MOV DPTR, #CS0832 ; MOV A,#0B0H ; 电机最小启动电压对应值给寄存器
5、A MOVX DPTR, A ; 给电机初始速度 LCALL DELAY ; 等待电机运转稳定FZ: SETB P1.7 ; 反转开始 反转指示灯亮 MOV A, #050H ; 反转时电机最小启动速度 反转初始速度JY : JB P1.1,TZ ; 停止键按下 到停止程序 JB P1.0,ZZ ; 启动按钮 到正传程序JB P1.6,FPDJ ;反转的检测 加速键按下 到加速程序 JB P1.5,FPDJN ; 减速键按下 到减速程序 JB P1.4,ZPDJ ;正转的检验 加速键按下 到加速 JB P1.3,ZPDJN ; 减速键按下 到减速 JB P1.2,FZ ; 反转键按下 到反转程
6、序TZ: LJMP START ; 停止 重新开始ZPDJ: CJNE A,#0F0H,JIA0 ; 正转的最大速度判断 LJMP JY ; 已是最大 不再加速 回到检验JIA0: JNC JY ; 超过最大 不加速 ADD A,#05H ; 加一定速度 电机速度增加ZPDJN: CJNE A,#080H,JIAN0 ; 正传最小速度判断 已是最小 不再减速JIAN0: JC JY ; 超过最小 不减速 SUBB A,#05H ; 减一定速度 电机速度减小FPDJ: CJNE A,#10H,JIA1 ; 反转的最大速度判断 已是最大 不再加速JIA1: DPTR指针到电机控制口 FPDJN:
7、CJNE A,080H,JIAN1 ; 反转最小速度判断JIAN1:SUDUXIANSHI: MOV 76H,A ; 将当前寄存器A中的内容给76H单元进行保存 MOV TMOD,#05H ; 方式控制字 T0设为计数器 MOV TH0,#00H ; 计数初值为0 MOV TL0,#00H SETB TR0 ; 开计数器 MOV 55H,#4 ; 延时约1SD01: MOV 56H,#250 D02: MOV 57H,#248 D03: DJNZ 57H,D03 DJNZ 56H,D02 DJNZ 55H,D01 CLR TR0 ; 1S到 关计数器 MOV R1,TH0 ; 送数 MOV R
8、0,TL0 MOV 70H,R0 MOV 71H,R1START2: MOV R4,#100 ; 显示次数START02: MOV SP, #40H ; 堆栈指针 MOV A, 70H ; 计数得到的低4位数给A MOV R0, #LEDBUF ; 缓冲地址 ANL A, #0FH ; 屏蔽高位,传送低位 MOV DPTR, #LEDMAP ; 表地址 MOVC A, A+DPTR ; 数字转换成显示码 MOV R0,A ; 显示码填入显示缓冲 INC R0 ; 缓冲地址加1 ANL A, #0F0H ; 屏蔽地位,传送高位 MOV A, 71H ; 计数得到的高4位给A 屏蔽高位,传送地位
9、屏蔽低位,传送高位 LJMP DISPLAYLED ; 到显示程序LEDMAP: ; 八段管显示码表格 DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71HDISPLAYLED: MOV R1, #4 ; 共4个八段管 MOV R2, #00000001B ; 从右边开始显示 MOV DPTR, #OUTBIT ; 位选 MOV A, #0 关所有八段管LOOP: MOV A, R0 MOV DPTR, #OUTSEG ; 段选 MOVX DPTR,A MOV DPTR, #OUT
10、BIT MOV A, R2 显示一位八段管 MOV 4AH,#10DL2: MOV 4BH, #200DL1: DJNZ 4BH, DL1 DJNZ 4AH, DL2 MOV A, R2 ; 显示下一位 RL A MOV R2, A INC R0 DJNZ R1, LOOP DJNZ R4,START02 MOV A,76H显示完成,跳回检验处DELAY: MOV R5,#12 ;延时子程序 约3SD1: MOV R6,#250 D2: MOV R7,#248 D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET七、设计总结: 1、熟悉掌握了伟福单片机试验箱,对单片机汇编语言的编写,试验箱的操作有进一步的了解。2、在学习实验的过程中,遇到了很多以前没遇到的问题。1)在开始写程序的时候,没有或加错加主程序与子程序的地址,是程序没法执行。2)有些情况下把语句写错如TMOD写成TOMD。使程序无法运行。3)八段管的位控制和段控制的地址开始不知
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1