第10章单片机应用系统设计10.1单片机应用系统设计的开发步骤一个完备的单片机应用系统包括硬件和软件两大部分,其中硬件部分包括扩展的存储器、键盘、显示、前向通道、后向通道、控制接口电路以及相关芯片的外围电路等,软件的功能就是指挥单片机按预定的功能要求进行操作的程序。开始明确任务芯片选型软、硬件功能划分硬件设计软件设计联机仿真调试排除故障、修改软件固化程序、运行系统完成10.1.1系统总体设计系统总体设计是单片机系统设计的前提,合理的总体设计是系统成败的关键。总体设计关键在于对系统功能和性能的认识和合理分析。系统单片机及关键芯片的选型,系统基本结构的确立和软、硬件功能的划分也是系统总体设计的重要组成部分。10.1.2硬件设计1.程序存储器2.数据存储器3.I/O接口4.总线驱动器5.抗干扰电路10.1.3软件设计开始系统定义软件结构设计建立数学模型绘制程序流程图编写程序汇编在线仿真调试有错否?修改程序固化结束YN1.系统定义(1)定义说明各输入/输出口的功能。(2)在程序存储器和数据存储器区域中,合理分配存储空间。(3)对面板控制开关、按键等输入量以及显示、打印等输出量也必须给予定义。(4)针对可能出现的由干扰引起的错误进行容错设计,给出错误处理方案。•2.软件结构设计用户实时鉴控程序模块1模块2模块n模块1.1模块2.1模块m.1模块n.1模块n.2.1…………调度调用10.1.4系统总体调试•(1)硬件调试(静态调试和动态调试)•(2)软件调试••(3)系统联调••(4)现场调试10.1.5程序固化,系统独立运行将程序固化在单片机系统的程序存储器当中,目标系统就可以独立运行了。目标样机独立运行一段时间进行老化后,如果没有故障产生,即可认为整个系统开发成功。10.2设计实例1—步进电机的控制•1.设计目的•(1)掌握单片机对步进电机的控制方法•(2)掌握步进电机正转、反转、速度及步数控制的方法•2.技术要求•(1)使用三向六拍步进电机,编程使步进电机正向/反向旋转10圈•(2)旋转时间为2秒•(3)旋转方向由手动控制•步进电机控制原理•(1)单相三拍方式:按单相绕组施加电流脉冲•正转:A→B→C→A•反转:A→C→B→A•(2)双相三拍方式:按双相绕组施加电流脉冲•正转:AB→BC→CA→AB•反转:AC→CB→BA→AC•(3)三相六拍方式:单相绕组和双相绕组交替施加电流脉冲•正转:A→AB→B→BC→C→CA→A•反转:A→AC→C→CB→B→BA→A3.设计方案•步进电机速度控制的方法就是改变各通电脉冲的时间间隔,由脉冲延时程序控制即可。在输出控制电平后,由延时程序控制每一步的时间,即可达到控制步进电机速度的目的。如本设计要求2秒旋转10圈,则每一步需要的时间为:•t=2s/10×N×Zr=2000ms/10×3×2×40=833μs。•其中N=MCC,即运行拍数,其中MC为绕组相数(本题为三相),C为状态系数。三拍时,C=1;六拍时,C=2。Zr为转子齿数(40个)。步进电机的步数控制由要求旋转圈数除以每一步旋转的角度即可。设计要求旋转10圈,则10×360o/1.5=2400圈(960H)。4.电路P1.2P1.1P1.074LS0474LS0474LS04+5V+5V+5V4N254N254N25+27VA相B相C相8051P1.4•5.参考程序•ORG1000H•AA1:MOVR3,#960H;确定步进电机前进步数•AA2:MOVR4,#00H•MOVDPTR,#STEP;控制模型首地址送DPTR•JNBP1.4,FAN;判断正转还是反转•ZHENG:MOVA,R4•MOVCA,@A+DPTR•JZAA2;旋转一圈后转回AA2•MOVP1,A;控制步进电机旋转•ACALLDELAY;延时,控制速度•INCR4;控制步数加1•DJNZR3,ZHENG;步数未完继续•RET•FAN:MOVA,R4;取反向控制模型偏移量•ADDA,#07H•MOVR4,A•AJAMPZHENG•DELAY:(延时833μs)•STEP:DB01H,03H,02H,06H,04H,05H,00H;正向控制模型•DB01H,05H,04H,06H,02H,03H,00H;反向控制模型10.3设计实例2—数字电压表的设计•END