流水灯实验报告
void main()//主函数 {
while(1) { ucha r i; P0=P1=P3=0xff;
fo;)//逐个点亮 { P0=table1[i]; delayms(500); } for(i=0;i<8;i++) { P1=table[i]; delayms(500); } for(i=0;i<8;i++)
并 行
P1 接口的 8 个 led
串
灯
口
P2 接口的 8 个 led 灯
第1页共5页
五、硬件电路设计 根据设计任务,首先进行系统硬件的设计。其硬件原理图由 LED 显示电路和单片机最 小系统组成,如图所示,其中包括时钟电路采用内部时钟方式,复位电路采用上电自 动复位。由于单片机的 I/O 口的高电平驱动能力只有微安级,而灌电流可以达到 3 毫 安以上,因此采用低电平驱动。P1、P2、P3 分别控制 8 个 led 灯。
第3页共5页
{ P3=table1[i]; delayms(500); }
shan();//全部闪烁
for(i=0;i<8;i++)//逐个熄灭 { P3=table2[i]; delayms(500); } for(i=0;i<8;i++) { P1=table3[i]; delayms(500); } for(i=0;i<8;i++) { P0=table2[i]; delayms(500); }
二、实验主要仪器设备和材料
Keil 软件;Proteus 软件
三、任务设计要求
采用 STC89C52 单片机构建最小系统,在 P0-2 口外接 24 只发光二极管,编程实现 24 只灯的 花样显示控制。
四、总体设计方案
电源电路 时钟电路 复位电路
AT89C52 单片机
P0 接口的 8 个 led 灯
流水灯实验报告
实验名称
流水灯控制实验
实验时间 2019 年 月 日
学生姓名
实验地点
同组人员
专业班级
一、实验目的
1、会使用单片机 4 个并行 I/O 端口连接外部设备并构建单片机最小应用系统。
2、能使用工具软件绘制单片机硬件原理图、能编写简单的汇编程序。
3、会编写常见的顺序程序、循环程序、延时子程序和查表程序。
void delayms(uint t);//延时 void shan()//全部闪烁 { uint h; uint t_1; for(h=0;h<5;h++) { t_1=1000; P0=P1=P3=0xff; delayms(t_1); P0=P1=P3=0x00; delayms(t_1); t_1=t_1-200; } P0=P1=P3=0x00; }
八、项目总结 在本次流水灯试验中,使用循环程序、数组语句实现了实验要求,设计过程中遇到了 很多的问题,但经过努力,最终设计出了合理的解决方案。通过此次实验,对多个 led 灯的控制能力进一步得到提升。
九、项目设计报告成绩
实验报告成绩: 指导教师签字:
年月
日
第5页共5页
六、软件程序设计 1、软件设计思路 如果通过上图所示电路图完成实验要求,通过数组,分别同时控 P0、P1、P2 分别控 制 8 个 led 灯,从而协调控制 24 个灯实现花样流水灯效果。
开始
编写数组
主循环
逐个点亮 24 灯同时闪烁
逐个熄灭
第2页共5页
2、程序清单及说明
#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//逐个点亮 0~7 uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//逐个点亮 7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐个灭 0~7 uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//逐个灭 7~0
} } void delayms (uintt)
{ uint x,y; for(x=t; x>0;x--) for(y=50;y>0;y--); }
七、软硬件仿真调试分析 1、仿真调试结果
第4页共5页
图片 1 逐个点亮
图片 2 24 灯闪烁
图片 3 逐个熄灭
2、性能测试及结果分析
通过仿真结果发现通过上述系统可以实现实验要求,24 个灯逐个点亮,24 个灯全亮后,24 个灯一起闪烁,闪烁 5 次后,然后 24 个灯逐个熄灭。由此证明系统满足实验要求。