好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机编程的设计ppt课件.ppt

29页
  • 卖家[上传人]:公****
  • 文档编号:567574079
  • 上传时间:2024-07-21
  • 文档格式:PPT
  • 文档大小:991.50KB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单片机原理及应用6程序设计及应用实例1 单片机编程步骤n建立数学模型n绘制流程图n分配地址和寄存器n编写程序2 实例n2003年全国大学生电子年全国大学生电子设计竞赛试题设计竞赛试题 n液体点滴速度监控装置液体点滴速度监控装置 n设计并制作一个液体点设计并制作一个液体点滴速度监测与控制装置,滴速度监测与控制装置,示意图如右图所示示意图如右图所示h1h2电动机滑轮点滴移动支架储液瓶受液瓶滴斗滴速夹3 n 1、基本要求、基本要求n(1)在滴斗处检测点滴速度,并制作一个数显装置,能动态显示点滴速度(滴/分)n(2)通过改变h2控制点滴速度,如右图所示;也可以通过控制输液软管夹头的松紧等其它方式来控制点滴速度点滴速度可用键盘设定并显示,设定范围为20~150(滴/分),控制误差范围为设定值10%1滴n(3)调整时间≤3分钟(从改变设定值起到点滴速度基本稳定,能人工读出数据为止)n(4)当h1降到警戒值(2~3cm)时,能发出报警信号4 n说明n1、控制电机类型不限,其安装位置及安装方式自定n2、储液瓶用医用250毫升注射液玻璃瓶(瓶中为无色透明液体)n3、受液瓶用1.25升的饮料瓶n4、点滴器采用针柄颜色为深蓝色的医用一次性输液器(滴管滴出20点蒸馏水相当于1ml±0.1ml)。

      n5、赛区测试时,仅提供医用移动式点滴支架,其高度约1.8m,也可自带支架;测试所需其它设备自备n6、滴速夹在测试开始后不允许调节5 n2、发挥部分、发挥部分n设计并制作一个由主站控制16个从站的有线监控系统16个从站中,只有一个从站是按基本要求制作n的一套点滴速度监控装置,其它从站为模拟从站 (仅要求制作一个模拟从站)n(1)主站功能: na.具有定点和巡回检测两种方式nb.可显示从站传输过来的从站号和点滴速度nc.在巡回检测时,主站能任意设定要查询的从站数量、从站号和各从站的点滴速度 nd.收到从站发来的报警信号后,能声光报警并显示相应的从站号;可用手动方式解除报警状态6 n(2)从站功能:na.能输出从站号、点滴速度和报警信号;从站号和点滴速度可以任意设定nb.接收主站设定的点滴速度信息并显示nc.对异常情况进行报警n(3)主站和从站间的通信方式不限,通信协议自定,但应尽量减少信号传输线的数量n(4)其它7 设计过程n建立数学模型n点滴速度=f(h2)nH1<(2~3cm),报警n难点:nf(h2)未知???8 9 绘制流程图设置点滴速度测量点滴速度比较点滴速度报警并结束控制调整H2比较H110 任务划分(1)步进电机正反转控制11 步进电机正反转控制nA B C 为电机的3个绕组n1 单3拍控制方式 A B C A ….(正转), A C B A ….(反转),n2 六拍控制方式 A AB B BC C CA A ….(正转),, A AC C CB B BA A ….(反转),12 步进电机正反转控制n确定正转还是反转n将对应的表放入DPTRn查表nLOOP:JNB P1.6,POSn JNB P1.7,NEGn AJMP LOOPnPOS: MOV DPTR,#TABLE1n LCALL TABSCHn AJMP LOOPnNEG: MOV DPTR,#TABLE2n LCALL TABSCHn AJMP LOOPnTABSCH:nMOV R7,#06HnLOOP2:nMOVX A,@DPTRnMOV P1,AnINC DPTRnLCALL DELAYnDJNZ R7,LOOP2nRETnTABLE1: 0F1H,0F3H,0F2H, 0F1H,0F3H,0F2HnTABLE2: 0F1H,0F2H,0F3H, 0F1H,0F2H,0F3H13 模型(2)直流马达的转速控制14 设计举例(2)直流马达的转速控制15 设计举例(2)直流马达的转速控制16 直流马达的转速控制n MOV P1,#FFHnCONT: SETB P3.4n MOV R3,P1nLOOP: LCALL DELAYn DJNZ R3,LOOPn CLR P3.4n MOV A,P1n CPL An INC A n XCH A,R3nLOOP1: LCALL DELAYn DJNZ R3,LOOP1 n AJMP17 模型3(频率测量---点滴测速)n采集点滴信息n计时n计数n换算流速18 2 常见程序结构n参数传递n例2.1:在MAA单元有两个十六进制数,将它们分别转换成ASCII码,存入ASC及ASC+1单元。

      n解:因为要进行两次转换,所以可用子程序来完成,参数传递用堆栈来完成nSTAT: PUSH MAA ;将16进制参数压入堆栈n ACALL CNV;调用转换子程序n POP ASC;返回参数送ASC单元n MOV A,MAA ;MAA单元内容送An SWAP A;高、低4位交换n PUSH ACC;将第二个16进制数压入堆栈n ACALL CNV;再次调用子程序n POP ASC+1 ;存第二个ASCII码 WAIT: SJMP WAIP;暂停19 CNV子程序n CNV: n DEC SP ;修改SP到参数位置n DEC SPn POP ACC;弹出参数到An ANL A,#0FH;屏蔽高四位n CJNE A,#0AH,NEXT;16进制数转为ASCII码n AJMP L1n NEXT: n ADD A,#37Hn SJMP L2nL1: ADD A,#30HnL2: PUSH ACC;参数压入堆栈n INC SP;修改SP到返回地址n INC SPn RET20 参数传递用地址指针nMOV A,#MAAnACALL CNVnCNV:nMOV R0, AnMOV A,@R0n……21 程序结构n顺序结构程序设计 n例2.2:将内部RAM 51H、52H两个单元中的无符号数相加,和存入R0(高位)及R1(低位)。

      n解:两个单元单字节数相加,和可能超过一个字节,要按双字节来处理22 nMOV A,51H;取51H单元值给AnADD A,52H;把(51H)+(52H)的值给A,影响CynMOV R1,A;暂存于R1中nCLR A;A清零nADDC A,#00H;Cy送入高位nMOV R0,A;高位存入R023 分支程序设计 n例2.3:设变量X存于内部RAM 40H单元,函数值Y存于41H单元,试根据下式对Y赋值24 n MOV A,40H;取数n JZ ZERO;(A)为0,则转ZEROn JB ACC.7,STORE; (A)为负数,转STOREn MOV A,#02H;(A)为正数,则赋值2n SJMP STOREn ZERO: MOV A,#0n STORE: MOV 21H,A25 n计数器控制循环计数器控制循环n例例2.4:从:从32H单元开始存单元开始存放一数据块,其长度存放放一数据块,其长度存放在在25H单元,编写一个数单元,编写一个数据块求和程序,要求将和据块求和程序,要求将和存入存入26H单元,设和不超单元,设和不超过过255.26 n CLR A n MOV R2,25H;取字节数 n MOV R1,#32H ;取地址nLOOP: ADD A,@R1 ;求和n INC R1 ;地址加1nDJNZ R2,LOOP ;控制循环是否结束n MOV 26H,A ;存入结果27 条件控制的循环条件控制的循环n例2.5:设字符串放在内部RAM 30H开始的单元中,以“$”作结束标志,现要求计算该字符串长度,并把计算结果放在25H单元中。

      28 n CLR A n MOV R0,#30H ;取数nLOOP: n CJNE @R0,#24H,NEXT;与”$”(ASCII值为16进制24)比较n SJMP COMP ;找到“$“结束nNEXT: n INC A ;不为“$“,则计数器加1n INC R0 ;修改地址指针n SJMP LOOP nCOMP: n MOV 25H,A ;存结果29 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.