单片机LED灯实验报告

桂林电子科技大学

实验报告

2016-2017 学年第一学期

开 课 单 位 海洋信息工程学院 适用年级、专业 14级机械设计制造及其自动化 课 程 名 称 《单片微型计算机与接口技术-课内实验》 主 讲 教 师 周旋 课 程 序 号 BS1615000_03 课 程 代 码 BS1615000 实 验 名 称 《流水灯》 学 号 1416010516 - 17 姓 名 林亦鹏 卢炳荣

流水灯实验报告

一、实验目的 1、了解单片机顺序执行的工作特点。 2、掌握单片机并行控制I/O口的基本方法。 3、掌握C语言的编写,及对I/O口的基本操作方法。 二、实验内容 实验设备:计算机一台、单片机实验箱一台、Proteus软件、Keil软件。 硬件原理图: 单片机实验箱LED使用P0口进行控制,高电平有效。 1、I/O口并行操作方法的优点。 2、单片机延时程序的实现方式。 3、单片机C语言左右移动语句、逻辑运算语句的使用。 4、打开Keil,新建工程:学号-1.uv4。 5、参考实验程序,编写程序:让灯向左(即从P1_0到P1_7)做流水动作,生成:学号-1.hex文件。 6、把”学号-1.hex”文件烧写到单片机,观察流水灯的现象。 7、修改程序让流水灯反向流动。 8、编写自己想要的流水方式。 三、实验结果分析 本实验主要是采用延时程序来控制“流水”的功能,同时采用中断进行亮与暗闪烁的效果,使用C51的P0口进行对LED的控制。过程的主要分析如下: /****************************************************************************** * 实 验 名 : 流水灯 * 实验说明 : LED灯做右移流水灯 ******************************************************************************/ 1、程序流程图: 2、程序清单及注释: #include #include //--声明全局函数--// void Delay10ms(unsigned int c); //延时10ms //主函数 void main(void) { { } } //延时函数Delay10ms void Delay10ms(unsigned int c) //误差 0us P0 = LED; // 按照LED的初值,置P0.0口为高电平,其余为低电平 Delay10ms(50); LED = _crol_(LED,1); //循环右移1位,点亮下一个LED 此函数已在库函数中定义 unsigned char LED; LED = 0x01 ; //0x01= 0000 0001 while(1) 此时,led灯的最低一位亮

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4