单片机——一个 LED 的闪烁,亮约 0.5 秒,灭约 0.5 秒

【实验内容】:

1、发光二极管原理。

LED全称为半导体发光二极管,采用半导体材料制成的,以直接将电能转化为光

能,电号转换成光信号的发光器件;其特点是功耗低、高亮度、色彩艳丽、坑振

动、寿命长(正常发光8-10万小时)、冷光源等优点,是真正的“绿色照明”。

它具有二极管的基本特性正向导通,反向截止。要想点亮LED那么需要从正向流

过工作电流。普通发光二极管工作压降为:1.6~2.1V。工作电流为:1~20mA。

硬件电路如图 3-1 所示,STC89C52RC通常采用40脚DIP封装,1脚~8脚是4个并行

输入/输出端口(P0口、P1口、P2口、P3口)中的一个,称为P1口,8条口线用P1.0~

P1.7表示,这8个引脚均可带最大20mA灌电流负载,可以直接驱动发光二极管,图

示电路中D1~D8为8只发光二极管,R为排阻,第一脚为排阻的公共端,各经300Ω

电阻限流后接在+5V电源与P1端口之间。从图 2-1 上可以看出,此时发光二极管采

用共阳极接法,当P1.0~P1.7中某个引脚输出低电平时,则发光二极管上有电流流

过,发光二极管发光,否则,当对应引脚为高电平时,发光二极管上无电流流过,

发光二极管熄灭。单片机通过查询这几根口线的高低电平状态,判断二极管是否

有电流通过,从而进行发光二极管的发光与熄灭。

2、延时原理。

若要控制发光二极管闪烁时亮约0.5秒,灭约0.5秒,我们需要控制延时时间就相当

于控制操作之间的空隙时间从而达到延时的效果。

3、单片机最小系统的构成。

单片机最小系统也称为单片机最小应用系统,是指使用最少的原件组成单片机可

以工作的系统。单片机最小系统的三要素为:电源、晶振和复位电路。

(1)电源:电源任何电子设备都需要供电,目前主流单片机的电源分别为5V和

3.3V这两个标准。选用STC89C52RC,它需要5V的供电系统,如图 2-2 是使用USB

口输出的5V直流直接供电的,从图中可以看出,供电电路在40引脚和20引脚的位

置上,40引脚接的是+5V,通常也称为VCC或VDD,代表电源正极,20引脚接

GND,代表电源负极。

2)晶振:晶振,又叫晶体振荡器,从这个名字上就可以看出,它注定一生都要

不停的振荡。它起到的作用是为单片机系统提供基准时钟信号,类似于部队训练

喊口号的人,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作

的,可以说晶振就是单片机的“心脏”。STC89C52RC单片机的18引脚和19引脚是晶 振引脚,如图接了一个11.0592MHz的晶振(即每秒振荡11059200次),外加两个

20pF的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定。

复位电路:单片机的复位一般分为四种:外部RST复位,软件复位,掉电复 位/上电复位,看门狗复位。

四、 实验内容

1、了解单片机的开发。

步骤:

(1)了解单片机开发平台的构成,如图 2-4 所示;

(2)了解单片机开发基本流程;

1.用C语言编写好源程序。(在电脑上的编辑器软件中)

2.将源程序(也叫源代码、源文件)编译成目标程序(也叫目标代码、机器码、

目标文件、HEX文件)。(调用电脑上的C语言编译器软件)

3.用下载软件将目标程序写入到单片机中。

4.写入后会自动运行目标程序。

5. 如果程序运行后不正常、可以用人工检查、软件仿真器、硬件仿真器、串口助

手等技术手段排除所编程序中存在的各种错误。错误排除后,再重复上面的3、4。

2、根据以上流程实现一个 LED 的闪烁,亮约 0.5 秒,灭约 0.5 秒,反复

循环。

1)查看实验箱的电路图,可看到 P1 端口的八个引脚分别通过限流电阻接有八

个共阳的 LED(见图2-1),这里选择接在 P1.0 口的一个LED(D1)进行实验;

2)由于LED 采用共阳接法,所以当 P1.0 输出高电平时 D1灭,输出低电平时D1 亮;

在C51 中,可通过对端口赋值来控制引脚的输出电平,因此在本例中,可通过“P1.0=1”

让P1.0 输出高电平,通过“P1.0=0”让P1.0 输出低电平;

3)延时函数可使用STC烧录软件中延时功能自动生成,主函数先点亮灯,在调

用延时函数,在熄灭灯,然后在调用延时函数,将这些放入循环一直执行,完成

代码,如图 2-5 所示。除此之外,延时函数也可以利用“消耗机器指令周期”方式编

写,以下给出毫秒级别的 C 语言延时函数(晶振频率为 12MHz)

代表需要延时的毫秒数

void delay_ms(unsigned int xms) // xms  

{

unsigned int x,y;

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

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

}

(4)使用C语言编写好源程序,注意使用头文件时,记得加上程序需要的头文件。

头文件包含特殊寄存器SFR定义,包含特殊功能位定义等。常用的有REG51.H、

REG52.H、STC.H。STC.H适用于所有STC出的 51单片机(包括1T和传统单片机)。

除了系统自带的头文件之外,还可以自己写自己用的专用头文件,定义你需要定

义的IO输出输入口,更能方便自己写程序。系统中自带的头文件在

“C:\Keil\C51\INC”,下图 2-6 为定义头文件规则;

13(4)将源程序通过keil软件编译成目标程序,在你新建的文件夹里生成HEX文件,

  1. 检验结果。
①
#include<reg51.h>
	  void delay_ms(unsigned int xms)
	  {
	  unsigned int x,y;
	  for(x=xms;x>0;x--)
	  {
	   for(y=110;y>0;y--);
	   }
	  }

	sbit P1_0=0x90;
	  int main()
	  {
	  P1_0=1;
	  while(1)
	  {
	   P1_0=~P1_0;
	   delay_ms(500);
	   }
	   }

②
#include<reg51.h>
   #include<intrins.h>
   void Delay100ms()
   {
     unsigned char i,j,k;
	 _nop_();
	 _nop_();
	 i=10;
	 j=31;
	 k=147;
	 do {
	  do{
	  while(--k);
	    }  while(--j);
	  }while(--i);
	  }


	   sbit P1_0=0x90;
	  void main(){
	  while(1){
	  Delay100ms();
	  P1_0=0xfe;
	  Delay100ms();
	  P1_0=0xff;
	  }
	  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值