单片机原理及应用实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验课程:单片机原理及应用

实验项目:单片机控制LED灯亮灭专业班级:

学号:

姓名:

实验日期:

实验一单片机控制LED灯实验.

一、实验目的

1、进一步掌握Keil的使用,熟悉单片机C语言编程。

2、学习I/O口的使用方法。

二、实验原理

发光二级管是半导体二极管的一种,可以把电能转化为光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。只要加在发光二极管两端的电压超过它的导通电压(一般为1.7V-1.9V)它就会导通,而当流过它的电流超过一定电流时(一般2-3mA)它就会发光。LED常用在MCS-51单片机中指示单片机的某个开关量的状态。

对单片机的控制,其实就是对I/O口(单片机引脚)的控制。单片机共四个端口,P0、P1、P2、P3;每个端口分别有8个引脚 P0.0-P0.7、P1.0-P1.7、P2.0-P2.7、P3.0-P3.7;这32个引脚既可以作输出脚,又可以作输入脚。作输出脚时,单片机可以控制指示灯、数码管、电机等外部器件;作输入脚时,可以“感受”按键、开关、传感器等外部器件(例如接收数据-此就是作为输入脚的),单片机的每个引脚都是可以分开控制的,即独立的给高或者低电平。

想要点亮一个小灯,首先要将小灯与单片机的一个I/O 口连接好,然后将此引脚给高或者低电平,接着这个小灯就可以按照你给的电平实现点亮或熄灭了。

三、硬件电路设计

LED模块排线接口如图3-1所示。依据实验原理,只要将所需控制的LED 对应排线引脚连接到单片机一个I/O口即可。

1、连接方法:JP11(P2)和JP1和LED灯的JP1用8PIN排线连接起来。

2、硬件说明:使用单片机的P2口来驱动8个LED,发光二极管的阳极接高电平,故P2口

为低电平时,就可以驱动其点亮。

四、软件设计

1.单灯D3闪烁

#include

void delay(void) //延时程序

{

unsigned int i;

for(i=0;i<20000;i++)

;

}

void main(void)

{

while(1)

{

P2=0xfb; //灯亮

delay(); //延时

P2=0xff; //灯灭

delay(); //延时

}

}

2、双4只 LED 灯(D1、D

3、D5、D7 与D2、D

4、D6、D8)交替闪烁#include

#define uint unsigned int

#define uchar unsigned char

void delay();

void main()

{

while(1)

{

P2=0xaa; //1010 1010

delay();

P2=0x55; //0101 0101

delay();

}

}

void delay() //延时程序

{

uint x,y;

for(x=100;x>0;x--)

for(y=600;y>0;y--);

}

3、8只LED灯(D1、D2、D3、D

4、D

5、D

6、D

7、D8)流水灯显示#include

void delay(void)

{

unsigned char i,j;

for(i=0;i<250;i++)

for(j=0;j<250;j++);

}

void main()

{

while(1)

{

P2=0xfe;

delay();

P2=0xfd;

delay();

P2=0xfb;

delay();

P2=0xf7;

delay();

P2=0xef;

delay();

P2=0xdf;

delay();

P2=0xbf;

delay();

P2=0x7f;

delay();

}

}

三、实验结果分析:

刚开始不是很熟悉,无法按照老师所讲的进行试验,反复操作后,完成了试验。

实验二数码管实验

一、实验目的

1、掌握数码管显示原理(静态显示和动态显示)。

2、掌握数码管显示编程。

二、实验原理

数码管是一种半导体发光器件,是MCS-51单片机系统中用得非常多的一种输出通设备,其基本单元是发光二级管。MCS-51单片机系统中最常使用的是8段数码管。

1、数码管显示原理

a

b

c

d

d

c

b

a

图4-1 数码管内部原理图

8段数码管的内部结构是由8个发光二极管组成的,如图4-1所示,从图4-1(a)可看出,一位数码管的引脚是10个,显示一个8字需要7个小段,另外还有一个小数点,所以其内部一共有8个小的发光二极管,最后还有一个公共端,生产商为了封装的统一,单位数码管都封装10个引脚,其中第3和第8引脚是连接在一起的。而它们的公共端又可以分为共阳极和共阴极,如图4-1(b)所示。

共阳极数码管的8个发光二极管的阳极(正极)连接在一起接高电平(一般接电源),其它管脚接各段驱动电路输出端。当某段的输出端为低电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。

共阴极数码管的8个发光二极管的阴极(负极)连接在一起接低电平(一般接地),其它管脚接各段驱动电路输出端。当某段的输出端为高电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。因此我们在显示数字的时候首先做的就是给“0-9”十个数字编码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。

当数码管为多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”,有了这两个线后,通过单片机及外部驱动电路就可以控制任意的数码管显示任意的数字了。

2、数码管静态显示

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是,当显示多位数字时,将占用较多的I/O端口,硬件电路比较复杂,成本较高。

3、数码管动态显示

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。点亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

三、软件设计

相关文档
最新文档