实验一:LED闪烁灯
一、实验目的
掌握51单片机开发板的使用步骤;
掌握51单片机开发板所需软件的安装过程;
以LED灯闪烁为例子,掌握软件KEIL4的使用方法。
二、实验设备
实验仪器设备:
计算机
软件:
Proteus仿真软件、KELL开发软件
三.实验任务
在单片机I/O口(P0.0)上外接一个发光二极管LED,通过程序实现LED闪烁显示,即不停的一亮一灭,亮,灭持续时间均为1秒。
四、实验内容及实验步骤
1.项目背景:
单片机原理:单片机的工作原理与计算机CPU的工作原理是一样的,主要是利用片内的半导体存储器存放用户的程序和数据,单片机的核心中央微处理器CPU中有指令寄存器、指令译码器,程序计数器等部件,由程序计数器寻找下一条要执行的指令,找到后,将指令送给指令寄存器,再由指令译码器翻译执行该指令,完成对指令功能的操作。
单片机的特点:
(1)高集成度,体积小,高可靠性
单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。
(2)控制功能强
为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能。
(3)低电压,低功耗,便于生产便携式产品
为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V~3.6V,而工作电流仅为数百微安。
(4)易扩展
片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。
(5)优异的性能价格比
单片机的性能极高。为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB。由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。
单片机的用途:
(1) 工业自动化:如数据采集,测控技术;
(2) 智能仪器仪表:如数字示波器,数字信号源,数字万用表,感应电流表等
(3) 消费类电子产品:洗衣机,电冰箱,空调,电视机,微波炉等
(4) 通信方面:如调制解调器,程控交换技术,手机,小灵通等
(5) 武器装备:飞机军舰,坦克,导弹,航天飞机等
单片机I/O口:
(1) 电源和时钟引脚,如VCC,GND,XTAL1,XTAL2;
(2) 编程控制引脚,如RST,PSEN,ALE/PROG,EA/VPP;
I/O口引脚,如P0,P1,P2,P3,四组I/O口;
2.需求分析:
Keil4——编程环境简介 Keil uVision是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大额集成开发调试工具,全Windows界面。达到接近于汇编的工作效率。
PROTEUS——仿真环境简介 Proteus 软件是来自英国Labcenter electronics 公司的EDA 工具软件,Proteus 软件有近20年的历史,在全球广泛使用。它除了具有和其它EDA 工具一样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是交互的,可视化的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可以测量仿真的波形及记录仿真数据。在不需要硬件设备投入的情况下,Proteus 软件可以建立完整的电子学习设计开发环境,缩短研发周期,并且降低开发成本。 Proteus 组合了高级原理布图、混合模式SPICE 仿真,PCB 设计以及自动布线来实现一个完整的电子设计系统。此系统受益于多年来的持续开发,被《电子世界》在其对PCB 设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM 技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232 终端等动态外设模型来对设计进行交互仿真。其功能模块:—个易用而又功能强大的ISIS 原理布图工具;PROSPICE 混合模型SPICE 仿真; ARESPCB 设计。PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED 甚至LCD 显示CPU 模型。
3.项目内容及仿真软件:
(1)打开Keil软件,新建一个工程,命名为“LED”;
(2)选择芯片类型,虽然使用的是STC90C516RD 或 STC89C52RC的单片机,但这里选择ATMEL------AT89C51这个芯片就行。
(3)新建一个文件,输入LED闪烁灯实验的相关代码(代码绝对正确)这是用的C语言中的延时函数“delayxms(unsigned int xms)”;
(4)保存文件看,文件名为“01-闪烁灯.c”;
(5)右键单击“Source Group 1”,单击“Add Files to Group ‘Source Group 1’”,将刚刚生成的“01-闪烁灯.c”文件加入到工程中;
注:一定要将保存的文件加入到工程中,否者将会报错
(6)单击编译按钮
或按F7编译工程,结果如下则视为编译无误;
注:保存的代码文件一定要后缀“.c”。
(7)右键单击“Target1”→“Options for Target ‘Target 1’…”,选择对话框中“Output”选项卡,选中“Create HEX File”选项用于生成十六进制文件,再次单击按钮编译,成功后会生成同名的十六进制文件;
单击
若结果如下则视为已成功生成十六进制文件:
(8)运行Proteus软件,绘制出原理图(根据老师的要求,此处我所用的是P0.0I/O口)如下:
为AT89C51单片机添加“test.hex”文件单击所放置的芯片,如下:
4.测试过程:若如下图所示一样则视为试验成功:
五、实验收获与体会
做单片机硬件和软件结合的实验,在以前学过的编程语言基础上,学习用单片机编程实现点亮熄灭LED和单片机控制LED闪烁,在理解老师讲解的知识基础上和同学一起探讨交流,慢慢熟悉了一些新知识。操作过程中,软硬件方面都出现一些问题,实验中实验结果讨论遇到发光二极管不亮的情况,于是改用程序之后问题得以解决,因此实验中程序应该及时检查,不然会影响实验的顺利进行。