报告

  • 格式:doc
  • 大小:59.50 KB
  • 文档页数:13

实习目的
彩灯控制器
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

在这样的大环境下,我们需要开发出更加时尚,而且电路简单,功能更多的彩灯控制器,使得它能在不同的场合,不同时间段,能够有不同的闪烁频率。

本课程设计用AT89C51作为主要元器件,通过这个元器件的工作特点,实现彩灯的各种序列变换,进行彩灯控制的初步探索和研究,设计的思想是以最少的芯片数量,制作体积小,功耗低,并且有很好的可靠性和可扩展性。

全部仿真都是用proteus软件和keil软件来实现。

设计任务
用LED发光二极管作为模拟彩灯,用3个按键控制LED小灯的工作状态。

1.用程序延时方法让P1的八个LED小灯循环(每个亮50ms)闪亮。

2.用程序延时方法让P1的八个LED小灯逐个闪亮(50ms间隔变化)。

3.暂停
要求
1.根据硬件电路原理,画出接线图
2.设计出相应的软件程序
首先,根据设计任务和要求,我们知道彩灯控制器有两部分组成,硬件部分和软件部分。

硬件部分包括AT89C51单片机以及发光二极管(LED小灯)、电阻、电容、晶振、电源和按键等元器件。

软件部分即实现设计任务的软件程序。

硬件主要元器件介绍
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

硬件电路分析
根据设计任务要求,画出硬件原理图。

显示电路,P1口接8个LED 小灯,中间加电阻。

控制电路,STAL1、STAL2口接晶振及电容,RST引脚接复位电路,EA口接高电平,将三个按键1、2、3分别接到单片机的P0.0、P0.1、P3.2口上。

根据上述用proteus软件画出彩灯硬件电路原理图
软件部分分析
上为硬件电路原理图,单片机的软件部分,根据彩灯控制器的设计任务要求,用延时方法实现。

延时方法分为硬件延时与软件延时
硬件延时:用定时器/计数器等实现计时与计数,这种方法可以提高CPU的工作效率,也能做到精确延时。

软件延时:通过用编写程序的方法,主要采用循环体进行延时。

在本设计中我们小组采用用软件延时的方法来实现延时功能
根据要求,需实现任务中的三个功能。

通过在课堂上的学习和查找资料以及询问老师,我们小组整理编写了如下软件汇编实验程序。

实验程序1
用程序延时方法让P1的八个LED小灯循环(每个亮
50ms)闪亮12MHZ晶振
ORG 0000H ;程序执行开始地址
LJMP START1 ;跳至STARL执行
START1: LCALL FUN0
AJMP START1

;循环闪亮功能子程序
FUN0: MOV A,#0FEH ;累加器赋初值
FUN00: MOV P1,A ;累加器值送至P1口LCALL DL50ms ;延时
JNB ACC.7,OUT ;累加器最高位为0结束
RL A ;累加器A中数据循环左移1位
AJMP FUN00 ;转FUN00
OUT: RET

;约0.5ms延时子程序,执行一次时间为503us
DL503: MOV R2,#250
LOOP1: DJNZ R2,LOOP1
RET

;约50ms延时子程序(调用100次0.5ms延时子程序)DL50ms: MOV R3,#100
LOOP2: LCALL DL503
DJNZ R3,LOOP2
RET
END
实验程序2
用程序延时方法让P1的八个LED小灯逐个闪亮(50ms)间隔变化)12MHZ晶振
ORG 0000H ;程序执行开始地址
LJMP START2 ;跳至START执行
ORG 0030H ;以下程序放在0030H地址后STAR2T: LCALL FUN1
AJMP START2

;追逐闪亮功能子程序
FUN1: MOV A,#0FEH ;累加器赋初值
FUN11: MOV P1,A ;累加器值送至P1口
LCALL DL50ms ;延时
JZ OUT ;A为0结束
RL A ; 累加器A中数据循环左移1位
ANL A,P1 ;A同P1口值相与
AJMP FUN11 ;转FUN11
OUT: RET

;约0.5ms延时子程序,执行一次时间为503us
DL503: MOV R2,#250
LOOP1: DJNZ R2,LOOP1
RET

;约50ms延时子程序(调用100次0.5ms延时子程序)DL50ms: MOV R3,#100
LOOP2: LCALL DL503
DJNZ R3,LOOP2
RET
END
实验程序3
暂停
ORG 0000H ;程序执行开始地址
AJMP MAIN ;跳至START执行
ORG 0003H ;外部中断0入口地址
AJMP INSER ;转向中断服务程序
ORG 0030H ;主程序
MAIN: SETB EX0 ;允许外部中断0中断SETB IT1 ;选择电平触发方式
SETB EA ;CPU开中断HERE: SJMP HERE ;等待中断
ORG 0200H ;中断服务程序INSER: SJMP $ ;原地等待
软件的安装、使用和联调
需要安装的软件
(1)Proteus 7 Professional
(2)Keil u Visiom x LED
(3)Vdmagdi.exe
其中vdmagdi.exe是一个插件,可以实现Proteus和Keil 的联调,
硬件原理图和软件程序在软件中的绘制和编写
硬件原理图
硬件原理图在Proteus中绘制,步骤如下
(1)打开Proteus ISIS软件,
(2)新建设计,命名caideng
(3)在元件库中找到所需要的元器件
(4)将元器件放置在图中相应的位置上
(5)用线各个器件之间的连接
(6)完成绘图,检查是否有错误,保存
注:元器件的数值要先设置好,否则无法实现预定的功能
软件程序编写
软件程序在Keil中编写
(1)打开软件Keil软件
(2)在菜单Project中选择New uvision project(新建工程)(3)选择相应的储存位置及设置工程名caideng
(4)选择相应公司出产的单片机型号(Atmel—AT89C51)(5)在菜单File中选择New(新建编写页面)
(6)将事先编好的程序编写在页面内后保存
(7)将文件加入新建的工程内,检查是否有错误
(8)将文件进行编译生成.hex文件
注:在新建工程时要修改一些属性,如单片机晶振、生成.hex 文件的选项等。

Proteus与Keil之间的联调
打开Proteus软件,打开设计caideng ,双击单片机器件,在Program file选项中加载在Keil中所生成的.hex文件,然后就可以进行仿真过程。

注:在Proteus中和Keil中所生成的电路图及工程文件需要放在一个独立的文件夹内
参考文献;
(1).单片机原理及接口技术李朝青等著北京航空航天大学出版社
(2).单片机实验与课程设计(Proteus仿真版)李光飞等著浙江大学出版社
实习结果
通过两周的实习时间,在我们小组五个人的共同努力下,将我们的任务<彩灯控制器>顺利完成了,在实习过程中,我们遇到了很多在课堂上绝对没有的问题,不过通过我们的努力查阅资料、询问老师等,最终都一一解决了。

在本次单片机的课程设计的实习中,让我们学习到不仅仅是书本上的知识,而且更加让我们对于单片机产生更加浓厚的兴趣。

在实习里所学到的知识我们都可以运用到实际生活中去,在今后的的学习工作中,会对我们有着莫大的帮助,所以在今后的实习中我们会更加的努力,从而可以不断地及减少自己在实习中所犯的错误。

也可以不断地提高自己的知识储备量及动手操作实践的能力。

最后非常感谢这次实习给我们带来的好处,谢谢!。