【实验内容】:
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文件,
- 检验结果。
①
#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;
}
}