单片机.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

授课日期班次授课时数2课题:任务二:P1口外接8只LED发光二极管模拟彩灯(一)教学目的:掌握MCS-51的数据传送类指令以及数据存储空间重点:MCS-51的数据传送类指令难点:MCS-51的数据传送类指令教具:多媒体作业:3.63.9自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程:一、复习提问单片机内部结构二、新授由任务二:P1口外接8只LED模拟彩灯引入本次课内容1.硬件电路与工作原理详细描述本次任务,根据任务要求分析硬件构成并画出硬件电路2.程序设计3.源程序的编辑、编译、下载4.相关知识1)MCS-51的数据传送类指令2)MCS-51内部的数据存储空间5.课堂小结课后小结:3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.1硬件电路与工作原理任务描述:利用P1口外接的8只LED发光二极管模拟彩灯1、硬件电路3.1任务二P1口外接8只LED发光二极管模拟彩灯2、工作原理当P1.0~P1.7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。例如使(P1)=01010101B=55H,D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=10101010B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。实现上述8只LED发光二极管控制的程序非常简单,可以用不同的指令来编程。以下是几种模式彩灯的控制程序。1、将立即数送P1口的程序ORG0000H;定义程序从程序存贮器0000H单元开始存放LOOP:MOVP1,#55H;立即数55H送P1口,4只LED亮SJMPLOOP;原地踏步END;程序结束第一条指令指明程序在程序存贮中的存贮位置,第二条指令将立即数55H传送到P1口,对应的LED灯亮,第三条指令是一条无条件转移指令,即单片机执行完上一条指令后,会不断反复指行这条指令,直到电源断电,第四条是程序结束指令3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.2控制程序2、通过累加器A控制P1口的程序ORG0000HLOOP:MOVA,#0AAH;将立即数AAH送累加器AMOVP1,A;累加器A中的数送P1端口SJMPLOOP;转移到LOOPEND3.1任务二P1口外接8只LED发光二极管模拟彩灯3、流水式彩灯程序最简单的流水式彩灯程序也是简单的程序流程图如右图开始55H送P1口延时0.3秒AAH送P1口延时0.3秒3.1任务二P1口外接8只LED发光二极管模拟彩灯ORG0000HLOOP:MOVP1,#55H;将立即数55H送P1端口LCALLTIME;调延时子程序TIMEMOVP1,#0AAH;将立即数AAH送P1端口LCALLTIME;调延时子程序TIMESJMPLOOP;转移到LOOPTIME:MOVR6,#200;延时子程序TIMETIME1:MOVR7,#200TIME2:NOPNOPNOPDJNZR7,TIME2DJNZR6,TIME1RETEND程序如下:3.1任务二P1口外接8只LED发光二极管模拟彩灯4、开幕式与闭幕式彩灯程序ORG0000HLJMPMAIN;跳转到主程序ORG0030HMAIN:MOVR0,#8;R0送循环次数8MOVDPTR,#TAB;给数据指针赋值LOOP:MOVA,#00H;MOVCA,@A+DPTRMOVP1,ALCALLTIMEINCDPLDJNZR0,LOOPSJMPMAINTIME:MOVR6,#200TIME1:MOVR7,#200TIME2:NOPNOPNOPDJNZR7,TIME2DJNZR6,TIME1RETTAB:DB81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFHEND3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.3源程序的编辑、编译、下载打开“伟福”模拟仿真软件进行程序的编辑、编译。1、正确选择单片机类型8751或80312、正确选择编译器-伟福编译器3、选择模拟仿真功能4、打开或新建文件进行编辑5、编译打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。1、编译成功后打开下载软件2、选择好单片机89S51并测试3、打开伟福6000编译生成的.BIN或.HEX文件4、选择自动写完成擦除、写、读、校验过程5、观看运行结果3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?数据传送指令共有29条,数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令,数据传送指令不影响标志C,AC和OV,但可能会对奇偶标志P有影响。MOVA,data;(data)→(A)直接单元地址中的内容送到累加器AMOVA,#data;#data→(A)立即数送到累加器A中MOVA,Rn;(Rn)→(A)Rn中的内容送到累加器A中MOVA,@Ri;((Ri))→(A)Ri内容指向的地址单元中的内容送到累加器A以累加器A为目的操作数类指令(4条)3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?以寄存器Rn为目的操作数的指令(3条)这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器Rn中。有直接、立即和寄存器寻址方式:MOVRn,data;(data)→(Rn)直接寻址单元中的内容送到寄存器Rn中MOVRn,#data;#data→(Rn)立即数直接送到寄存器Rn中MOVRn,A;(A)→(Rn)累加器A中的内容送到寄存器Rn中3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?以直接地址为目的操作数的指令(5条)这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式:MOVdata,data;(data)→(data)直接地址单元中的内容送到直接地址单元MOVdata,#data;#data→(data)立即数送到直接地址单元MOVdata,A;(A)→(data)累加器A中的内容送到直接地址单元MOVdata,Rn;(Rn)→(data)寄存器Rn中的内容送到直接地址单元MOVdata,@Ri;((Ri))→(data)寄存器Ri中的内容指定的地址单元中数据送到直接地址单元3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?以间接地址为目的操作数的指令(3条)这组指令的功能是把源操作数指定的内容送到以Ri中的内容为地址的片内RAM中。有直接、立即和寄存器3种寻址方式:MOV@Ri,data;(data)→((Ri))直接地址单元中的内容送到以Ri中的内容为地址的RAM单元MOV@Ri,#data;#data→((Ri))立即数送到以Ri中的内容为地址的RAM单元MOV@Ri,A;(A)→((Ri))累加器A中的内容送到以Ri中的内容为地址的RAM单元3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?查表指令(2条)这组指令的功能是对存放于程序存储器中的数据表格进行查找传送,使用变址寻址方式:MOVCA,@A+DPTR;((A))+(DPTR)→(A)表格地址单元中的内容送到累加器A中MOVCA,@A+PC;((PC))+1→(A),((A))+(PC)→(A)表格地址单元中的内容送到累加器A中3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?累加器A与片外数据存储器RAM传送指令(4条)这4条指令的作用是累加器A与片外RAM间的数据传送。使用寄存器寻址方式:MOVX@DPTR,A;(A)→((DPTR))累加器中的内容送到数据指针指向片外RAM地址中MOVXA,@DPTR;((DPTR))→(A)数据指针指向片外RAM地址中的内容送到累加器A中MOVXA,@Ri;((Ri))→(A)寄存器Ri指向片外RAM地址中的内容送到累加器A中MOVX@Ri,A;(A)→((Ri))累加器中的内容送到寄存器Ri指向片外RAM地址中3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?堆栈操作类指令(2条)这类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。这类指令只有两条,下述的第一条常称为入栈操作指令,第二条称为出栈操作指令。需要指出的是,单片机开机复位后,(SP)默认为07H,但一般都需要重新赋值,设置新的SP首址。入栈的第一个数据必须存放于SP+1所指存储单元,故实际的堆栈底为SP+1所指的存储单元。PUSHdata;(SP)+1→(SP),(data)→(SP)堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中POPdata;(SP)→(data)(SP)-1→(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?交换指令(5条)这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。XCHA,Rn;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换XCHA,@Ri;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换XCHA,data;(A)←→(data)累加器与直接地址单元中的内容互换XCHDA,@Ri;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换SWAPA;(A3-0)←→(A7-4)累加器中的内容高低半字节互换3.1任务二P1口外接8只LED发光二极管模拟彩灯3.1.4相关知识1、什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?16位数据传送指令(1条)这条指令的功能是把16位常数送入数据指针寄存器。MOVDPTR,#data16;#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL课堂小结:1、任务二的硬件电路与工作原理2、怎样使发光二极管发亮?3、什么是数据传送操作和数据传送指令?4、MCS-51单片机有哪些数据传送指令?作业:P693.63.9

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功