本帖最后由 51armfpga 于 2014-6-23 22:56 编辑 实验一 效果: 链接:http://v.youku.com/v_show/id_XNzI5OTAxMDc2.html 实验二 效果: 链接:http://v.youku.com/v_show/id_XNzI5OTAxMTU2.html 实验三 效果: 链接:http://v.youku.com/v_show/id_XNzI5OTAxMzMy.html 源码工程文件下载: 实验一: 实验二: 实验三: 仿真一: 仿真二: 仿真三: 教程PDF格式下载: 1. 实验简介 本节课主要学习如何通过单片机的I/O口控制LED灯,学会延时函数的使用。实验一是控制LED灯的闪烁,实验二是实现LED灯的流水效果,实验三是实现LED灯的花样格式。学以致用,举一反三,根据前面三个实验来完成一个交通灯程序,就表示已掌握单片机I/O口的控制。 2. 基础知识发光二极管是半导体二极管的一种,可以把电能转换成光能,通常简称为LED。 发光二极管与普通二极管一样也是单向导通的,给它加上正向电压,它就会发光。发光二极管的发光亮度与通过的电流成正比,一般情况下LED的工作电流在10mA左右,若电流过大时会损坏LED,因此使用时必须串联限流电阻以控制通过管子的电流。限流电阻计算公式是: R=(E-UF)/IF E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。普通发光二极管正向饱和压降为1.4~2.1V,正向工作电流为5~20mA。 原理图如图3-1所示: 图3-1 根据公式计算R=(E-UF)/IF,UF取值范围是1.4~2.1V,IF取值范围是5-20mA,R的取值范围是:145欧姆~720欧姆,本原理图中取值为200欧姆。 SN74HC573是高性能硅门 CMOS 器件,跟 LS/AL573 的管脚一样。器件的输入是和标准 CMOS 输出兼容的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同 步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 SN74HC573的真值表如图3-2所示: 图3-2 3. 实验环境3.1 软件环境Keil4编译软件、STC下载软件、Protues仿真软件 3.2 硬件环境志慧单片机开发板、5V电源适配器、串口线 4. 实验一(闪烁灯)单片机最小系统图如图3-3所示: 图3-3 LED是通过P1口来控制的。如果想实现LED的闪烁,就需要P1口一会输出高电平,一会输出低电平。中间延时采用延时函数来实现。根据SN74HC573真值表知,LE为高电平时,输出状态与输入状态保持一致,因此需要把LE位设置为高电平,单片机管脚默认为高,也可以不设置。 程序源码如下: #include<reg52.h> //包含头文件,头文件包含特殊功能寄存器的定义 #define uchar unsigned char //宏定义,用uchar代替unsigned char #define uint unsigned int //宏定义,用uint代替unsigned int void DelayMS(uint x) //延时子函数 { uchar i; while(x--) { for(i=120;i>0;i--); } } void main (void) { while (1) //主循环 { P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉 DelayMS(150); //延时 P1 = 0x00; //P1口全部为低电平,对应的LED灯全亮 DelayMS(150); //延时 } } 建立工程文件,把源程序添加进去,编译生成.HEX文件,工程文件见上传文件。通过STC下载软件下载到单片机中,效果就是8个LED小灯一直闪烁。往单片机下载步骤下面简单介绍一下。首先打开STC下载软件,如图3-4所示: 图3-4 先执行第一步,点击黑色三角箭头,找到开发板上对应的单片机型号,目前使用的型号是STC89C52。 第二步打开程序文件,点击后会出现一个对话框,找到源程序目录,里面会有一个“闪烁灯.HEX”文件,双击或单击后,点确认按钮。 第三步选择COM口,根据电脑上安装的驱动,选择正确后,右边有个绿色的指示灯会亮。 第四步点击Download/下载,程序开始下载,下载成功后,在最下边的对话框中会提示程序下载成功。 程序下载到开发板后,现象如图3-5、图3-6所示: 图3-5 图3-6 |
|
来自: lixinhecom > 《C语言》