资源描述:
《单片机小灯闪烁控制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、小灯闪烁控制程序设计任务1:完成小灯闪烁一次的程序设计任务2:完成小灯连续闪烁控制程序设计任务1:完成小灯闪烁一次的程序设计任务描述:利用p1.0口实现一个发光二极管亮灭(闪烁)一次的系统设计。1.硬件电路设计:共阴极接法和共阳极接法。连接电路。你能说出图中硬件连接有什么问题吗?P1.02.软件设计:分析要求,绘制程序流程图。什么是流程图?为什么要绘制流程图?程序流程图是人们对解决问题的方法、思路或算法的一种描述。反映了程序执行的过程。符合人进行逻辑思考的习惯计算机从根本上来说,没有任何逻辑性,所以,你必须告诉它,先
2、做什么,后做什么,遇到什么情况又该做什么,等等流程图设计本身是一个逐步求精的过程,最终将任务划分为若干能由机器指令实现的小模块。2.软件设计:分析要求,绘制程序流程图。ORG0000HMOVP1,#00HMOVP1,#01HSJMP$END?2.软件设计:编写延时250ms的程序。*******软件延时250ms程序*********MOVR0,#0FAHLOW2:MOVR1,#0C8HLOW1:NOP;1usNOP;1usNOP;1usDJNZR1,LOW1;2usDJNZR0,LOW2知识点:1.汇编指令DJNZ
3、、NOP(1)条件转移指令DJNZ(减1非零转移指令)5助记符格式机器码(B)相应操作机器周期DJNZRn,rel11011rrrrelRn(Rn)-1,若(Rn)≠0,则PCPC+rel,否则顺序执行2DJNZdirect,rel11010101directrel(direct)(direct)-1,若(direct)≠0,则PCPC+rel,否则顺序执行22.软件设计:编写延时250ms的程序。*******软件延时250ms程序*********MOVR0,#0FAHLOW2:MOVR1,#0C8HLO
4、W1:NOP;1usNOP;1usNOP;1usDJNZR1,LOW1;2usDJNZR0,LOW2知识点:1.汇编指令DJNZ、NOP(2)空操作指令NOP助记符格式机器码(B)相应操作指令说明NOP00000000空操作消耗1个机器周期2.软件设计:编写延时250ms的程序。*******软件延时250ms程序*********MOVR0,#0FAHLOW2:MOVR1,#0C8HLOW1:NOP;1usNOP;1usNOP;1usDJNZR1,LOW1;2usDJNZR0,LOW2知识点:2.循环程序设计(1)
5、结构特点:利用转移指令反复运行需要多次重复的程序段。(2)实例:(3)循环程序的组成:1.初始化部分(设定循环次数等)。2.循环体(重复执行的部分,用于完成实际操作)3.循环控制(不断修改和判别循环变量,直至结束)。4.循环结束处理。循环程序设计延时程序中延时时间的设定:源程序:指令周期MOVR3,#(X)H2个T机器DEL2:MOVR4,#(Y)H2个T机器DEL1:NOP1个T机器NOP1个T机器DJNZR4,DEL12个T机器DJNZR3,DEL22个T机器指令周期、机器周期T机器与时钟周期T时钟的关系:T机器
6、=12T时钟=121/fosc=1us(假设晶振频率fosc为12M)延时时间的简化计算结果:(1+1+2)YX延时时间怎样计算?若想延时100ms,只需修改计数初始值,即(1+1+2)125200us=100ms#200#1252.软件设计:编写延时250ms的程序。*******软件延时250ms程序*********MOVR0,#0FAHLOW2:MOVR1,#0C8HLOW1:NOP;1usNOP;1usNOP;1usDJNZR1,LOW1;2usDJNZR0,LOW2试计算该程序的延时时间是否为2
7、50ms?(1+1+1+2)YX=5us0C8H0FAH=5us200250=250ms也可直接给出十进制数。实例实例:循环程序设计1S延时程序源程序:MOVR2,#10DEL3:MOVR3,#200DEL2:MOVR4,#125DEL1:NOPNOPDJNZR4,DEL1DJNZR3,DEL2DJNZR2,DEL3RET2.软件设计:编写总程序。任务2:完成小灯连续闪烁控制程序设计任务描述:利用p1.0口实现一个发光二极管连续亮灭(闪烁)的系统设计。1.硬件电路设计:不变!2.软件设计:流程图如下任务2
8、:完成小灯连续闪烁控制程序设计提问:1.若要改变小灯闪烁的快慢,如何做?(改变延时程序的延长时间就可以了。)2.延时程序的延长时间可不可以任意减小?(不可以,当减小到一定程度时,人眼无法分辨是否闪烁。)作业:请用软件设计一个延时0.5s的延时程序。