基于单片机仿真软件 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 语言编写程序控制流水灯现象。
2024-06-16 13:24:16 1.46MB
1
模糊PID控制无刷直流电动机调速的 simulink仿真 BLDCM 模糊控制 直流电机 任何版本,含简单的报告
2024-06-15 15:19:08 269KB
1
本设计采用40106作为振荡电路,由74LS192、74LS47D和七段共阴LED数码管构成计时电路,具有开始/预置、暂停/继续计时和报警功能。 另外还提供其变体电路,它由74LS192、4511和七段共阳LED数码管构成。
2024-06-15 15:10:43 1.98MB
基于STM32的温度采集报警系统+源代码+原理图PCB工程文件,STM32F1+DS18B20温度采集
2024-06-15 10:54:42 1.52MB STM32F1
1
基于对话框和Scintilla控件的C++源代码编辑器,使用了MFC对话框,使用了Scintilla控件,实现了新建、打开、保存功能,实现了撤消、剪切、复制、粘贴、删除、查找、全选功能,可以实现代码关键字高亮
2024-06-15 00:04:49 71.6MB Scintilla 源代码编辑器
1
最小二乘法是常用的曲线拟合方法。 但是对于一些特殊的函数,由于全局逼近,传统的最小二乘法很难得到足够的精度。 移动最小二乘(MLS)可以通过局部逼近拟合任何可微函数。 在这里分享MLS2D包,尽情享受吧!
2024-06-14 20:33:32 5KB matlab
1
机器学习(变分贝叶斯、粒子滤波及边缘PF,内容包括大量课件、MATLAB代码)
2024-06-14 20:31:13 64.48MB matlab 变分贝叶斯 机器学习 粒子滤波
matlab拟合曲线用移动最小二乘法来拟合曲线曲面的matlab代码.zip 用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip用移动最小二乘法来拟合曲线曲面的matlab代码.zip
2024-06-14 19:44:26 4KB matlab 最小二乘法
1