一、设计题目:直流电机调速二、设计思路1
问题的提出能否以单片机现有资源模拟调整直流电动机的转速
分析问题的功能(1)
0 引脚输出低频脉宽调制信号(PWM),PWM 信号的脉冲占空比(脉 动电压的高电平常间占周期比)可以通过和 P1 连接的按键设定,从而调整直 流电动机的转速
软件设计:按问题功能分模块,简述各模块功能
根据实际构思程序分为两个模块模块 1 为通过计数来控制对 P1
0 的置 1 和清 0;模块 2 为根据按键设置改变输出脉冲的占空比
三、详细设计:1
硬件详细设计:(1)
电路图:JK6IJK17I ©Mu-GND(2)
进行硬件资源分配P1
0 连 ZDJ-A,输出 PWM 波,实现电动机调速;P1
1 连 KEY1,增加占空比,使电机加速;P1
2 连 KEY2,减小占空比,使电机减速;P3
0 连蜂鸣器,当加速到最大值或减速到最小值蜂鸣器会报警;INT0 连 KEY3,使直流电机停机
软件详细设计:(1)地址模块设定主程序和中断服务程序初始地址ORG 80HAJMP MAINORG83HAJMPSTOPORG 8BHAJMP INTT0ORG 81H(2)主程序准备模块为定时器、堆栈栈底地址、软件计数值、赋初值,选择定时器 2 工作方式,允许定时器 0、外部中断,打开总中断、定时器 0 中断和外部中断
MAIN:MOVSP,#60H;给堆栈指针赋初值MOVPWMH,#03H;给定初始高电平脉冲个数MOVCOUNTER,#01HMOVPWM,#0AHMOVTMOD,#02H;定时器 0 在模式 2 下工作MOVTL0,#48H;定时器每 2us 产生一次溢出MOVTH0,#48H;自动重装的值SETBET0;使能定时器 0 中断SETBEA;使能总中断SETBPX0;使外部中断 0 为最高优先中断SETBTR0;开始