(完整word版)基于单片机仿真软件proteus的流水灯实验报告.doc

上传者: xinkai1688 | 上传时间: 2024-06-16 13:24:16 | 文件大小: 1.46MB | 文件类型: DOC
基于单片机仿真软件 Proteus 的流水灯实验报告 一、实验目的: 1. 熟练掌握单片机仿真软件 Proteus 使用方法和注意事项。 2. 了解简单单片机应用系统的设计方法。 3. 帮助学生养成良好实验习惯。 二、实验内容: 本实验内容是使用单片机仿真软件 Proteus 实现 8 个发光 LED 的流水灯现象,实现两个流水灯情况: 1. 先奇数灯亮,再偶数灯亮。 2. 实现流水灯从两边向中间亮,再从中间到两边亮。 三、实验说明: 依照实验的硬件电路原理,在单片机仿真软件 Proteus 上进行硬件电路的模拟,然后进行实验。在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,人眼就可以看到流水的现象。 四、实验环境: 硬件:PC 机; 软件:单片机仿真软件 Proteus。 五、实验原理图: 实验原理图是单片机仿真软件 Proteus 的流水灯实验电路图,展示了 8 个 LED 的连接方式和单片机的控制逻辑。 六、实验参考程序: 实验参考程序是使用 C 语言编写的,使用单片机仿真软件 Proteus 进行编译和模拟。程序的主要内容是控制 8 个 LED 的流水灯现象,包括奇数灯亮、偶数灯亮、流水灯从两边向中间亮和从中间到两边亮等。 #include #include void delay_ms(int n) // 延时 n 毫秒 { int i, j; for (i = 0; i < n; i++) for (j = 0; j < 110; j++); } void main() { int i, num; unsigned char p1; unsigned char p0, p; while (1) { for (i = 0; i < 3; i++) // 间隔 500ms 先奇数亮再偶数亮,循环三次 { P1 = 0xaa; P0 = p1; delay_ms(500); P1 = 0x55; P0 = p1; delay_ms(500); } p1 = 0xfe; num = 3; while (num-- > 0) // 一个灯上下循环三次 { for (i = 0; i < 8; i++) { P0 = p1; delay_ms(100); p1 = _cror_(p1, 1); } } // 两个分别从两边往中间流动三次 p1 = 0xfe; p0 = 0x7f; num = 3; while (num-- > 0) { for (i = 0; i < 4; i++) { p1 = _crol_(p1, 1); p0 = _cror_(p0, 1); p = p1 & p0; delay_ms(100); P1 = p; P0 = p; } } // 再从中间往两边流动三次 p1 = 0xef; p0 = 0xf7; num = 3; while (num-- > 0) { for (i = 0; i < 4; i++) { p1 = _crol_(p1, 1); p0 = _cror_(p0, 1); p = p1 & p0; delay_ms(100); P1 = p; P0 = p; } } // 8 个全部闪烁 3 次 num = 3; while (num-- > 0) { p1 = 0; delay_ms(500); p1 = 1; delay_ms(500); } break; } } 七、实验结论: 通过本实验,我们掌握了单片机仿真软件 Proteus 的使用方法和注意事项,并了解了简单单片机应用系统的设计方法。同时,我们也学习了如何使用 C 语言编写程序控制流水灯现象。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明