单片机流水灯设计报告

1. 摘要: 摘要:

近年来,随着电子技术和微型计算机的发展,单片机的档次不断 提高,应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪 器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端 及通信产品中得到广泛的应用、 成为现代电子系统中最重要的智能化 的核心部件。 AT89C51 就是其中一种, 而 它是一种带 4K 字节闪烁可 编程可擦除只读存储器的低电压,高性能 CMO8 位微处理器,为很 多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2. 关键字:单片机、流水灯 3. 需求分析: 随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就 是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿 百态恰能给人一种视觉冲击, 现在不管大街小巷我们都可以随处可见 这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设 计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效 果,但是现在我们可以用单片机 AT89C51 来实现,因为其相对于电 子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不 复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的, 由于它的小巧方便、 通俗易懂, 所以我们往往采用单片机来做流水灯。

4. 系统设计

1.硬件框图

复 位 电 路 盘 键

STC

震 荡 电 路 路 电 灯

89C51

2.总设计图

3.选用 AT89C51 的引脚功能 XTAL1:单芯片系统时钟的反向放大器输入端。

XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英震荡晶体系统就可以工作了, 此外 可以在两引脚与地之间加入 20PF 的小电容,可以使系统更稳定,避 免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此 引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系 统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状 态。 P0:端口 0 是一个 8 位宽的开路汲汲双向输出入端口,共有 8 个 位,P0.0 表示 0,P0.1 表示 1,以此类推。 P2:端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可 以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端 口便能当成输入端口来使用。 4.说明 如图所示,S1 为复位开关,S2、S3、S4 分别为切换不同流水效 果的开关,P2 口控制 LED 灯 D1~D7 的显示,P0 口作为 LED 的输出 控制。当按下 S2 后能实现 D1 和 D7 同时亮其他不亮,然后 D2 和 D6 亮,依此类推。当按下复位 S1,然后按下 S2 实现 LED 灯从 D7 到 D1 循环亮, 按下 S1 然后按下 S3 实现 LED 从 D1

到 D7 的循环亮。 硬件详细设计 1.复位电路部分 如图所示,当要对晶片重置时,只要按此开关就能完成 LED 和开

关的重置。

2.晶振部分 产生时钟信号

3.开关部分 S2、S3、S4 分别控制 3 种 LED 显示效果,这里就不用详细说明 了。

4.LED 显示部分 限流电阻为 470 欧姆,经过的电流大概为 10mA。 软件详细设计 1. 软件框图

开始

检查是否有键按下

读取键值

根据键盘指令执行流水灯显示效果

执行结束

2.详细程序清单 #include // 头文件

sbit k1=P0^0; sbit k2=P0^1; sbit k3=P0^2;

//定义按键 k1 //定义按键 k2 //定义按键 k3

code unsigned char num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//左 移 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右 移

0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e} ;//两边到中间 unsigned char k; //数组的移动指针

void delay10ms(void) //延时 10ms { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); }

void delay02s(void)//延时 0.2s { unsigned char i; for(i=20;i>0;i--) {delay10ms(); } } void KEY(void) //按键扫描程序 { if(k1==0) { delay10ms(); if(k1==0) { k=0; } } if(k2==0) { delay10ms(); if(k2==0) {

k=8; } } if(k3==0) { delay10ms(); if(k3==0) { k=16; } } } void main(void) //主程序 { unsigned char i; while(1)//死循环 { if(P0!=0xff)//判断是否有按键按下 { KEY();//执行按键扫描程序 for(i=0;i

P2=num[i+k];//根据按下的键得到亮的状态 delay02s();//延时 0.2s } P2=0xff;//全灭 } } }

5.Protuce 仿真

Proteus 仿真时,单片机需要加载程序,加载程序为.HEX 文件。 本设计利用 Keil µVision3, 在新建 Keil 项目时选择 AT89C51 单片机 作为 CPU, C 语言源程序导入, 将 在“Options For Target”对话窗口中, 选 中 “Output”选项中 的 “Create HEX File”,编 译链接 后就 可以 生 成.HEX 文件。在 Proteus ISIS 中,选中 AT89C52 并单击鼠标左键, 对 AT89C52 进行设置,设置单片机时钟频率为 12MHz,按照正确的 文件路径加载.HEX 文件。对单片机设置完毕后就可以开始仿真了。 仿真结果如下:当 S2 关闭

当 S3 关闭

1. 摘要: 摘要:

近年来,随着电子技术和微型计算机的发展,单片机的档次不断 提高,应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪 器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端 及通信产品中得到广泛的应用、 成为现代电子系统中最重要的智能化 的核心部件。 AT89C51 就是其中一种, 而 它是一种带 4K 字节闪烁可 编程可擦除只读存储器的低电压,高性能 CMO8 位微处理器,为很 多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2. 关键字:单片机、流水灯 3. 需求分析: 随着现代社会的发展,人们越来越追求审美和新颖,而流水灯就 是其中一种,以前简单的照明工具变得越来越多样化,流水灯的千姿 百态恰能给人一种视觉冲击, 现在不管大街小巷我们都可以随处可见 这种变幻万千的流水灯,而这种流水灯我们可以产用电子电路去设 计,我们主要可以用装套控制器和状态译码器来实现灯光的流水效 果,但是现在我们可以用单片机 AT89C51 来实现,因为其相对于电 子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不 复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的, 由于它的小巧方便、 通俗易懂, 所以我们往往采用单片机来做流水灯。

4. 系统设计

1.硬件框图

复 位 电 路 盘 键

STC

震 荡 电 路 路 电 灯

89C51

2.总设计图

3.选用 AT89C51 的引脚功能 XTAL1:单芯片系统时钟的反向放大器输入端。

XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英震荡晶体系统就可以工作了, 此外 可以在两引脚与地之间加入 20PF 的小电容,可以使系统更稳定,避 免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此 引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系 统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状 态。 P0:端口 0 是一个 8 位宽的开路汲汲双向输出入端口,共有 8 个 位,P0.0 表示 0,P0.1 表示 1,以此类推。 P2:端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可 以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端 口便能当成输入端口来使用。 4.说明 如图所示,S1 为复位开关,S2、S3、S4 分别为切换不同流水效 果的开关,P2 口控制 LED 灯 D1~D7 的显示,P0 口作为 LED 的输出 控制。当按下 S2 后能实现 D1 和 D7 同时亮其他不亮,然后 D2 和 D6 亮,依此类推。当按下复位 S1,然后按下 S2 实现 LED 灯从 D7 到 D1 循环亮, 按下 S1 然后按下 S3 实现 LED 从 D1

到 D7 的循环亮。 硬件详细设计 1.复位电路部分 如图所示,当要对晶片重置时,只要按此开关就能完成 LED 和开

关的重置。

2.晶振部分 产生时钟信号

3.开关部分 S2、S3、S4 分别控制 3 种 LED 显示效果,这里就不用详细说明 了。

4.LED 显示部分 限流电阻为 470 欧姆,经过的电流大概为 10mA。 软件详细设计 1. 软件框图

开始

检查是否有键按下

读取键值

根据键盘指令执行流水灯显示效果

执行结束

2.详细程序清单 #include // 头文件

sbit k1=P0^0; sbit k2=P0^1; sbit k3=P0^2;

//定义按键 k1 //定义按键 k2 //定义按键 k3

code unsigned char num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//左 移 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右 移

0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e} ;//两边到中间 unsigned char k; //数组的移动指针

void delay10ms(void) //延时 10ms { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); }

void delay02s(void)//延时 0.2s { unsigned char i; for(i=20;i>0;i--) {delay10ms(); } } void KEY(void) //按键扫描程序 { if(k1==0) { delay10ms(); if(k1==0) { k=0; } } if(k2==0) { delay10ms(); if(k2==0) {

k=8; } } if(k3==0) { delay10ms(); if(k3==0) { k=16; } } } void main(void) //主程序 { unsigned char i; while(1)//死循环 { if(P0!=0xff)//判断是否有按键按下 { KEY();//执行按键扫描程序 for(i=0;i

P2=num[i+k];//根据按下的键得到亮的状态 delay02s();//延时 0.2s } P2=0xff;//全灭 } } }

5.Protuce 仿真

Proteus 仿真时,单片机需要加载程序,加载程序为.HEX 文件。 本设计利用 Keil µVision3, 在新建 Keil 项目时选择 AT89C51 单片机 作为 CPU, C 语言源程序导入, 将 在“Options For Target”对话窗口中, 选 中 “Output”选项中 的 “Create HEX File”,编 译链接 后就 可以 生 成.HEX 文件。在 Proteus ISIS 中,选中 AT89C52 并单击鼠标左键, 对 AT89C52 进行设置,设置单片机时钟频率为 12MHz,按照正确的 文件路径加载.HEX 文件。对单片机设置完毕后就可以开始仿真了。 仿真结果如下:当 S2 关闭

当 S3 关闭


相关文章

  • 基于单片机彩灯设计报告
  • 西安文理学院机械电子工程系 课程设计任务书 学生姓名 焦银娟 专业班级 电子信息工程 学 号 [1**********] 指导教师 刘 密 歌 职 称 副教授 教研室 电子信息工程 课 程 单片机原理及应用 题目 基于单片机的彩灯设计 任务 ...查看


  • C51单片机实验总结报告
  • HEFEI UNIVERSITY 单片机实验报告 系 别 电子信息与电气工程系 专 业 班 级 学 号 姓 名 指导 老师 完成 时间 实验一 构建单片机最小系统和实验环境熟悉 一.预习要求 1.构建单片机最小系统,熟悉51单片机的结构及编 ...查看


  • 流水灯课程设计
  • 单片微机原理与接口技术 课程设计报告 目录 1.引言.............................................................................................. ...查看


  • 流水灯设计
  • 新能源与动力工程学院 课程设计报告 单片机系统课程设计 专 业: 班 级: 姓 名: 学 号: 指导教师: 2014年 7 月 新能源与动力工程学院课程设计任务书 课程名称: 单片机系统课程设计 指导教师(签名): 班级: 姓名: 学号: ...查看


  • 单片机实验三-流水灯实验
  • 电子信息工程系实验报告 课程名称:单片机与接口技术 实验项目名称:流水灯实验 实验时间:2013-5-9 班级:通信10 姓名:Microlab_4 学号: 实 验 目 的: 进一步熟悉keil仿真软件.proteus仿真软件的使用.了解并 ...查看


  • 单片机实训报告
  • 实训报告 题目名称:系 部:专业班级:学生姓名:学 号:指导教师:完成日期: 电气与信息工程系 2015年6月26日 新疆工程学院 实训评定意见 设计题目 单片机实训 系 部 电气与信息工程系 专业班级 学生姓名 评定意见: 指导教师(签名 ...查看


  • 单片机实习总结报告
  • 专业综合实习总结 2010-2011(2) 专业班级: 电子信息工程0801 学生学号: 0414080123 学生姓名: 吴锦 指导教师:张云.包长春.马崇霄.杜殿会 实习时间: 机 电 工 程 学 院 一.实习目的和意义 1.实习目的: ...查看


  • 抢答器课程设计 2
  • 四川师范大学成都学院电子工程学院 单片机与接口技术课程设计 八路智能抢答器设计 学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩 何 勇 杰 2013103038 电子工程学院 自动化 2013级 宋薇 四川师范大学成都学院 ...查看


  • 单片机流水灯设计
  • 单片机原理及系统课程设计 专 业:电气工程及其自动化 班 级 电气1001班 姓 名: 任晓亮 学 号: 201009010 指导教师: 李亚宁 兰州交通大学自动化与电气工程学院 2013 年 3 月 7 日 基于单片机的流水灯设计 摘要 ...查看


热门内容