项目二位流水灯单片机控制学习教案.ppt
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPT 页数:26 大小:2.9MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

项目二位流水灯单片机控制学习教案.ppt

项目二位流水灯单片机控制学习教案.ppt

预览

免费试读已结束,剩余 16 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

项目目标通过单片机控制8个发光(fāꞬuānꞬ)二极管的顺序点亮,学会使用MCS-51单片机芯片的P1口进行输出控制,进一步学习汇编程序的分析方法,并能熟练运用RR、RL等基本指令。项目任务要求应用AT89C51芯片,控制8个发光二极管的有序亮灭,呈现流水灯的效果。设计单片机控制电路并编程实现此功能。项目分析利用单片机P1口连接(liánjiē)8个发光二极管,利用各引脚输出电位的变化,控制发光二极管的亮灭。P1口各引脚的电位变化可以通过指令来控制,为了清楚地分辨发光二极管的点亮和熄灭,在P1口输出信号由一种状态向另一种状态变化时,编写延时程序实现一定的时间间隔。项目预备知识(zhīshi):循环移位指令RLARRARLCARRCA例:CLRA将累加器A中的数据(shùjù)清零CPLA将累加器A中的数据(shùjù)取反在项目一和项目二中,为了能清晰的分辨出蜂鸣器的鸣叫和发光二极管的变化,我们进行了延时程序的编写。CPU执行完延时程序耗费的时间即是我们所要延时的时间,通常可以利用时钟频率、指令周期结合寄存器中的数据进行延时时间的计算(jìsuàn)。延时程序如下:DELAY:MOVR7,#10;1µSD0:MOVR6,#100;1µSD1:MOVR5,#200;1µSD2:DJNZR5,D2;2µSDJNZR6,D1;2µSDJNZR7,D0;2µSRET采用(cǎiyòng)12MHz的晶振,则一个机器周期是1µS,“MOVR7,#10”是一条单周期指令,执行1次需要1µS(关于指令的执行周期可以查附录二)。“DJNZR5,D2”是双机器周期指令,执行1次需要2×1=2µS。计算第1层循环(D2)的时间:200×2µS=400µS第2层循环(D1)的时间:(1+400+2)×100=40300µS第3层循环(D0)的时间:(1+40300+2)×10=403030µS≈0.4S(一)设计思路在AT89C51单片机芯片及基本外围电路组成的单片机最小系统基础上,利用P1口的8个引脚控制8个发光(fāɡuānɡ)二极管。由于发光(fāɡuānɡ)二极管具有普通二极管的共性----单向导电性,因此只要在其两极间加上合适的正向电压,发光(fāɡuānɡ)二极管即可点亮;将电压撤除或加反向电压,发光(fāɡuānɡ)二极管即熄灭。根据发光(fāɡuānɡ)二极管的特性,结合单片机P1口的输出信号,即可实现流水灯的控制效果。(二)电路设计1、P1口结构(jiégòu)及流水灯电路P1.0—P1.7:准双向I/O口(内置了上拉电阻(diànzǔ))(1)P1.0—P1.7作为(zuòwéi)输出口【输出1】发光二极管的连接方法:若将它们的阴极(yīnjí)连接在一起,阳极信号受控制,即构成共阴极(yīnjí)接法,如图a所示;若将它们的阳极连接在一起,阴极(yīnjí)信号受控制,则构成共阳极接法,如图b所示。由于P1口引脚输出高电位时电压大约是5V,为保证发光二极管的可靠工作,必须在发光二极管和单片机输出引脚间连接一只限流电阻。本项目选用硅型普通发光二极管,限流电阻取220Ω。综合以上的分析(fēnxī),得到下图所示电路原理图。(三)材料表从原理图可以得到(dédào)实现本项目所需的元器件。元器件的选择应该合理,以满足功能要求为原则,否则会造成资源的浪费。二、控制程序的编写(一)绘制程序流程图本控制使用(shǐyòng)简单程序设计中的顺序结构形式实现,程序结构流程图如下图。(二)编制(biānzhì)汇编源程序标号2、程序执行过程(guòchéng)在本项目中,利用P1口实现8个发光二极管的流水灯控制,主要(zhǔyào)利用了送数指令,将要显示的现象对应的数据通过P1口送出。在编写控制程序时,应首先将每个对应现象分析清楚,比如:要让L3亮,其余发光二极管灭,则P1口的数据应为11110111B;要让L7亮,则P1口的数据应为01111111B。然后找到能实现此操作的指令即可。下面使用我们在本项目中学习的移位指令编写程序如下:ORG0000HORG0F00HLJMPMAIN2DELAY:MOVR7,#10ORG0200HD0:MOVR6,#100MAIN2:MOVA,#0FEHD1:MOVR5,#200XH:MOVP1,AD2:DJNZR5,D2LCALLDELAYDJNZR6,D1RLADJNZR7,D0LJMPXHRETEND分析后可知,本段程序与项目中给出的参考程序功能相似,但是指令数量较少,所占存储器空间较小。根据发光二极管的点亮次序,通过分析每次给P1口所送数据(shùjù),发现不断变换的是数据(shùjù)中“0”的位置。若点亮次序是从L0~L7,则“