1、51单片机32位流水灯51单片机32位流水灯摘要:随着电子工业的发展,电子元器件急剧增加,C51单片机应用非常广泛。本文介绍了一种简易的单片机应用的设计思路及硬件结构。首先研究了51单片机流水灯的基本原理,画出整机框图,接着提出系统的性能指标,计算确定电路形式和元器件参数,然后根据原理图通过Simulink软件进行建模仿真,验证系统的可行性。关键字:C51;LED;Simulink软件;Protel99SE; 1引言1.1设计背景及意义目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在我们的生活当中有许多地方要应用中到灯光,因此,设计全自动,可靠,安全,便捷的
2、灯光效益具有极大的现实必要性。2.系统概述该系统主要有C51单片机,LED灯,晶振等。2.1 设计目的(1)掌握简易流水灯的工作原理,以及程序的编写等等。(2)进一步熟悉和掌握常用数字电路元器件的应用;(3)学习数字电路仿真、调试、测试、故障查找和排除的方法、技巧;(4)培养实践技能,提高分析和解决实际问题的能力。2.2设计内容及要求1、51单片机 x1、40Pin 座 x12、LED x32(建议用5mm 七彩的)3、电阻470 x334、晶振12MHz x15、10uf 电解电容 x1、谐振瓷片电容30pf x26其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OK了
3、。2.2电路原理图2.2重要元器件介绍(1)C51单片机(2)12MHZ晶振分为两种封装形式:SMD3225产品详细参数:频率范围:12 54 MHz频率公差(25) 10ppm 30 ppm, or specify在工作温度范围内的频率稳定度: 10ppm 30 ppm, or specify工作温度范围:- 20 +70 oC, or specify并联电容(C0):7 pF Max.驱动级:1200W(100W typical)负载电容:Series, 8 pF, 12 pF, 15 pF,20pF, or specify老化(25): 3 ppm / year Max.储存温度范围:-
4、 40 + 85 oCSMD5032产品详细参数:频率范围:12 54 MHz频率公差(25) 10ppm 30 ppm, or specify在工作温度范围内的频率稳定度: 10ppm 30 ppm, or specify工作温度范围:- 20 +70 oC, or specify并联电容(C0):7 pF Max.驱动级:1200W(100W typical)负载电容:Series, 8 pF, 12 pF, 15 pF, 20pF, or specify老化(25): 3 ppm / year Max.储存温度范围:- 40 + 85 oC3实物4程序#include #define u
5、char unsigned charuchar flag=200;/uchar code Tab1=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF;/暗中左移 向下uchar code Tab2=0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF;/暗中右移 向上uchar code Tab3=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00;/亮中左移 向下uchar code Tab4=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x0
6、0;/亮中右移 向上uchar code Tab11=0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff;/暗中左移 向下uchar code Tab22=0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff;/uchar code Tab33=0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF;uchar code Tab44=0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF;uchar code Tab55=0x08,0xc0,0xe0,0xf0,0xf8,0
7、xfc,0xfe,0xff,0xff;uchar code Tab5=0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff;uchar code Tab6=0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff;uchar code Tab7=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;uchar code Tab8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/void shansuo();void xl();/void delay(void) uns
8、igned char m,n; for(m=0;mflag;m+) for(n=0;n250;n+) ; / void hy1(void) /点亮状态逆时针旋转90度(一个一个灭) unsigned char i; for(i=0;i8;i+) P0=Tab11i;P1=Tab22i; P2=Tab11i;P3=Tab22i; delay(); for(i=0;i0;flag=flag-50) P0=0xff;P1=0xff;P2=0xff;P3=0xff; for(i=0;i8;i+) P0=Tab11i; delay(); for(i=0;i8;i+) P2=Tab11i; delay()
9、; for(i=0;i8;i+) P3=Tab22i; delay(); for(i=0;i8;i+) P1=Tab22i; delay(); flag=250;/ void hy3(void) /点亮中逆时针转360(一个一个灭) unsigned char i; flag=50; P0=0x00;P1=0x00;P2=0x00;P3=0x00; for(i=0;i8;i+) P0=Tab44i; delay(); for(i=0;i8;i+) P2=Tab44i; delay(); for(i=0;i8;i+) P3=Tab33i; delay(); for(i=0;i8;i+) P1=T
10、ab33i; delay(); flag=150;/ void hy4(void) /点亮状态顺时针旋转90度(一个一个灭) unsigned char i; for(i=0;i8;i+) P1=Tab11i;P0=Tab22i; P3=Tab11i;P2=Tab22i; delay(); for(i=0;i9;i+) P1=Tab6i;P0=Tab5i; P3=Tab6i;P2=Tab5i; delay(); / void hy2_1(void) /暗中逆时针转90度。(一个一个点亮) unsigned char i; flag=200; P0=0xff;P1=0xff;P2=0xff;P3
11、=0xff; for(i=0;i9;i+) P0=Tab11i; delay(); flag=110; for(i=0;i9;i+) P2=Tab11i; delay(); flag=80; for(i=0;i9;i+) P3=Tab22i; delay(); flag=80; for(i=0;i9;i+) P1=Tab22i; delay(); / void hy2_2(void) /暗中逆时针转180度。(一个一个点亮) unsigned char i; P0=0xff;P1=0xff;P2=0xff;P3=0xff; for(i=0;i8;i+) P0=Tab11i; delay();
12、for(i=0;i8;i+) P2=Tab11i; delay(); P0=0xff;P2=0xff; for(i=0;i8;i+) P3=Tab22i; delay(); for(i=0;i8;i+) P1=Tab22i; delay(); P1=0xff;P3=0xff;/ void hy2_3(void) /暗中向下180。(一个一个点亮) unsigned char i; P0=0xff;P1=0xff;P2=0xff;P3=0xff; for(i=0;i8;i+) P0=Tab11i; P1=Tab11i; delay(); for(i=0;i8;i+) P2=Tab11i; P3=
13、Tab11i; delay(); / flag=100; for(i=0;i8;i+) P2=Tab33i; P3=Tab33i; delay(); for(i=0;i8;i+) P0=Tab33i; P1=Tab33i; delay(); flag=200; / void hy2_4(void) /暗中逆时针转360。(一个一个点亮) unsigned char i; P0=0xff;P1=0xff;P2=0xff;P3=0xff; for(i=0;i8;i+) P0=Tab11i; P3=Tab22i; delay(); for(i=0;i8;i+) P2=Tab11i; P1=Tab22
14、i; delay(); / flag=100;for(i=0;i8;i+) P0=Tab44i; P3=Tab5i; delay(); for(i=0;i8;i+) P2=Tab44i; P1=Tab5i; delay(); flag=200;/ void hy5(void) /先向下伸展,然后向上伸展逐渐点亮 unsigned char i; for(i=0;i8;i+) P0=Tab8i; P1=Tab8i; delay(); P0=0xff; P1=0xff; for(i=0;i8;i+) P2=Tab8i; P3=Tab8i; delay(); P2=0xff; P3=0xff; fo
15、r(i=0;i8;i+) P2=Tab7i; P3=Tab7i; delay(); P2=0xff; P3=0xff; for(i=0;i8;i+) P0=Tab7i; P1=Tab7i; delay(); P0=0xff; P1=0xff;/void jr(void)/聚拢 unsigned char i; for(i=0;i9;i+) /8位控制码 P0=Tab1i;P1=Tab1i; P2=Tab2i;P3=Tab2i; delay(); for(i=0;i9;i+) P0=Tab2i;P1=Tab2i; P2=Tab1i;P3=Tab1i; delay(); / for(i=0;i9;
16、i+) P0=Tab1i;P1=Tab1i; P2=Tab2i;P3=Tab2i; delay(); for(i=0;i9;i+) P0=Tab2i;P1=Tab2i; P2=Tab1i;P3=Tab1i; delay(); xl(); /星星眨眼 xl(); /星星眨眼/ for(i=0;i9;i+) P0=Tab3i; P1=Tab3i; P2=Tab4i; P3=Tab4i; delay(); for(i=0;i9;i+) P0=Tab4i;P1=Tab4i; P2=Tab3i;P3=Tab4i; delay(); / for(i=0;i9;i+) P0=Tab1i;P1=Tab1i;
17、P2=Tab2i; P3=Tab2i; delay(); for(i=0;i9;i+) P0=Tab4i;P1=Tab4i; P2=Tab3i;P3=Tab3i; delay(); / for(i=0;i9;i+) P0=Tab3i; P1=Tab3i; P2=Tab4i;P3=Tab4i; delay(); for(i=0;i9;i+) P0=Tab2i;P1=Tab2i; P2=Tab1i;P3=Tab1i; delay(); /void azzy(void) /暗中向下 unsigned char i; flag=200; for(i=0;i8;i+) P2=0xff;P3=0xff;
18、P1=Tab1i;P0=Tab1i; delay(); for(i=0;i9;i+) P1=0xff;P0=0xff; P2=Tab1i;P3=Tab1i; delay(); /void azyy(void) /暗中you移 unsigned char i; for(i=0;i8;i+) P0=0xff;P1=0xff; P2=Tab2i;P3=Tab2i; delay(); for(i=0;i9;i+) P0=Tab2i;P1=Tab2i; delay(); / void led_flow1(void) unsigned char i; for(i=0;i9;i+) P2=0;P3=0; P
19、1=Tab3i;P0=Tab3i; delay(); for(i=0;i9;i+) P2=Tab3i;P3=Tab3i; delay(); / void lzyy(void) /亮中右移 unsigned char i; for(i=0;i9;i+) P0=0x00;P1=0x00; P2=Tab4i;P3=Tab4i; delay(); for(i=0;i9;i+) P0=Tab4i;P1=Tab4i; delay(); /void shansuo(void)/全部灯闪烁 uchar i;for(i=0;i3;i+)P0=0xff; P1=0xff; P2=0xff; P3=0xff;del
20、ay(); delay();P0=0x00; P1=0x00; P2=0x00; P3=0x00;delay(); delay(); void xl(void)/相邻俩个变换uchar i;for(i=0;i3;i+)P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;delay();delay();P0=0x55;P1=0x55;P2=0x55;P3=0x55;delay();delay();/void sxb(void)/上下半 unsigned char i;P0=0xff;P1=0xff;P2=0x00;P3=0x00;delay();delay();delay();del
21、ay(); for(i=0;i8;i+) P0=Tab11i; P1=Tab11i; delay(); for(i=0;i8;i+) P0=Tab11i; P1=Tab11i; delay(); for(i=0;i8;i+) P0=Tab11i; P1=Tab11i; delay(); for(i=0;i3;i+) P0=0x00;P1=0x00;delay();delay();P0=0xff;P1=0xff;delay();delay();/void jc(void)/uchar i; for(i=0;i0;flag=flag-10) for(i=0;i8;i+) P2=0xff;P3=0xff; P1=Tab1i;P0=Tab1i; delay(); for(i=0;i9;i+) P1=0xff;P0=0xff; P2=Tab1i;P3=Tab1i; delay(); flag=10; for(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1