16流水灯

合集下载

EDA课程设计,16路花样彩灯

EDA课程设计,16路花样彩灯

——EDA课程设计报告16路花样彩灯设计专业年级:电子信息工程2010级学生姓名:安亮学号:12010248258指导教师:杨泽林第一章绪论1.1系统背景EDA代表了当今电子设计技术的最新发展方向,利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在汁算机上自动处理完成。

设计者采用的设计方法是一种高层次的“自顶向下”的全新设计方法,这种设汁方法首先从系统设计人手,在顶层进行功能方框图的划分和结构设计。

在方框图一级进行仿真、纠错.并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行驶证。

然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路(ASIC)。

设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。

由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次性成功率。

由于现代电子产品的复杂度和集成度的日益提高,一般分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程朋IC器件已蓬勃发展起来。

在EDA技术中所用的大规模、超大规模芯片被称为可编程ASIC芯片,这些可编程逻辑器件自70年代以来,经历了CPm、IzPGA、CPLD、FPGA几个发展阶段,其中CPm(复杂可编程逻辑器件)/IzPGA(现场可编程逻辑器件)肩高密度可编程逻辑器件,目前集成度已高达200万门/片以上,它将掩模ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易地转由掩模ASIC实现,因此开发风险也大为降低。

16组流水灯课程设计

16组流水灯课程设计

16组流水灯课程设计一、课程目标知识目标:1. 让学生掌握16组流水灯的基本电路原理,理解电子元件的功能和相互关系。

2. 使学生了解编程控制16组流水灯的方法,掌握相关编程知识和技巧。

3. 帮助学生理解流水灯在实际应用中的电路设计和调试方法。

技能目标:1. 培养学生动手搭建16组流水灯电路的能力,提高实践操作技能。

2. 培养学生编写程序,实现对16组流水灯的控制,锻炼编程思维。

3. 培养学生运用所学知识解决实际问题的能力,提高创新意识和团队协作能力。

情感态度价值观目标:1. 激发学生对电子技术和编程的兴趣,培养自主学习、探究问题的积极性。

2. 培养学生面对困难时的坚持和毅力,树立自信心,勇于克服挑战。

3. 增强学生的环保意识,培养学生爱护电子设备、节约资源的价值观。

课程性质:本课程为实践性较强的课程,注重理论联系实际,以学生动手实践为主。

学生特点:学生具备一定的电子元件知识和编程基础,喜欢动手实践,具有较强的求知欲。

教学要求:教师需注重引导学生掌握基本原理,关注学生实践操作过程,鼓励学生创新思考,提高解决问题能力。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 电子元件基础知识:复习常用电子元件的功能和符号,重点讲解晶体管、电阻、电容等在流水灯电路中的应用。

相关教材章节:第一章 电子元件及其应用2. 流水灯电路原理:介绍16组流水灯电路的设计原理,分析电路中各个元件的作用及相互关系。

相关教材章节:第二章 基本电路原理3. 编程控制方法:讲解编程控制流水灯的方法,包括编程语言基础、程序结构、控制指令等。

相关教材章节:第三章 编程基础知识;第四章 控制指令及其应用4. 实践操作:指导学生动手搭建16组流水灯电路,编写程序实现流水灯控制效果,并进行调试。

相关教材章节:第五章 实践操作与调试5. 创新设计:鼓励学生运用所学知识进行创新设计,提高流水灯的趣味性和实用性。

单片机的应用流水灯PPT

单片机的应用流水灯PPT
节能环保
单片机流水灯采用低功耗设计 ,能够有效地降低能源消耗, 同时LED灯的使用寿命长,减 少了废弃物对环境的影响。
舞台灯光效果
舞台灯光效果
单片机流水灯可以用于舞台灯光 效果的设计,通过控制LED灯的 亮灭和颜色变化,营造出绚丽多
彩的舞台氛围。
颜色变化
通过单片机编程控制LED灯的颜色 变化,可以实现多种颜色的交替变 换,创造出梦幻般的舞台效果。
同时,单片机也具有丰富的外设接口 和强大的扩展能力,可以方便地与其 他设备进行连接和控制。
03
单片机控制流水灯的实现
硬件连接
确定单片机型号
根据项目需求选择合适的单片机型号,如常用的51 单片机、STM32等。
流水灯电路设计
根据单片机IO口的数量和项目需求,设计出合适的 流水灯电路,包括LED灯的连接方式、限流电阻的选 择等。
调试与测试
01
02
03
04
硬件调试
检查硬件连接是否正确,确保 电源、地线、信号线等连接无 误。
软件调试
通过仿真器或烧录器将程序代 码烧录到单片机中,进行软件 调试,检查程序逻辑和运行状 态是否正常。
功能测试
对流水灯进行功能测试,包括 单向流水、双向流水、闪烁等 功能的测试,确保满足项目需 求。
性能测试
详细描述
单片机的应用领域非常广泛,在工业控制领域中,单片机可以用于实现自动化控制和数 据采集;在智能家居领域中,单片机可以用于实现智能照明、智能安防等;在智能仪表 领域中,单片机可以用于实现智能化测量和控制;在消费电子领域中,单片机可以用于
实现各种智能化功能和人机交互。
02
流水灯简介
单片机的定义
智能控制
通过单片机编程,可以实现交通信号 灯的智能控制,根据交通流量和车流 情况自动调整信号灯的亮灭顺序和时 间间隔,提高交通效率。

多路流水灯课程设计

多路流水灯课程设计

多路流水灯课程设计一、课程目标知识目标:1. 学生能理解多路流水灯的基本原理,掌握相关电子元件的功能和连接方式。

2. 学生能描述多路流水灯电路的工作过程,了解编程控制原理。

3. 学生能掌握基本的数字电路知识,理解电路图的阅读与绘制。

技能目标:1. 学生能独立完成多路流水灯电路的搭建,提高动手实践能力。

2. 学生能运用编程软件编写控制程序,实现多路流水灯的功能。

3. 学生能通过团队合作,解决实际操作过程中遇到的问题,提高问题解决能力。

情感态度价值观目标:1. 学生能培养对电子制作的兴趣,激发创新意识。

2. 学生能在实践中体会团队协作的重要性,培养良好的团队精神。

3. 学生能关注电子产品在实际生活中的应用,认识到科技与生活的密切关系。

课程性质:本课程为电子技术实践课程,以学生动手实践为主,结合理论知识学习。

学生特点:初中学生具有一定的物理知识和动手能力,对新鲜事物充满好奇。

教学要求:教师需引导学生掌握多路流水灯的基本原理,注重培养学生的动手实践能力和团队合作精神。

在教学过程中,关注学生的个性化发展,激发学生的创新意识。

通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的学习成果。

二、教学内容1. 理论知识:- 介绍多路流水灯的基本原理及电路构成。

- 分析常见电子元件(如LED、电阻、电容、二极管等)的作用及选型。

- 讲解数字电路基础知识,如逻辑门、触发器等。

- 结合教材相关章节,阐述编程控制原理及方法。

2. 实践操作:- 设计多路流水灯电路图,并进行电路搭建。

- 编写程序,实现多路流水灯的控制效果。

- 学习使用编程软件和调试工具,进行电路调试与优化。

3. 教学大纲:- 第一阶段:理论学习,包括电路原理、元件选型及编程控制方法。

- 第二阶段:实践操作,分步骤进行电路搭建、编程与调试。

- 第三阶段:成果展示与评价,展示学生作品,进行自评、互评和教师评价。

4. 教学内容安排与进度:- 理论知识部分,按照教材章节顺序进行教学,共计4课时。

单片机三个引脚控制16路流水灯

单片机三个引脚控制16路流水灯

单⽚机三个引脚控制16路流⽔灯我们先来看下最终的效果我们先⽤单⽚机按照74HC595⼿动分解的例⼦,来实现我们想要的结果。

⾸先,我们让16个LED灯交叉亮起来代码部分:int STCP_Pin = 4;int SHCP_Pin = 6;int DS_Pin = 5;void setup (){pinMode(STCP_Pin,OUTPUT);pinMode(SHCP_Pin,OUTPUT);pinMode(DS_Pin,OUTPUT);}// 我们先让16个灯交叉亮void loop(){while(1){digitalWrite(STCP_Pin, LOW);// 1digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 2digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 3digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 4digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 5digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 6digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 7digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 8digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 9digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 10digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 11digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 12digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 13digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 14digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);// 15digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);// 16digitalWrite(SHCP_Pin, LOW);digitalWrite(DS_Pin, HIGH);digitalWrite(SHCP_Pin, HIGH);digitalWrite(STCP_Pin, HIGH);}}运⾏效果然后我们再把代码简化⼀下,使其看起来更简洁,实⽤int STCP_Pin = 4;int SHCP_Pin = 6;int DS_Pin = 5;void setup (){pinMode(STCP_Pin,OUTPUT);pinMode(SHCP_Pin,OUTPUT);pinMode(DS_Pin,OUTPUT);digitalWrite(STCP_Pin, LOW);}void loop(){unsigned char LED_Data;while(1){LED_Data = 0xAA;// 第⼀个8位digitalWrite(STCP_Pin, LOW);for(int i=0; i<8; i++){if(LED_Data&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);LED_Data <<=1;}// 第⼆个8位LED_Data = 0xAA;for(int i=0; i<8; i++){if(LED_Data&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);LED_Data <<=1;}digitalWrite(STCP_Pin, HIGH);delay(1000);}}我们稍微改变下,让LED灯按照我们的意思⼯作,封装⼀下函数,然后让中间四个灯亮起来int STCP_Pin = 4;int SHCP_Pin = 6;int DS_Pin = 5;void HC595_Write(unsigned char data1, unsigned char data2);void setup (){pinMode(STCP_Pin,OUTPUT);pinMode(SHCP_Pin,OUTPUT);pinMode(DS_Pin,OUTPUT);}void loop(){unsigned char LED_Data1 = 0x03;unsigned char LED_Data2 = 0xC0;while(1){HC595_Write(LED_Data1, LED_Data2);delay(1000);}}void HC595_Write(unsigned char data1, unsigned char data2) {// 第⼀个8位digitalWrite(STCP_Pin, LOW);for(int i=0; i<8; i++){if(data1&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);data1 <<=1;}// 第⼆个8位for(int i=0; i<8; i++){if(data2&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);data2 <<=1;}digitalWrite(STCP_Pin, HIGH);}中间四个LED灯亮的效果然后我们连贯起来搞个流⽔的灯玩玩int STCP_Pin = 4;int SHCP_Pin = 6;int DS_Pin = 5;unsigned char LED_Data1[8] = { 0x01, 0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80};unsigned char LED_Data2[8] = { 0x01, 0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80};void HC595_Write(unsigned char data1, unsigned char data2); void setup (){pinMode(STCP_Pin,OUTPUT);pinMode(SHCP_Pin,OUTPUT);pinMode(DS_Pin,OUTPUT);}void loop(){while(1){for(int i=0; i<8; i++){HC595_Write(0x00, LED_Data1[i]);delay(1000);}for(int i=0; i<8; i++){HC595_Write( LED_Data2[i], 0x00);delay(1000);}}}void HC595_Write(unsigned char data1, unsigned char data2){// 第⼀个8位digitalWrite(STCP_Pin, LOW);for(int i=0; i<8; i++){if(data1&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);data1 <<=1;}// 第⼆个8位for(int i=0; i<8; i++){if(data2&0x80){ digitalWrite(DS_Pin, HIGH);}else { digitalWrite(DS_Pin, LOW); }digitalWrite(SHCP_Pin, LOW);digitalWrite(SHCP_Pin, HIGH);data2 <<=1;}digitalWrite(STCP_Pin, HIGH);}最终的流⽔灯实验效果当然arduino本⾝⾃带了移位函数,同样可以达到效果int STCP_Pin = 4;int SHCP_Pin = 6;int DS_Pin = 5;unsigned char LED_Data1[8] = { 0x01, 0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80};unsigned char LED_Data2[8] = { 0x01, 0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80};void setup (){pinMode(STCP_Pin,OUTPUT);pinMode(SHCP_Pin,OUTPUT);pinMode(DS_Pin,OUTPUT);}void loop(){for(int a=0; a<8; a++){digitalWrite(STCP_Pin,LOW);shiftOut(DS_Pin,SHCP_Pin,MSBFIRST,LED_Data1[a]);shiftOut(DS_Pin,SHCP_Pin,MSBFIRST,0x00);digitalWrite(STCP_Pin,HIGH);delay(500);}for(int a=0; a<8; a++){digitalWrite(STCP_Pin,LOW);shiftOut(DS_Pin,SHCP_Pin,MSBFIRST,0x00);shiftOut(DS_Pin,SHCP_Pin,MSBFIRST,LED_Data2[a]);digitalWrite(STCP_Pin,HIGH);delay(500);}}流⽔的延时500ms的效果总结:1、复杂的功能,深⼊分解后背后的原理其实还是挺简单的;2、我们绝⼤部分时候都在造“轮⼦“,殊不知更优秀的“轮⼦”已经造好了;知晓“轮⼦”的由来,然后造出更优秀的“轮⼦”给⾃⼰⽤也是单⽚机学习路上的⼀项重要技能。

8255 16LED流水灯设计 代码

8255 16LED流水灯设计    代码

题目:16LED流水灯设计:8255A口,B口输出,连接小灯,8254用于延时,控制灯光移动速度,为实现速度随时可调,将8254计数器0与计数器1级联,给计数器1赋不同值,延时时间不同,用开关完成该操作,开关1上拨,为速度等级1,开关2上拨,为速度等级2,开关3上拨,为速度等级3,开关4上拨,为速度等级4,开关8上拨,程序结束。

接口:8255C端口连接开关,为输入;AB口连接小灯,为输出,8255接片选信号CS0,8254接片选信号CS1,CLK0接47K,OUT0接CLK1,OUT1接PC4。

源程序如下;8255的A、B口输出,C口的低四位接开关控制,8254计数器0和计数器1 级联,8255片选接CS1开关调速;8254接CS2;.486CODE SEGMENT USE16ASSUME CS:CODEORG1000HBEG:JMP STARTSTART:MOV DX,30CHMOV AL,10001001BOUT DX,ALMOV DX,300HMOV AL,0FFHOUT DX,ALMOV DX,304HMOV AL,0FFHOUT DX,AL ;初始化小灯,AB口均送1,灭掉十六个小灯;开关复位程序KAIGUAN:MOV AL,0MOV DX,308HIN AL,DX ;读入C口AND AL,00001111BTEST AL,00000001B;检查开关状态,只能最慢开始(一个高电平最快,三个高电平最慢,四个结束程序)JZ KAIGUANAG0: MOV BH,11111110B ;从左到右循环分支L0: MOV DX,300H ;A口MOV AL,BHMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001B ;开关1 高电平,速度等级1JZ LA1CMP AL,00000011B ;开关1、2高电平,速度等级2JZ LA2CMP AL,00000111B ;开关1、2、3高电平,速度等级3JZ LA3CMP AL,00001111B ;开关1、2、3、4高电平,速度等级4 JZ LA4CMP AL,10001111B ;拨开关8,程序结束JZ END1LA1: MOV CX,50JMP F0LA2: MOV CX,100JMP F0LA3: MOV CX,150JMP F0LA4: MOV CX,200JMP F0F0: CALL DELAYROL BH,1CMP BH,11111110BJNZ L0MOV DX,300HMOV AL,0FFHOUT DX,ALMOV BH,0FFHMOV BH,01111111BL1: MOV DX,304H ;B口MOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LB1CMP AL,00000011BJZ LB2CMP AL,00000111BCMP AL,00001111BJZ LB4CMP AL,10001111BJZ END1LB1: MOV CX,50JMP F1LB2: MOV CX,100JMP F1LB3: MOV CX,150JMP F1LB4: MOV CX,200JMP F1F1:CALL DELAYROR BH,1CMP BH,01111111BJNZ L1MOV DX,304HMOV AL,0FFHOUT DX,ALAG1: MOV BH,11111110B ;右到左R0: MOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LC1CMP AL,00000011BJZ LC2CMP AL,00000111BJZ LC3CMP AL,00001111BJZ LC4CMP AL,10001111BJZ END1LC1: MOV CX,50LC2: MOV CX,100JMP F2LC3: MOV CX,150JMP F2LC4: MOV CX,200JMP F2F2:CALL DELAYROL BH,1CMP BH,11111110BJNZ R0MOV DX,304HMOV AL,0FFHOUT DX,ALMOV BH,01111111BR1:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LD1CMP AL,00000011BJZ LD2CMP AL,00000111BJZ LD3CMP AL,00001111BJZ LD4CMP AL,10001111BJZ END1LD1: MOV CX,50JMP F3LD2: MOV CX,100JMP F3LD3: MOV CX,150JMP F3LD4: MOV CX,200JMP F3F3:CALL DELAYROR BH,1CMP BH,11111110BJNZ R1MOV DX,300HMOV AL,0FFHOUT DX,ALAG2:MOV BH,01111111B ;两边向中间M0:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LE1CMP AL,00000011BJZ LE2CMP AL,00000111BJZ LE3CMP AL,00001111BJZ LE4CMP AL,10001111BJZ END1LE1: MOV CX,50JMP F4LE2: MOV CX,100JMP F4LE3: MOV CX,150JMP F4LE4: MOV CX,200JMP F4F4:CALL DELAYROR BH,1CMP BH,01111111BJNZ M0MOV DX,300HMOV AL,0FFHOUT DX,ALAG3:MOV BH,11111110B ;中间向两边M1:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LF1CMP AL,00000011BJZ LF2CMP AL,00000111BJZ LF3CMP AL,00001111BJZ LF4CMP AL,10001111BJZ END1LF1: MOV CX,50JMP F5LF2: MOV CX,100JMP F5LF3: MOV CX,150JMP F5LF4: MOV CX,200JMP F5F5:CALL DELAYROL BH,1CMP BH,11111110BJNZ M1MOV DX,304HMOV AL,0FFHOUT DX,ALCYCLE: JMP AG0DELAY PROC NEAR ;8254MOV DX,32CHMOV AL,00110110B ;通道0 ,方式0,二进制方式OUT DX,ALMOV DX,320H ;通道0MOV AX,470 ;写入计数初值OUT DX,ALMOV AL,AHOUT DX,AL ; clock接4.7kHz,计数器0输出0.01s脉冲信号MOV DX,32CHMOV AL,01110110BOUT DX,AL ;计数器1方式2MOV DX,324HMOV AX,CXOUT DX,ALMOV AL,AHOUT DX,AL ;CX的值给到计数器1AGAIN: MOV DX,308HIN AL,DXAND AL,00010000BTEST AL,00010000BJNZ AGAINNEXT: MOV DX,308HIN AL,DXAND AL,00010000BTEST AL,00010000BJZ NEXTRETDELAY ENDPEND1: MOV DX,304HMOV AL,0FFHOUT DX,ALMOV DX,300HMOV AL,0FFHOUT DX,ALWT: JMP WTCODE ENDSEND START。

LED流水灯实验报告

LED流水灯实验报告
RST/VPD:复位/备用电源线,可以使单片机处于复位工作状态,外接人工按钮复位。
EA/VPP允许访问片外存储器/编程电源线,他可控制单片机使用片内ROM还是还是使用片外ROM,若EA为1允许使用片内ROM,为0则允许使用片外ROM。
七、实验过程
下载程序:
程序下载成功
程序检测
新建文本文档(程序)
#include "reg52.h"
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O引脚。系统已采用MCS—51系列单片机为中心器件来设计LED流水灯系统,实现LED左循环显示,并实现循环的速度可调。
二、设计目的
1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
在此我们还需注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令时的时间很短,我们在控制二极管亮灭的时候应该延迟一段时间,否则我们就看不到“流水”的效果了。
五、模块介绍
采用AT89C51作为主控芯片,将P1分别接8个LED实现显示,采用汇编语言编程和C语言实现。方案框图如下:
图2.1
六、元件清单
元件
如果要让接在P1.0口的LED1亮起来,那么只需要把P1.0口的电平变为低电平就可以了;相反,如果要让接在P1.0口的LED1熄灭,那么只需要把P1.0口的电平变为高电平就可以了;同理,接在P1.1—P1.7口的其他7个LED的点亮的熄灭的方法同LED1。因此,只要使接在单片机上的八个LED灯在接通电源后除了最右端一个其余都亮,一秒后倒数第二个熄灭其余都亮,如此循环往复,就可以达到流水的效果。
AT89C51芯片外形结构和引脚分布图

用单片机实现流水灯的控制设计

用单片机实现流水灯的控制设计

用单片机实现流水灯的控制设计1.引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。

学习单片机的最有效方法就是理论与实践并重,本设计课题是流水灯的控制设计,流水灯是一串按一定的规律像流水一样连续闪亮。

流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。

2.硬件组成2.1 总体方案设计分析要求用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C口的地两位接两个开关,实现两个扩展功能的控制。

i:基本流水灯显示电路A口和B口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A口进行赋值,用BL对B口进行赋值,通过演示一段时间再对BH BL 进行移位和输出,实现流水灯的效果。

ii:正反方向选择把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时B口与A口相反。

iii:快慢速度控制把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。

3硬件原理设计A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIORB该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7)C 8255模块选通线CA连到PC总线接口模块的IOY3D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16E 8255的PC0 PC1分别练到开关K0 K1F 软件流程框图及程序清单按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

流水灯实验报告

流水灯实验报告

流水灯实验报告课程名称:LED流水灯实验报告学院:xxxxx学院专业:姓名:学号:年级:任课教师:【正文】一、实验的背景和意义单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把CPU随机存储器RAM、只读存储器ROM、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。

大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。

本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。

本系统就是充分利用了8051芯片的I/O引脚。

系统已采用MCS—51系列单片机为中心器件来设计LED流水灯系统,实现LED左循环显示,并实现循环的速度可调。

二、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2.掌握汇编语言程序和C 语言程序设计方法。

3.培养实践技能,提高分析和解决实际问题的能力。

三、设计任务及要求 1.用个发光二极管作为显示电路 2.实现LED 动态显示 3.能连续循环显示 四、 设计思路LEDLED如果要让接在P1.0口的LED1亮起来,相反,如果要让接在P1.0口的LED1熄灭,那么只需要把P1.0口的电平变为高电平就可以了;同理,接在P1.1—P1.7口的其他7个LED 的点亮的熄灭的方法同LED1。

16路流水灯8种流动方式程序

16路流水灯8种流动方式程序

基于AT89C52的16路流水灯代码#include <REG52.H>unsigned char RunMode;/**********************************SystemFuction*************************************************/void Delay1ms(unsigned int count){unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}unsigned char code LEDDisplayCode[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //0~70x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};void Display(unsigned char Value){P3 = LEDDisplayCode[Value];}void LEDFlash(unsigned char Count){unsigned char i;bit Flag;for(i = 0; i<Count;i++){Flag = !Flag;if(Flag)Display(RunMode);elseDisplay(0x10);Delay1ms(100);}Display(RunMode);}unsigned char GetKey(void){unsigned char KeyTemp,CheckV alue,Key = 0x00;CheckValue = P2&0x32;if(CheckValue==0x32)return 0x00;Delay1ms(10);KeyTemp = P2&0x32;if(KeyTemp==CheckValue)return 0x00;if(!(CheckValue&0x02))Key|=0x01;if(!(CheckValue&0x10))Key|=0x02;if(!(CheckValue&0x20))Key|=0x04;return Key;}unsigned int TimerCount,SystemSpeed,SystemSpeedIndex;void InitialTimer2(void){T2CON = 0x00; //16 Bit Auto-Reload ModeTH2 = RCAP2H = 0xFC; //重装值,初始值TL2 = RCAP2L = 0x18;ET2=1; //定时器2 中断允许TR2 = 1; //定时器2 启动EA=1;}unsigned int code SpeedCode[]={ 1, 2, 3, 5, 8, 10, 14, 17, 20, 30,40, 50, 60, 70, 80, 90,100, 120, 140, 160,180, 200, 300, 400, 500, 600, 700, 800, 900,1000};//30void SetSpeed(unsigned char Speed){SystemSpeed =SpeedCode[Speed];}void LEDShow(unsigned int LEDStatus){P1 = ~(LEDStatus&0x00FF);P0 = ~((LEDStatus>>8)&0x00FF);}void InitialCPU(void){RunMode = 0x00;TimerCount = 0;SystemSpeedIndex = 10;P1 = 0x00;P0 = 0x00;P2 = 0xFF;P3 = 0x00;Delay1ms(500);P1 = 0xFF;P0 = 0xFF;P2 = 0xFF;P3 = 0xFF;SetSpeed(SystemSpeedIndex);Display(RunMode);}//Mode 0unsigned int LEDIndex = 0;bit LEDDirection = 1,LEDFlag = 1;void Mode_0(void){LEDShow(0x0001<<LEDIndex);LEDIndex = (LEDIndex+1)%16;}//Mode 1void Mode_1(void){LEDShow(0x8000>>LEDIndex);LEDIndex = (LEDIndex+1)%16;}//Mode 2void Mode_2(void){if(LEDDirection)LEDShow(0x0001<<LEDIndex);elseLEDShow(0x8000>>LEDIndex);if(LEDIndex==15)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%16;}//Mode 3void Mode_3(void){ if(LEDDirection)LEDShow(~(0x0001<<LEDIndex));elseLEDShow(~(0x8000>>LEDIndex));if(LEDIndex==15)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%16;}//Mode 4void Mode_4(void){if(LEDDirection){if(LEDFlag)LEDShow(0xFFFE<<LEDIndex);elseLEDShow(~(0x7FFF>>LEDIndex));}else{if(LEDFlag)LEDShow(0x7FFF>>LEDIndex);elseLEDShow(~(0xFFFE<<LEDIndex));}if(LEDIndex==15){LEDDirection = !LEDDirection;if(LEDDirection) LEDFlag = !LEDFlag;}LEDIndex = (LEDIndex+1)%16;}//Mode 5void Mode_5(void){if(LEDDirection)LEDShow(0x000F<<LEDIndex);elseLEDShow(0xF000>>LEDIndex);if(LEDIndex==15)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%16;}//Mode 6void Mode_6(void){if(LEDDirection)LEDShow(~(0x000F<<LEDIndex));elseLEDShow(~(0xF000>>LEDIndex));if(LEDIndex==15)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%16;}//Mode 7void Mode_7(void){if(LEDDirection)LEDShow(0x003F<<LEDIndex);elseLEDShow(0xFC00>>LEDIndex);if(LEDIndex==9)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%10;}//Mode 8void Mode_8(void){LEDShow(++LEDIndex);}void TimerEventRun(void){if(RunMode==0x00){Mode_0();}else if(RunMode ==0x01){Mode_1();}else if(RunMode ==0x02){Mode_2();}else if(RunMode ==0x03){Mode_3();}else if(RunMode ==0x04){Mode_4();}else if(RunMode ==0x05){Mode_5();}else if(RunMode ==0x06){Mode_6();}else if(RunMode ==0x07){Mode_7();}else if(RunMode ==0x08){Mode_8();}}void Timer2(void) interrupt 5 using 3{TF2 = 0; //中断标志清除( Timer2 必须软件清标志!)if(++TimerCount>=SystemSpeed){TimerCount = 0;TimerEventRun();}}unsigned char MusicIndex = 0;void KeyDispose(unsigned char Key){if(Key&0x01){LEDDirection = 1;LEDIndex = 0;LEDFlag = 1;RunMode = (RunMode+1)%9;Display(RunMode);}if(Key&0x02){if(SystemSpeedIndex>0){--SystemSpeedIndex;SetSpeed(SystemSpeedIndex);}else{LEDFlash(6);}}if(Key&0x04){if(SystemSpeedIndex<28){++SystemSpeedIndex;SetSpeed(SystemSpeedIndex);}else{LEDFlash(6);}}}//***************************************************************************** ******main(){unsigned char Key;InitialCPU();InitialTimer2();while(1){Key = GetKey();if(Key!=0x00){KeyDispose(Key);}}}。

流水灯说明书

流水灯说明书

流水灯说明书The Standardization Office was revised on the afternoon of December 13, 2020目录目录 (2)1 设计的意义 (3)2 设计思路 (3)设计目标 (3)设计方案 (3)仿真软件 (3)3 电路设计 (3)四种码产生电路 (3)彩灯自动转换控制电路 (5)花样输出电路设计 (5)各种芯片管脚图 (6)4 总体电路仿真 (7)电路器件清单 (7)总体电路仿真 (7)仿真结果 (8)5 总结 (9)致谢 (14)参考文献 (15)多路彩灯控制器电路的设计摘要:四花样自动切换的彩灯控制器第一种花样为彩灯一亮一灭,从左向右移动;第二种花样为彩灯两亮两灭,从左向右移动;第三种花样为彩灯四亮四灭,从左向右移动;第四种花样为彩灯1到8从左到右逐次点亮,又从左到右逐次熄灭。

4种花样自动变换,循环往复。

CP1直接控制驱动LED的芯片的移位脉冲端以及二进制计数器以便输出4个分频信号,CP2控制双 D触发器,其输出的信号作为下一级数据选择器的输入信号,数据选择器产生的信号直接驱动闪动演示电路。

CP2也可调节RW2改变其输出脉冲周期,可以改变开关的切换时间,用以选择每种花样出现时间的长短,实现灯光闪烁的双重控制。

关键词:四花样、时钟脉冲、自动转换、控制器、数据选择器。

1设计的意义新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出,传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一,自贡灯会这门古老的艺术更加绚丽多彩。

2设计思路设计目标本设计目标是彩灯四花样自动切换,我们预计要设计第一种花样为彩灯一亮一灭,从左向右移动;第二种花样为彩灯两亮两灭,从左向右移动;第三种花样为彩灯四亮四灭,从左向右移动;第四种花样为彩灯1到8从左到右逐次点亮,又从左到右逐次熄灭。

16流水灯编程作业

16流水灯编程作业

16流水灯编程作业本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March编程作业1.32位流水灯。

说明:由P0、P1、P2、P2口组成32位流水灯依次点亮,如此循环。

2.16位拉幕灯。

说明:由P1、P2组成16位拉幕灯,依次由P1.0逐次点亮到P2.7。

再由P2.7到P1.0逐次熄灭。

如此循环。

3.32位流水灯交替点亮。

说明:由P0、P1、P2、P3组成32位流水灯交替显示。

第一步:先同时点亮P0.0、P0.2、P0.4、…….、.P3.6。

P0.1、P0.3、P0.5、………、P3.7不亮第二步:同时点亮P0.1、P0.3、P0.5、………、P3.7。

P0.0、P0.2、P0.4、…….、.P3.6不亮。

如此循环。

4.8位流水灯闪烁点亮。

说明:8位流水灯依次点亮,每位灯闪烁三次,再点亮下一位。

8位灯依次全部闪烁后,再将8位灯同时点亮闪烁三次。

如此循环。

5.16位流水灯收缩点亮。

说明:由P1、P2口组成16位流水灯。

第一步:由P1.0逐次向P1.7点亮,同时由P2.7逐次向P2.0点亮。

第二步:全亮后,由中间向两边逐次熄灭。

如此循环。

6.16位流水灯相向点亮。

说明:由P1、P2口组成16位流水灯依次分别点亮。

第一步:由P1.0逐次向P2.7流水点亮。

第二步:同时由P2.7逐次向P1.0流水点亮。

如此循环。

7.一键多控流水灯。

说明:在P1.0设置一个按键,在P2口连接8位流水灯,每按一次按键点亮一位灯,再按一次开关,点亮下一位灯,如此循环。

8.多位开关控制不同显示速度。

说明:在P1.0、P1.1、P1.2、P1.3口设置4个按键,在P2口连接8位流水灯。

当按下不同的按键,使8位流水灯按不同的速度显示。

9.LED灯显示8位开关状态。

说明:在P1口连接8位开关,在P2口连接8位LED灯,用8位灯的亮或不亮显示8位开关的状态。

16位LED流水灯

16位LED流水灯

16个LED流水灯的设计基本要求:1、控制16个灯,顺次点亮,间隔1S。

2、灯的功率为50W,供电电压220V。

3、画电路设计图,写出程序。

4、写设计的基本思路、元器件特性5页以上。

提点要求:自己写写内容,框架给你点意见一、框架,比如下面这个,自己照着画一个二、简单介绍一下外围电路,比如说下面的:1.1晶振电路单片机的定时控制功能是有片内的时钟电路和定时电路来完成的,而片内的时钟产生方式有两种:内部时钟方式和外部时钟方式。

这里我采用的是内部时钟方式,如下图。

片内高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的晶体与电容组成的并联谐振回路,构成一个自激振荡器向内部时钟电路提供振荡时钟。

电容C1 、C2的值则有微调的作用,通常取30pF左右。

贵贵州大学本科课程设计第 6 页1.3 复位电路51系列单片机的复位引脚RST上只要出现10ms以上的高电平,单片机就会实现复位,如下图:上电时,+5V电源立即对单片机芯片供电,同时经R对C5充电。

C5上电压建立的工程就产生一定宽度的负脉冲,经过反向,RST上出现正脉冲,使单片机实现了上电复位。

按钮按下时,RST上同样出现高电平,实现了按钮复位。

在应用系统中,有些外围芯片也需要复位。

如果这些芯片复位端的复位电平与单片机一致,则可以与单片机复位脚相连。

因此,非门在这里不仅起了反向的作用,还增大了驱动能力。

电容C3、C4起滤波作用,可以防止干扰窜入复位端而产生误动作。

剩下的自己完成啦!一、电路图二、程序#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar code table[16]={ //LED灯共阴极链接0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};void delay(us) //延时子程序{uint i,j;for(i=0;i<110;i++)for(j=0;j<us;j++);}//主程序main(){uint i,j;P0=0x00; //给P0、P2口置处置P2=0x00;while(1) //实现LED流水灯{for(i=0;i<8;i++){P0=table[i];delay(100);}P0=0x00;for(j=0;j<8;j++){P2=table[j];delay(100);}P2=0x00;}}三、仿真结果。

节日炫彩流水灯

节日炫彩流水灯

节日炫彩流水灯一、设计目标16个发光二极管LED0~LED15经限流电阻分别接至P1口和P2口,阳极共同接高电平。

编程实现制作节日炫彩流水灯,控制其流水或闪烁花样和速度,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭),用按键1在几种灯光效果间切换,用按键2加速,用按键3减速,用按键4暂停彩灯效果,再按一下恢复运行。

二、设计方案1、利用P1、P2口接出16个发光二极管,P3.0、P3.1、P3.2、P3.3接四个按钮,分别控制程序的减速、加速、变换闪烁方式、暂停和恢复。

2、定义了一个delay 函数用于延时。

3、进入主程序先让16个LED 灯全亮,通过按键P3.2控制六种闪烁方式,定义一个变量key ,每按下P3.2进一次中断key 加1,主函数里通过 switch(key) 切换闪烁方式。

4、定义了一个变量flag 控制程序的暂停与恢复。

每按下P3.3进入中断flag 取反一次,在闪烁程序中通过判断flag 控制暂停还是恢复。

5、定义了一个变量speed 来控制闪烁的快慢。

每按下P3.0一次speed 加50000,使闪烁变慢,每按下一次P3.1,speed 减50000,使闪烁加快。

6、变换函数:Change1:p1、p2连接的灯分别单灯循环下移。

Change2:p1、p2连接的灯先全灭后不断闪烁。

Change3:p1、p2连接的灯分别单灯循环上移。

Change4:p1、p2连接的灯分别奇偶交替闪烁。

Change5:p1、p2连接的灯分别双灯循环下移。

Change6:p1、p2连接的灯上三个下五个交替闪烁。

三、程序流程否是开始 P1、P2全部点亮,外部中断初始化 判断flag 的值是否为1=1 =2 =3 =4 =5 =6否是否是Switch 判断key 的值Change1 执行第一种闪烁方式 Change2 执行第二种闪烁方式 Change3 执行第三种闪烁方式 Change4 执行第四种闪烁方式Change5 执行第五种闪烁方式 Change6 执行第六种闪烁方式 判断是否加速或减速 改变delay 函数改变闪烁速度 判断是否要暂停进入暂停状态四、源程序#include<reg51.h>#define uchar unsigned charunsigned char key=0;int flag=1,speed,d;sbit S1=P3^0;sbit S2=P3^1;void init(); //中断初始化函数声明void change1(); //闪烁方式变化函数声明void change2();void change3();void change4();void change5();void change6();void delay() //延时函数{int i,j;speed=10000;if (d==1)speed=speed+50000;if (d==2)speed=speed-50000;d=0;for(j=0;j<10000;j++);for(i=0;i<speed;i++);} //主函数void main(){P1=0; //让P1口连接的LED灯全亮P2=0; //让P2口连接的LED灯全亮init(); //调用中断初始化函数while(1){if(flag==1) //判断是否暂停{switch(key){case 1:change1();break;case 2:change2();break;case 3:change3();break;case 4:change4();break;case 5:change5();break;case 6:change6();break;}}}}void init() //中断初始化函数{EA=1; //开总中断EX0=1; // 外部中断0允许EX1=1; //外部中断1允许IT1=1; //外部中断1下降沿触发IT0=1; //外部中断0下降沿触发PX1=1; //外部中断1高优先级}void service1() interrupt 0 using 1 //外部中断0中断服务子程序{IE0=0;key++; //每进一次中断key加1 if (key==7){key=1;}}void service2() interrupt 2 using 2 //外部中断1中断服务子程序{IE1=0;flag=~flag; //每进一次中断flag取反一次}void change1() //第一种闪烁变换方式函数{unsigned char i,a=1,b=0x80;delay();for(i=0;i<8;i++){ if(S1==0) //判断是否要加速或减速{d=1;}if(S2==0){ d=2;}if (key!=1) //判断是否要变换闪烁方式break;P1=~a;P2=~b;delay();delay();b<<=1; //P2口连接的灯从P2.7到P2.0循环左移a<<=1; //P1口连接的灯从P1.0到P1.7循环左移delay();delay();if(a==0)a=1;if(b==0)b=1;while (flag!=1); //判断是否要暂停}}void change2() //第二种闪烁变换方式函数{ P1=0X00;P2=0X00;while (1){if(S1==0) //判断是否要加速或减速d=1;if(S2==0)d=2;if (key!=2) //判断是否要变换闪烁方式break;P1=~P1; //P1口取反闪烁delay();P2=~P2;delay();while (flag!=1); //判断是否要暂停}}void change3() //第三种闪烁变换方式函数{unsigned char i,a=0x80;delay();while(1){ for(i=0;i<8;i++){ if(S1==0)d=1; //判断是否要加速或减速if(S2==0)d=2;if (key!=3) //判断是否要变换闪烁方式break;P2=~a; //P2口单灯循环右移delay();a>>=1;delay();if(a==0)a=0x80;}for(i=0;i<8;i++) //P1口单灯循环右移{P1=~a;delay();a>>=1;delay();if(a==0)a=0x80;while (flag!=1);} }}void change4() //第四种闪烁变换方式函数{ P1=0x55;P2=0x55;while (1){ if(S1==0) //判断是否要加速或减速d=1;if(S2==0)d=2;if (key!=4) //判断是否要变换闪烁方式break;P1=~P1; //P1、P2口奇偶交替闪烁P2=~P2;delay();while (flag!=1); //判断是否要暂停}}void change5() //第四种闪烁变换方式函数{unsigned char i;while (1){if (key!=5) //判断是否要变换闪烁方式break;for (i=0;i<8;i++){if(S1==0)d=1; //判断是否要加速或减速if(S2==0)d=2;if(i<7){P1=~(3<<i); //P1口双灯循环左移P2=~(3<<i); //P2口双灯循环左移delay();delay();}else{P1=~(0x81);P2=~(0x81);delay();delay();}while (flag!=1); //判断是否要暂停}}}void change6(){P1=0xf8;P2=0xf8;while (1){ if(S1==0)d=1;if(S2==0)d=2;if (key!=6)break;P1=~P1;P2=~P2;delay();delay();while (flag!=1); }}五、硬件原理图1、电路总图2、闪烁模块3、按键模块4、单片机主体5、复位模块6、时钟电路六、仿真结果1、全亮2、循环下移3、奇偶交替闪烁4、循环上移5、奇偶交替闪烁6、双灯循环下移7、上三个下五个交替闪烁8、暂停七、设计总结1、关于硬件仿真本次我设计的单片机题目为“节日炫彩流水灯”,在protuse仿真里主要用到了80c51单片机、16个四种颜色的LED灯、电阻若干、电容若干、电源若干、四个按键。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档