MCS-51单片机模块实训一 LED控制

2019-04-15 17:03发布

  单片机控制单个LED             一,  实训教学目的 1,          从程序设计的角度初步了解单片机的内部结构 2,          了解单片机基本电路的组成 3,          学习proteuskeil 51protel等软件的使用 4,          编写程序控制LED闪烁,间隔时间不定   二,  主要元件的介绍。 1CPU AT89S51  AT89S51是一款低功耗,高性能的8位微处理器,有4KBZ可在系统编程(ISP) Flash闪速存储器,1000次擦写周期,它与工业标准的80C5180C52的指令集及输出PIN脚完全兼容。128X8-bit片内RAM32个可编程I/O脚,216-位定时/计数器,5个中断源,可编程全双工串行口,低功耗空闲模式和掉电模式。   2,晶体振荡器 12M晶体振荡器   3,发光二极管 8只发光二极管共阳连接,阴极与CPUP1端口相连,P1口输出低电平就亮。   三,  实训工作制作指导 1,学习使用Proteus仿真软件画出原理图。 2,熟悉汇编语言程序设计,学习使用Keil 51进行源代码编写 3,学习程序调试的方法   四,  电路原理图               五,  工作原理 8051系列单片机工作过程大体是这样:晶体振荡器为CPU提供时序,复位电路为CPU提供复位信号,接上电源,上电复位,CPU中各特殊功能寄存器复位PC=0HSP=07H, P0=P1=P2=P3=FFH, 其他都为0CPU根据PC中的地址从ROM00H地址开始取指令,寄存到IR寄存器中,PC中的地址自动加一,指到下一个地址空间,然后CPUIR中的指令送到ID寄存器进行解码,然后CPU根据解码的结果控制执行该指令,如果是多字节指令,则CPU继续按照PC中的地址从ROM中取下一或二个字节内容送IR,再送ID解码,并控制执行。重复这样的步骤实现程序的执行。 本节模块控制一个LED,麻雀虽小,也是五脏俱全,大家要考虑的是程序中如何控制这个LED。从原理图上可以知道,P1.0脚输出低电平时,LED亮起来,P1.0输出高电平时,LED就灭掉了,我们只要让P1.0不停的变换输出电平,LED就亮,灭交替,实现了一闪一闪的效果,所以用一个循环实现之。   六,  物料表   元件序号 元件名称 规格 数量 1 CPU AT89S51 1 2 电阻 10k 1/8W 1 3 电容 10u 16v电解电容 1 4 电阻 1k 1/8W 1 5 晶振 12.000MHz 1 6 电容 22pF 陶瓷电容 2   七,  实训步骤 1.     熟悉CPU的工作原理及电路结构。 2.     根据原理图准备所需元器件。 3.     熟悉单片机引脚功能及工作原理。 4.     按照原理图组装好电路板。 5.     准备电路工作时所需电源。 6.     用万用表检查电路板是否正常工作。 7.     接上电源,注意电源极性,简单的方法是接上电源的瞬间手摸CPU,如果发热应立即切断电源。 8.     根据设计好的算法写出汇编语言程序。 9.     将设计好的程序在软件上进行仿真调试, 10. 调试通过后再将程序烧录到程序存储器中进行测试   八,  仪器准备 5伏直流稳压电源     1 示波器               1 万表用           1   九,  问答题 1.     将程序烧录到程序存储器中,上电后,LED灯不工作是什么原因?(至少2种原因) 2.     考虑如何实现LED,短亮,短亮,长灭这个工作过程。   附程序源码:  Org 00h Ljmp Main   Org 100h Main:             Mov SP, #5FH LOOP:             CPL P1.0             MOV R7, #100             MOV R6, #50             ACALL  DELAY             SJMP             LOOP   DELAY:             DJNZ R5, $             DJNZ R7, DELAY             MOV      R7, #100             DJNZ R6, DELAY             RET END