找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 42679|回复: 0
打印 上一主题 下一主题
收起左侧

单片机按键控制LED灯闪烁(用外部中断0)实验报告+源码

[复制链接]
跳转到指定楼层
楼主
电子与信息工程学院实验报告
姓    名:
张*
学号:

14022063
班    级:
电本142
课程名称:
单片机原理与应用实验
实验时间:
24
项目名称:
按键控制LED灯闪烁用外部中断0

  • 实验目的
1.了解C51语言设计的原则。
2.掌握单片机的使用。
3.掌握keil软件和proteus软件的使用。
二、实验内容
    用KeilC51编写程序,来实现D1~D4四个流水灯的循环点亮,并在Proteus软件中仿真,用外部中断0的方式控制按键开,使K3连接在P3.2口,编程使K3控制D1~D4灯依次循环点亮,不能影响其它灯。
按键S3按下时,P2口控制的8位发光LED灯D1~D4循环点亮。
三、实验步骤
我们可以编写一个简单的程序来实现四个流水灯的循环点亮,用按键来控制,K3连接在P3.2,编程使K3控制D1~D4灯依次循环点亮,不能影响其它灯。
用外部中断0来实现。

如程序所述,当k3为低电平,即为0时,使D1~D4点亮,用while循环使D1~D4不断循环点亮,当k3为高电平是,停止循环。
工程截图如图所示
四、实验结果
1、先根据要求连接到如图所示电路图。
将k3接到单片机的P3^2口上,P2口接8个LED灯,LED的另一端接上拉电阻,最后接到电源正极。单片机的X1口接晶振电路。
  • 根据要求将程序添加到上电路图中,即可得到一下结果。
开始运行,按下S3,LED从D1开始到D4依次循环点亮。
3、使S3抬起时,即S3接高电平是,循环停止。

五、实验总结
在编写程序的过程中,要弄懂电路图中各个引脚所接的位置,弄明白单片机和各个元件的功能以及引脚功能,这样在写程序时才能明白该如何写语句,自己就会比较清楚,也会比较有条理性。在写的过程中也要注意C语言书写的要求,有时候错一个标点或者括号程序运行就会出现错误,所以必须细心。通过这次实验,感觉自己还不是很熟悉,对于很多东西都不懂,需要一边写一边查询各个功能和用法,写起来还是很吃力的。
在以后的学习中,我一定要更加努力的学习,更多的去敲程序练习,同时也更多的去练习写程序。

C51单片机程序:
  1. #include "reg52.h"                                          //此文件中定义了单片机的一些特殊功能寄存器
  2. typedef unsigned int u16;                //对数据类型进行声明定义
  3. typedef unsigned char u8;
  4. #define led P2
  5. sbit k3=P3^2;
  6. void delay(u16 i)
  7. {
  8.               while(i--);            
  9. }
  10. void Int0Init()
  11. {
  12.               //设置INT0
  13.               IT0=1;//跳变沿出发方式(下降沿)
  14.               EX0=1;//打开INT0的中断允许。            
  15.               EA=1;//打开总中断            
  16. }
  17. void main()
  18. {            
  19.               Int0Init();  //              设置外部中断0
  20.               while(1);                           
  21. }
  22. void Int0()              interrupt 0                            //外部中断0的中断函数
  23. {
  24.               delay(100);              //延时消抖
  25.               { while(k3==0)
  26.               {
  27.               led=0xfe;
  28.               delay(50000);
  29.               led=0xfd;
  30.               delay(50000);
  31.               led=0xfb;
  32.               delay(50000);
  33.               led=0xf7;
  34.               delay(50000);
  35.               led=0xf7;
  36.               delay(50000);
  37.               led=0xfb;
  38.               delay(50000);
  39.               led=0xfd;
  40.               delay(50000);
  41.               led=0xfe;
  42.               delay(50000);
  43.                     }
  44.                             }
  45.               }
复制代码

完整的Word格式文档51黑下载地址:
流水灯.doc (159.54 KB, 下载次数: 63)



评分

参与人数 2黑币 +110 收起 理由
yousunny + 10 赞一个!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表