流水灯
一, 实训教学目的
a) 进一步了解单片机的内部结构
b) 了解单片机基本电路的组成
c) 学习proteus,keil 51,protel等软件的使用
d) 编写程序控制8个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,学习程序调试的方法
四, 电路原理图
五, 工作原理
前一个模块是控制一个LED,这次要控制8个LED,亮灭的过程与单个LED的控制类似,复杂在有8个LED,可以像控制单个LED方法一个一个的点亮熄灭点亮熄灭,这八个LED都接在P1端口,也可以用处理一个字节的方法来控制,像下面的流程图。
开始 |
A = 0xfe |
P1 = A |
延时100ms |
A <<= 1 |
六, 物料表
元件序号 | 元件名称 | 规格 | 数量 |
1 | CPU | AT89S51 | 1 |
2 | 电阻 | 10k 1/8W | 1 |
3 | 电容 | 10u 16v电解电容 | 1 |
4 | 电阻 | 1k 1/8W | 8 |
5 | 晶振 | 12.000MHz | 1 |
6 | 电容 | 22pF 陶瓷电容 | 2 |
7 | 发光二极管 | 红色LED 5V 3ma | 8 |
七, 实训步骤
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
Mov A, #0FEH
LOOP:
MOV P1, A
MOV R7, #100
MOV R6, #50
ACALL DELAY
RL A
SJMP LOOP
DELAY:
DJNZ R5, $
DJNZ R7, DELAY
MOV R7, #100
DJNZ R6, DELAY
RET
END