MCS-51单片机模块实训一 LED控制
2019-04-15 17:03发布
生成海报
单片机控制单个LED
一, 实训教学目的
1, 从程序设计的角度初步了解单片机的内部结构
2, 了解单片机基本电路的组成
3, 学习proteus,keil 51,protel等软件的使用
4, 编写程序控制LED闪烁,间隔时间不定
二, 主要元件的介绍。
1,CPU AT89S51
AT89S51是一款低功耗,高性能的8位微处理器,有4KBZ可在系统编程(ISP) Flash闪速存储器,1000次擦写周期,它与工业标准的80C51和80C52的指令集及输出PIN脚完全兼容。128X8-bit片内RAM,32个可编程I/O脚,2个16-位定时/计数器,5个中断源,可编程全双工串行口,低功耗空闲模式和掉电模式。
2,晶体振荡器
12M晶体振荡器
3,发光二极管
8只发光二极管共阳连接,阴极与CPU的P1端口相连,P1口输出低电平就亮。
三, 实训工作制作指导
1,学习使用Proteus仿真软件画出原理图。
2,熟悉汇编语言程序设计,学习使用Keil 51进行源代码编写
3,学习程序调试的方法
四, 电路原理图
五, 工作原理
8051系列单片机工作过程大体是这样:晶体振荡器为CPU提供时序,复位电路为CPU提供复位信号,接上电源,上电复位,CPU中各特殊功能寄存器复位PC=0H,SP=07H, P0=P1=P2=P3=FFH, 其他都为0,CPU根据PC中的地址从ROM的00H地址开始取指令,寄存到IR寄存器中,PC中的地址自动加一,指到下一个地址空间,然后CPU将IR中的指令送到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
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮