继电器控制心型流水灯
PLC花样流水灯的控制

PLC花样流水灯的控制【摘要】:【关键词】:目录一、课程设计目的的 (2)二、课程设计题目和要求............................................. . (2)三、设计内容 (2)(一)PLC的介绍 (2)(二) PLC的特点及运用 (4)(三)PLC工作原理 (6)(四)、PLC的I/O地址分配 (7)(五) 外部PLC接线图 (7)(六) PLC主程序的设计 (8)(七) 花样1 子程序 (11)(八)花样2子程序 (11)( 九) 花样3子程序 (11)(十)控制系统测试与分析 (13)四、设计总结 (13)参考书目 (16)附录 (17)一、课程设计目的在现代生活中,彩灯作为一种装饰,既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽,用在舞台上增强晚会灯光效果。
随着科学技术的发展以及人民生活水平的提高,人们对于彩灯的要求越来越高,另一方面,随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展,PLC技术的应用引起电子产品及系统开发的巨大变革。
梯形图语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强,在实际应用中越来越广泛。
于是,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
整个过程通过PLC自动完成,大大减轻了设计人员的工作强度,减少了出错的机会,并且提高了设计质量。
为了便于学生掌握PLC 变成设计,因此需要设计一个霓虹灯闪烁控制系统。
由此引入流水灯的花样控制二、课程设计题目和要求课程设计题目,基于PLC的霓虹灯闪烁控制系统课程设计要求,彩灯L1--L10按如下花样(1):先使所有灯都复位(熄灭),然后从L1等开始,每隔0.5秒按顺序增加一个彩灯,直至都亮为一个周期,重复循环3花样(2):L1~L5、L6~L10两组彩灯亮灭交替三次,间隔0.5秒花样(3):先L1灯亮0.5秒后,L2灯亮L1灭,延迟0.5秒后L3灯亮L2灭,以此类推,形成单灯跑马效果,循环3次三种花样连续执行,形成周期循环,直至停止。
心形花样LED流水灯程序

/*心形花样LED 流水灯程序*/#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0/***********************************************************/void delay(uint t); //延时void zg(uint t,uchar a);//两边逐个亮void qs(uint t,uchar a);//全部闪烁void zgxh(uint t,uchar a); // 逆时针逐个点亮//void zgxh1(uint t,uchar a); // 顺时针逐个点亮void djs(uint t,uchar a); //对角闪void lbzgm(uint t,uchar a);//两边逐个灭//void sszgm(uint t,uchar a); // 顺时针逐个灭void nszgm(uint t,uchar a); // 逆时针逐个灭void sztl(uint t,uchar a);//顺时逐个同步亮void nztl(uint t,uchar a);//逆时逐个同步亮void sztm(uint t,uchar a);//顺时逐个同步灭void nztm(uint t,uchar a);//逆时逐个同步灭void hwzjl(uint t,uchar a); //横往中间亮void hwzjm(uint t,uchar a); //横往中间灭//void swzjl(uint t,uchar a); //竖往中间亮//void swzjm(uint t,uchar a); //竖往中间灭void nzdl(uint t,uchar a); //逆时逐段亮void nzdgl(uint t,uchar a); //逆时逐段一个点亮void jgs(uint t,uchar a); //间隔闪/**********************************************************/void zg(uint t,uchar a)//两边逐个亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i<7;i++)P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i<7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}void qs(uint t,uchar a) //全部闪烁{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}void zgxh(uint t,uchar a) // 逆时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(t);for(i=0;i<8;i++){P1=table[i];delay(t);}for(i=0;i<8;i++){P3=table[i];delay(t);}for(i=0;i<8;i++){P2=table[i];delay(t);}}}void nszgm(uint t,uchar a) // 逆时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P0=table3[i];delay(t);}for (i=0;i<8;i++){P1=table2[i];delay(t);}for (i=0;i<8;i++){P3=table2[i];delay(t);}for (i=0;i<8;i++){P2=table2[i];delay(t);}}}/*void zgxh1(uint t,uchar a) // 顺时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P2=table1[i];delay(t);}for(i=0;i<8;i++){P3=table1[i];delay(t);}for(i=0;i<8;i++){P1=table1[i];delay(t);}for(i=0;i<8;i++){P0=table[i];delay(t);}}}*//*void sszgm(uint t,uchar a) // 顺时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P2=table3[i];delay(t);}for (i=0;i<8;i++){P3=table3[i];delay(t);}for (i=0;i<8;i++){P1=table3[i];delay(t);}for (i=0;i<8;i++){P0=table2[i];delay(t);}}}*/void djs(uint t,uchar a) //对角闪{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);}}void lbzgm(uint t,uchar a)//两边逐个灭{uchar i,j;for (j=0;j<a;j++){P0=P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i--){P1=table[i-1];P3=table1[i-2];delay(t);}P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i--){P0=table1[i-1];P2=table1[i-2];delay(t);}P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t);}}void sztl(uint t,uchar a)//顺时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table[i];P1=P2=P3=table1[i];delay(t);}}}void nztl(uint t,uchar a)//逆时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];P1=P2=P3=table[i];delay(t);}}}void sztm(uint t,uchar a)//顺时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=table2[i];P1=P2=P3=table3[i];delay(t);}}}void nztm(uint t,uchar a)//逆时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table3[i];P1=P2=P3=table2[i];delay(t);}}}void hwzjl(uint t,uchar a) //横往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table1[i];P3=table[i];delay(t);}}}void hwzjm(uint t,uchar a) //横往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table3[i];P3=table2[i];delay(t);}}}/*void swzjl(uint t,uchar a) //竖往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table[i];P3=table1[i];delay(t);}}}void swzjm(uint t,uchar a) //竖往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table2[i];P3=table3[i];delay(t);}}}*/void nzdl(uint t,uchar a) //逆时逐段亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];delay(t);}P0=0xff;for(i=0;i<8;i++){P1=table[i];delay(t);}P1=0xff;for(i=0;i<8;i++){P3=table[i];delay(t);}P3=0xff;for(i=0;i<8;i++){P2=table[i];delay(t);}P2=0xff;}}void nzdgl(uint t,uchar a) //逆时逐段一个点亮{uchar i,j,k,l;for (j=0;j<a;j++){k=table1[0];P0=k;l=table[0];P1=P2=P3=l;delay(t);for(i=0;i<8;i++){k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);}}}void jgs(uint t,uchar a) //间隔闪{uchar j;for (j=0;j<a;j++){P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);}}void main(){uchar i;while(1){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭jgs(300,10);djs(100,20); //对角闪////////////////////////////////////////////P1=P2=P3=0xff;for(i=0;i<3;i++){P0=0x00;delay(800);P0=0xff;delay(800);}P0=0x00;for(i=0;i<3;i++){P1=0x00;delay(800);P1=0xff;delay(800);}P1=0x00;for(i=0;i<3;i++){P3=0x00;delay(800);P3=0xff;delay(800);}P3=0x00;for(i=0;i<3;i++){P2=0x00;delay(800);P2=0xff;delay(800);}qs(500,3);/////////////////////////////////////////////for(i=0;i<6;i++){zgxh(50,1);nszgm(50,1);}djs(100,20); //对角闪for(i=0;i<3;i++){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭}qs(200,10);djs(100,50);for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(300,10); //对角闪nzdgl(300,10); //逆时逐段一个点亮jgs(300,10); //间隔闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/nzdl(200,3); //逆时逐段亮jgs(50,100); //间隔闪/*/////////////////////////////////////////////////////P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(200);}for (i=0;i<8;i++){P1=table[i];delay(200);}for(i=0;i<3;i++){P0=P1=0x00;delay(200);P0=P1=0xff;delay(200);}for (i=0;i<8;i++){P2=table1[i];delay(200);}for (i=0;i<8;i++){P3=table1[i];delay(200);}for(i=0;i<3;i++){P2=P3=0x00;delay(200);P2=P3=0xff;delay(200);}*///////////////////////////////////////////////////nzdgl(50,40); //逆时逐段一个点亮for(i=0;i<4;i++){zg(100,1);qs(100,10);lbzgm(100,1);}// djs(50,100); //对角闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}djs(1000,10);for(i=0;i<10;i++){hwzjl(200,1); //横往中间亮hwzjm(200,1); //横往中间灭}djs(300,10); //对角闪/* for(i=0;i<10;i++){swzjl(200,1); //竖往中间亮swzjm(200,1); //竖往中间灭}*/for(i=0;i<5;i++){zgxh(100,1);nszgm(100,1);}djs(100,20); //对角闪zg(300,1);lbzgm(300,1);/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(500,20); //对角闪djs(100,30); //对角闪djs(50,50); //对角闪// djs(10,100); //对角闪delay(1000);}}void delay(uint t){uint x,y;for (x=t;x>0;x--){for (y=120;y>0;y--);}}。
心形流水灯程序

#include<reg52.h>#define uchar 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,0x00};//亮中右移向上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,0xfc,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){unsigned char m,n;for(m=0;m<flag;m++)for(n=0;n<250;n++);}///////////////////////////////////void hy1(void) //点亮状态逆时针旋转90度(一个一个灭){unsigned char i;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i];delay();}for(i=0;i<8;i++){P0=Tab44[i];P1=Tab55[i];P2=Tab44[i];P3=Tab55[i];delay();}///////////////////////////////////////////void hy2(void) //暗中逆时针转360。
控制心型流水灯的显示

控制心形流水灯的显示班级: 10电子科学与技术(1)班学号: 201010330131姓名:敖军指导:曹老师时间: 2013 年5 月 16 日景德镇陶瓷学院目录•一、设计分析 (3)•二、设计实现………………………………………………4,5,6,72.1设计方案确定2.2硬件电路设计2.3显示电路设计2.4 并行接口电路2.5单片机2.6晶体振荡电路设计2.7复位电路设计•三、软件设计 (8)3.1主体程序3.2延时程序•四、调试与仿真 (9)4.1实现软件4.2仿真结果•五、元件清单 (10)•六、设计心得 (10)•七、参考文献 (11)•八、附录总电路图 (12)一、设计分析原理:采用8个发光二极管可以用来模拟8个信号灯,如果按照图1所示的规律依次点亮每一个发光二极管并延时一段时间,将实现流水灯效果。
点亮第点亮第点亮第图1运用单片机的p1端口控制发光二极管的亮、灭状态。
通过采用p1端的8个端口,从而控制8个发光二极管,采用输出口扩展方式,则可控制更多发光二极管。
见图2所示二、设计实现2.1设计方案确定选用AT89C51单片机,时钟电路,复位电路,晶体振荡电路,若干适当阻值电阻,8个发光二极管和电源构成最小工作系统,控制心形流水灯。
2.2硬件电路设计根据设计要求分析,采用直接驱动,为提高驱动电流能力,LED采用共阳极接法,广告灯输出心形,用Proteus软件进行原理设计与绘图以及keil单片机编程。
2.3显示电路设计本次设计的流水灯为发光二极管。
为了防止流过发光二极管的电流过大对二极管造成损坏而影响实验,每个二极管都串联一个电阻分压,串联电阻越大,流过二极管的电流越小,灯的亮度越低。
此次选的是LED-RED,正向电压2v,最高耐压值4v,全驱动电流为0-10mA为安全。
所以为了保证发光二极管导通时的安全和发光亮度,串联电阻为500欧姆,此时流过二极管电流为:I=(5-2)/500=6mA,满足要求。
十八路心形流水灯设计报告

十八路心形流水灯——设计报告目录一、摘要 (2)二、设计目的和作用 (2)(三、设计方案和原理 (2)电路功能 (2)电路工作原理 (2)参数计算 (3)元器件选择 (3)四、仿真调试与性能分析 (4)MUITLSIM仿真 (4)实验步骤 (5),调试分析 (5)实物图 (5)五、设计心得 (6)一、摘要随着科学技术的发展,电力电子设备与人们的工作、生活的关系日益密切。
如今人民的生活水平大幅提升,生活质量和审美情趣也大幅提升,所以本次实验,我们设计了一个十八路心形流水灯,灯交替闪烁,组成心形图案,集美观于实用于一体,也可以用于馈赠亲朋好友,是十分有意义的。
关键字:LED 十八路流水灯心形流水灯交替闪烁二、设计目的和作用随着微电子技术的迅速发展,各类功能芯片的性能不断提高,数字信号处理得到越来越广泛的应用,而十八路流水灯是一个简单的应用,在通信系统、数字仪器仪表、语音、图像处理等方面都是必不可少的部分,所以流水灯的基础设计显得尤为重要。
本次设计在软硬件常规实验的基础上,运用“模拟电子技术”的理论知识,设计、分析、测试基本电路系统,初步掌握综合运用理论知识、软件仿真以及硬件测试进行简单系统的设计与分析的基本方法。
流水灯在日常生活中非常重要,运用非常广泛,在电子工程,通信工程,自动控制,遥测控制,测量仪器,仪表和计算机等技术领域,经常需要用到各种各样的流水灯。
随着集成电路的迅速发展,用集成电路可很方便地构成各种复杂功能的流水灯。
用集成电路实现的流水灯与其他流水灯相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。
流水灯在电路实验和设备检测中具有十分广泛的用途。
三、设计方案和原理电路功能18颗LED排列成心形,由三只振荡三极管驱动,通电后LED依次旋转闪亮,夜间效果更佳。
电路工作原理本电路是由3只三极管组成的循环驱动电路。
每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通。
PLC爱心流水灯课程设计报告

机电工程系课程设计报告题目:爱心流水灯的PLC控制设计专业:应用电子技术班级:10应用电子(4)班学号:1006190120姓名:同组人:(1006190113)指导老师:答辩日期:2012年6月目录一、课程设计目的 (4)二、实验设备 (4)三、实验步骤 (4)四、课程设计内容及技术指标 (4)1、制作爱心流水灯的要求: (4)五、系统硬件设计 (5)1、系统硬件介绍 (5)2、系统输入输出点分配 (5)4、器件清单 (7)5、外部接线图 (8)六、触摸屏设计 (10)1、主菜单 (10)2、爱心流水灯 (10)七、系统软件设计 (11)1、爱心流水灯的工作情况分析 (11)2、系统梯形图设计 (11)(1)系统内存分配 (11)(2)主程序 (11)八、系统调试 (13)1、调试环境介绍 (13)2、调试步骤 (13)九、总结及体会 (13)十、参考文献 (13)一、课程设计目的本课程设计的目的在于运用已学的PLC控制技术的基础知识和基本理论,加以综合运用,进行PLC控制系统设计的初等训练,掌握运用PLC进行系统控制设计的原则、设计内容和设计步骤,为从事PLC相关的毕业设计或今后的工作需要打下良好的基础。
二、实验设备电脑一台;实验箱一台;AB接口的USB连线一条;电源线两条。
三、实验步骤1.把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,即向下拨动,再用AB接口的USB连线把PLC与电脑连接起来,然后给PLC上电。
2.启动CX-P软件,新建工程,进入CX-P软件编程环境。
3.根据实验内容在CX-P软件编程环境里进行编程,然后进行相关操作。
4.程序运行调试并修改。
5.保存好文件,做好各项记录。
6.把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,切断点实验箱的电源,盖好实验箱的盖子。
四、课程设计内容及技术指标1、制作爱心流水灯的要求:●爱心分内爱心和外爱心两部分;●从外爱心开始亮从头亮到尾;●又从尾开始每个都亮起来;●然后外爱心开始闪烁5秒;●外爱心灭,内爱心从头亮到尾;●内爱心开始闪烁5秒;●最后再两个同时闪烁5秒;●依次循环;五、系统硬件设计1、系统硬件介绍国际电工委员会(IEC)对PLC的定义是:可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。
心形流水灯STC89C52电子制作焊接套件单片机程序设计0资料

x9 =0; delay2ms();
x10 =0; delay2ms();
x11 =0; delay2ms();
x12 =0; delay2ms();
x13 =0; delay2ms();
x14 =0; delay2ms();
x15 =0; delay2ms();
x16 =0; delay2ms();
x31 =0; delay2ms();
x3elay2ms();
x28 =0; delay2ms();
x27 =0; delay2ms();
x26 =0; delay2ms();
x25 =0; delay2ms();
x13 =0;
x20 =0; delay2ms();
x21 =0;
x12 =0; delay2ms();
x11 =0;
x22 =0; delay2ms();
x23 =0;
x10 =0; delay2ms();
x9 =0;
x24 =0; delay2ms();
x8 =0;
x25 =0; delay2ms();
P1=0xff;
P2=0xff;
P3=0xff;
delay2ms();
x1 =0; delay2ms();
x2 =0; delay2ms();
x3 =0; delay2ms();
x4 =0; delay2ms();
x5 =0; delay2ms();
x6 =0; delay2ms();
x7 =0; delay2ms();
x24 =0; delay2ms();
x23 =0; delay2ms();
心形花样LED流水灯参考文

心形花样LED 流水灯(带程序)1.引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
学习单片机的最有效方法就是理论与实践并重,本文笔者用STC89C52RC单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。
2、主控制器按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
STC89C52RC单片机是以51内核为主的系列单片机,STC单片机是宏晶生产的单时钟/机器周期的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8—12倍,内部集成MAX810专用复位电路。
4路PWM 8路高速10位A、D转换,针对电机控制,强干扰场合。
STC89C52RC单片机引脚如下图:STC89C52RC单片机主要性能●高速:1 个时钟/ 机器周期,增强型8051 内核,速度比普通8051 快8~12 倍●宽电压:5.5~3.8V,2.4~3.8V(STC12LE5410AD 系列)●低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)●工作频率:0~35MHz,相当于普通8051:0~420MHz--- 实际可到48MHz,相当于8051: 0~576MHz●时钟:外部晶体或内部RC 振荡器可选,在ISP 下载编程用户程序时设置● 16K 字节片内Flash 程序存储器,擦写次数10 万次以上● 512 字节片内RAM 数据存储器●芯片内EEPROM 功能● ISP / IAP,在系统可编程/ 在应用可编程,无需编程器/ 仿真器● 10 位ADC,8 通道, STC12C5A16S2 系列为8 位ADC。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• int main (void
•{
•
• uint32_t val = 0;
• {systemInit(); //系统初始化 */
•
beepOff (); //关闭蜂鸣器
/* 系统初始化,切勿删除
lcd_init(); //LCD初始化
LCD_ClearRam();
//清屏
LCD_DisplayStrings (0, 0, "Hello EveryOne!");//列、行、显示的字符串
LCD_DisplayChinese ( 0, 1, "Relay 测试!" ); //中文显示
delayms(200); //加延时
} while (1) {
val=gpioGetValue(CFG_SW1_PORT,CFG_SW1_PIN); if(!val) { Led1On();
RelayOn();
delayms(500);
}
else
{
Led1Off();
RelayOff();
delayms(400);
}
}
}
调试
• 硬件调试
• 我们在硬件电路的制作和调试中发现并解决了很多问题:(1)由于 过于考虑电路板布局的美观,导致增加了焊接时布线的困难,最终我 们通过改变元件位置合理布线解决了这个问题;(2)单片机引脚非 常紧凑,使焊点不容易固定,容易查错引脚,这就锻炼了我们的细心 ;容易造成多点短路或虚焊,因此我们又降低烙铁的温度;(3)刚 开始插件时没有注意电解电容、发光二极管等有极性元件的正负,最 后用万用表测量它们的阻值和电压才找到接反的元件;(4)焊接过 久,导致元器件 损坏,主要是不够熟练;(5)电路板不够简洁、条 理,焊接不够熟练; 因此,我们在焊接和后续调试过程并没有想象 中的顺利。但最终经过我们一遍一遍的调试,终于制作出了一块基本 合格的电路板。
• 软件调试
• 由于继电器控制老师上课讲过,所以做起来没有那么困难一次就调试 成功。
指尖上的设计
心得体会
• 三周的课程设计结束了,在这次的课程设计中不 仅检验了我所学习的知识,也培养了我如何去把 握一件事情,如何去做一件事情,又如何完成一 件事情。在设计过程中,与同学分工设计,和同 学们相互探讨,相互学习,相互监督。学会了合 作,学会了运筹帷幄,学会了宽容,学会了理解 ,也学会了做人与处世。
仰望星空 艾茜茜茜茜
thank you
• 正面图
背面图
型心流水灯成品
继电器控制程序代码
• #include "LPC11xx.h" • #include "gpio.h" • #include "lcd.h" • #include "config.h"
• extern void delayms (uint32_t ulTime); //外部函数定义 • extern void systemInit(void); • extern void beepOff(void); • extern void beepOn(void); • extern void RelayOn(void); • extern void RelayOff(void); • extern void Led1On(void); • extern void Led1Off(void);
电)
设计电路图
PCB图
元器件清单
• AT89C51 1片
电阻 33只(1K:32只,10K:1只)
• 40脚IC座 1只
22PF瓷片电容 2只
• 7x9cm万能板1片 10uF电解质电容一只
• DC座 1只
12M晶振 1只
• 开关 1只
细导线 1米
• 发光二极管 32只 USB电源线 1条
焊接好的实物
继电器控制心型流水灯
第11小组:吴强 张茜茜
设计背景
• 流水灯在现代社会中有广泛的应用,大型 电子广告牌、霓虹灯、指示牌和工业控制 与普适计算、广 泛应用于网络的融合中,也因此被称为继 计算机、互联网之后世界信息产业发展的 第三次浪潮。将流水灯延伸到物联网的学 习对巩固和扩展电子知识有重要意义。
• “千里之行始于足下”,通过这次课程设计,我 深深体会到这句千古名言的真正含义.我今天认 真的进行课程设计,学会脚踏实地迈开这一步, 就是为明天能稳健地在社会大潮中奔跑打下坚实 的基础。
致慧慧老师
• 三尺讲台,三寸舌,三寸笔,三千桃李;十年树 木,十载风,十载雨,十万栋梁。
• 这学期课程设计中,慧慧老师给予了细心的指导 与帮助,使我克服了很多困难终于完成了设计的 制作。慧慧老师广泛的知识、严谨求实的治学态 度及兢兢业业的工作态度和忘我的敬业精神,给 我留了深刻的印象。在设计期间,慧慧老师几乎 每天都来到教室非常令人感动。马上就要离开学 校了心中不由产生“ 相逢一见太匆匆,校内繁花 几度红。厚谊常存魂梦里,深恩永志我心中”之 感。
总体设计思路
• 利用89C51设计一个控制器,控制32个发光 二极管的亮灭。
• 再用试验箱继电器模块控制型心流水灯供 电。
• 单片机最小系统 • 1.晶振,(用于计时,与两个电容并联使用, • 电容大小由晶振决定,一般用22pF) • 2.复位电路(用于复位) • 3.电源(用于供电,一般用电脑的USB口供