花样流水灯设计
DSP实验一:花样流水灯设计
由于采用 CCS5.5 版本导入工程后编译存在很多错误 (包括路径修 改、软件安装缺少驱动等问题) ,捣鼓了半天也搞不好,于是果断放 弃 CCS5.5,安装 CCS8.0 集成开发环境,以正确快速进行实验。 如一个工程前,首先,从 CCS8.0 中的 Resource Explorer 找 到 F28335 例程。
将其导入到 CCS8.0 里面,然后修改里面的 MAIN 函数。如图
可以看出,工程名为“Example_2833xGpioToggle”的主函数包含在 C 文件“example_LEDKey”中。 添加自己的源程序代码, 即可编译成功。
模式*开始 延时控制开始
GPIO 单口控制
7组
延时控制子函数
高 速
中 速
低 速
键扫描 返回
返回
键扫描:采用线键盘(采用矩阵扫描的意义不大) SW1-SW2-SW3 控制流水灯模式,SW4-SW5-SW6 控制流水灯速度。 四、源代码: (注:函数 DELAY_US()为 F28335 官方库函数,表示延时**微秒) A、宏定义、全局变量及子函数声明
// 本例使用下面的GPIO配置 Gpio_select(); // 步骤 3. 清除所有中断初始化中断向量表: // 禁止CPU全局中断 DINT; // 初始化PIE控制寄存器到他们的默认状态. // 这个默认状态就是禁止PIE中断及清除所有PIE中断标志 // 这个函数放在DSP2833x_PieCtrl.c源文件里 InitPieCtrl(); // 禁止CPU中断和清除所有CPU中断标志 IER = 0x0000; IFR = 0x0000; //初始化PIE中断向量表,并使其指向中断服务子程序(ISR) // 这些中断服务子程序被放在了DSP280x_DefaultIsr.c源文件中 // 这个函数放在了DSP2833x_PieVect.c源文件里面. InitPieVectTable();
花样流水的灯课程设计
花样流水的灯课程设计一、课程目标知识目标:1. 让学生理解并掌握“花样流水”灯的制作原理,包括电路连接、灯光控制等方面的基础知识。
2. 使学生了解“花样流水”灯在生活中的应用,提高对物理知识在实际应用中的认识。
技能目标:1. 培养学生动手操作能力,能够独立完成“花样流水”灯的制作。
2. 提高学生团队协作能力,学会在小组合作中共同解决问题,完成作品。
情感态度价值观目标:1. 培养学生对科学的兴趣和好奇心,激发他们探索未知世界的热情。
2. 引导学生关注生活中的科技创新,培养创新精神和实践能力。
3. 培养学生节能环保意识,让他们认识到科技发展应与环境保护相结合。
课程性质:本课程为实践性课程,结合物理知识,以学生动手制作为主,注重培养学生的实践能力和创新能力。
学生特点:六年级学生具有较强的动手操作能力和好奇心,对新鲜事物感兴趣,具备一定的团队合作意识。
教学要求:教师应引导学生主动探究,注重启发式教学,让学生在动手实践中掌握知识,提高能力。
同时,关注学生的情感态度价值观培养,使他们在课程学习中得到全面发展。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程依据课程目标,选择以下教学内容:1. 电路基础知识:介绍电路的组成、电路图的识别、电路连接方式等,为学生制作“花样流水”灯奠定基础。
(对应教材章节:第二章 电路基础)2. 传感器原理:讲解传感器的工作原理、种类及其在“花样流水”灯中的应用。
(对应教材章节:第五章 传感器)3. 灯光控制技术:学习灯光亮度、颜色及动态效果的控制系统,使学生能够设计出独特的“花样流水”灯效果。
(对应教材章节:第七章 光电控制系统)4. 实践操作:指导学生动手制作“花样流水”灯,包括电路搭建、灯光调试等环节。
教学内容安排如下:第一课时:电路基础知识学习,了解“花样流水”灯的制作原理。
第二课时:学习传感器原理,探讨其在“花样流水”灯中的应用。
第三课时:学习灯光控制技术,掌握灯光效果的调整方法。
eda花样流水灯的课程设计
eda花样流水灯的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握花样流水灯的设计原理;2. 学生能描述流水灯电路的工作原理,了解相关电子元件的功能和连接方式;3. 学生掌握C语言编程基础,能编写简单的程序控制流水灯的显示效果。
技能目标:1. 学生能运用所学知识,设计出具有创意的花样流水灯电路;2. 学生通过实践操作,提高焊接和电路调试的能力;3. 学生通过团队协作,学会沟通和解决问题,提高项目实践能力。
情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和探索精神;2. 学生认识到科技发展对社会进步的重要性,增强社会责任感和使命感;3. 学生在团队协作中,学会尊重他人、分享成果,培养良好的团队合作精神。
分析课程性质、学生特点和教学要求:本课程为电子技术与应用的实践课程,适用于初中或高中年级学生。
学生在之前的学习中已经掌握了基本的电路知识和C语言编程基础。
课程注重实践操作,鼓励学生创新设计,培养学生的动手能力和团队协作能力。
课程目标具体、可衡量,旨在让学生通过实践,掌握EDA技术的基本应用,提高电子设计能力,同时注重培养学生的情感态度价值观,为今后的学习和发展奠定基础。
二、教学内容本课程教学内容主要包括以下三个方面:1. 电子设计自动化(EDA)基础理论- 了解EDA的基本概念、发展历程和应用领域;- 学习流水灯的设计原理和电路组成;- 掌握相关电子元件的功能、符号和连接方式。
2. 流水灯电路设计与编程- 学习流水灯电路的设计方法,分析不同显示效果的实现原理;- 掌握C语言编程基础,编写控制流水灯的程序;- 结合教材相关章节,实践操作,调试电路。
3. 团队协作与项目实践- 分组进行项目设计,明确分工,培养团队协作能力;- 制定项目进度计划,按计划完成电路设计、编程、调试和展示;- 教师指导,学生互评,总结项目实施过程中的经验教训。
教学内容安排和进度:第一周:EDA基础理论学习和流水灯设计原理了解;第二周:学习C语言编程基础,编写简单的流水灯程序;第三周:分组项目实践,进行电路设计和调试;第四周:项目总结与展示,交流学习心得。
单片机实训报告——花样流水灯的制作
单片机实训报告——花样流水灯的制作班级:电气一班学号:110101127姓名:李亚龙一、花样流水灯的设计方案流水灯实际上就是一个带有八个发光二级管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让P0.0口的LED2亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.0~P0.7口的其他7个LED的电亮和熄灭的方法同LED2。
因此,要实现流水灯功能我们只要将发光二极管LED2~LED9依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
对8段LED数码管显示器的控制,包括“显示段”和“公共端”两个地方的控制。
其中显示段用来控制字符的形状,公共端用来控制若干个LED中的那一只被选中,前者称为“段选”,后者称为”位选”。
只有二者结合起来,才能在指定的LED上显示指定的字形。
显然,要显示某种字形就应该使此字形的相应字段点亮,按照dp、g、e、f、e、d、c、b、a的顺序,dp为最高位,a为最低位,引脚输入不同的8位二进制编码,可显示不同的数字或字符。
二、花样流水灯的硬件电路设计时钟电路是计算机的心脏,它控制着计算机的工作节奏,CPU 就是通过复杂的时序电路完成不同的指令功能的,89C52的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。
单片机有多种复位电路,本系统采用电平式复位与上电复位方式,如下图所示当上电时C1相当于短路时,使单片机复位,在正常工作时,按下复位键是单片机复位。
显示部分主要是由八个LED和四个七段数码管组成,八个LED 由限流电阻限流后接入89C52的P0口。
三、花样流水灯的软件设计#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;uchar code table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; uchar code moshi1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code moshi2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code moshi3[]={0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00};uchar code moshi4[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};uchar code moshi5[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};uchar code moshi6[]={0x7e,0x3c,0x18,0x00,0x81,0xc3,0xe7,0xff};uchar moshi,dingshi; //模式,定时uchar shijian,k1; //时间控制uchar num0,num;void delay(uint x) //延时程序{uchar i;while(x--);for(i=0;i<120;i++);}void keyscan() //键盘扫描{if(key1==0){delay(10);if(key1==0) //按键1,模式循环{moshi++;if(moshi==7)moshi=1;TR0=1;k1=1;while(!key1);}}if(key2==0) //按键2,时间调整{delay(10);if(key2==0){shijian++;if(shijian==15)shijian=15;while(!key2);}}if(key3==0) //按键3,时间复位{delay(10);if(key3==0){shijian--;if(shijian==1)shijian=1;while(!key3);}}}void display() //数码管显示{P1=table[moshi];P2=0xfe; //从左向右显示delay(2);P1=0XFF;P2=0XFF; //数码管不显示delay(2);P1=table[dingshi/10]; //十位显示P2=0xfd;delay(2);P1=table[dingshi%10]; //个位显示P2=0xfe;delay(2);}void liushuideng() //流水灯显示{switch(moshi) //模式选择{case 1:P0=moshi1[num];break;case 2:P0=moshi2[num];break;case 3:P0=moshi3[num];break;case 4:P0=moshi4[num];break;case 5:P0=moshi5[num];break;case 6:P0=moshi6[num];break;}}void disp() //显示器{num++;if(num==8){num=0;dingshi--;if(dingshi==0){dingshi=shijian;moshi++;if(moshi==7)moshi=1;}}}void init() //初始化{TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;shijian=5;dingshi=5;moshi=0;P3=P0=0xff;num=num0=0;}void main(){init();while(1){keyscan(); //键盘扫描display(); //数码管显示if(k1==1) //模式选择liushuideng(); //流水灯显示}}void t0_time() interrupt 1 //中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num0++;if(num0==6){num0=0;disp();}}四、总结实训中我发现主要问题是在焊接电路板的时候有虚焊,导致电路接触不良,还有多焊导致电路板损坏或短路。
单片机花样流水灯设计
1 . 1硬件 设 计
1 . 1 . 1 硬 件 说 明
按照 单片机 系统扩展与系统配置情况 ,单片机应用系统
可分 为最 小系统、 最小功耗系统 以及典型系统等。 8 9 C5 1 单片 机 是本次设计 运用 的主 要元件 ,流水灯控制设计是用单片机 最 小应用 系统 , 即为有L E D、 晶振、 复位 电路、 电源等 电路和软 件 组成的单个 单片机 。电路焊接 : 制造 电子产 品的重要手段 。 主要 涉及 到的硬件 有 A T 8 9 C 5 1 单片机、 L E D、 晶振、 电阻、 开 关、 电容 等 。 1 . 1 . 2 芯片介绍一 A T 8 9 C 5 1 ( 见图 1 )
×TAI 2
3
P 2
X ALl ! ; S
l O
到下 一盏 一盏 点亮 ; 第二 , 花型种类不少于五种 , 花型 自拟 ; 第
三, 分别用快慢两种节拍实现 花型交换 , 总清零开关控制 电路 的初 始状态 。 1 . 1 . 3引脚说明
图1 8 9 C 5 1 芯片引脚 图 引脚是单片机和外界进行通信的通道连接点,用户 只能 通过 引脚组建控制系统 。从应用的角度来看,引脚 的应用 是 单 片机应用 的一个重要基础 。因此熟悉引脚是学习应用 单片
PI .
、 √
VI 2 C
P1 . 1
P1. 2
P O
pO. 1
p1 . 3 pl
p1 P1 . 6 PI . 7
po . 2 pD . 3
po. 4 5 6
这样一来制成品只能按照固定的模式闪亮 ,不 能根据不 同场 合、 不 同时间段 的需要来调节亮灯 时间、 模 式等动态参数 。这
单品机花样流水灯程序设计外部中断触发方式结果分析
单品机花样流水灯程序设计外部中断触发方式结果分析```while (true) {// 更新灯光状态updateLightPattern();// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`updateLightPattern()`函数用于更新灯光状态,`displayLightPattern()`函数用于控制LED灯显示,`delay()`函数用于延时一段时间。
2. 外部中断触发方式:外部中断可以是通过按下按钮、接收到特定信号等方式触发。
在单品机花样流水灯中,可以通过外部中断触发方式改变灯光的状态或执行其他操作。
以下是一个示例的外部中断触发方式的伪代码:```void externalInterruptHandler() {// 处理外部中断触发// 更新灯光状态或执行其他操作updateLightPattern();}void setup() {// 初始化外部中断attachInterrupt(externalInterruptPin, externalInterruptHandler, INTERRUPT_MODE);}void loop() {// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`externalInterruptHandler()`函数用于处理外部中断触发,`attachInterrupt()`函数用于将外部中断与特定的引脚和触发模式关联起来。
外部中断可在`setup()`函数中进行初始化,然后在`loop()`函数中进行循环执行。
3. 结果分析:通过上述程序设计和外部中断触发方式,单品机花样流水灯可以实现按照设定的规律进行灯光状态的变化,并且通过外部中断触发方式可以改变灯光的状态或执行其他操作。
心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯是现有流水灯的一种经典改良版本,它采用16个灯作为原形,在跟随律动改变时,灯会形成一个心形的图案,从而形成艳丽夺目的画面。
该设计把流水灯的动感与闪烁的灯光有机地结合起来,带给观众一个难忘的视觉体验。
心形花样流水灯的实现原理主要基于按使灯在每个节点切换时都可以获取正确的额外信号,然后根据信号来控制灯的状态,从而实现每颗灯在固定节点可以达到设定的图案效果。
实现心形花样流水灯首先需要准备好必要的硬件,如灯、电源、封装等。
其中,灯是实现该图案花样的关键元素,合适的灯应该选择一直亮的灯,最好是采用柱面形状的灯放置;电源属于复杂的功能元件,而电源的输出功率是有限的,因此要选择规范型号的电源;灯装接容器也是必不可少的,以尽可能减少容器内部电阻增加此设计系统电源负载。
安装完必要的硬件之后,就可以编写控制程序实现心形花样的设计。
首先,程序需要实现的功能应该包括定时停档、定时启动、控制灯泡亮度等,这是该系统实现的最基本的功能,其次,控制程序设计的关键是要编写一段循环程序,使在每一节点可以实现按照心形花样拍摄计划设定的图案,最后,实现定时调节,达到改变速度以及心形持续不断等效果。
通过以上步骤,就可以实现心形花样流水灯的设计制作,从而实现不同场合的美观效果,更好的吸引更多的注意力,从而取得全新的效果。
单片机课程设计花样流水灯2
单⽚机课程设计花样流⽔灯2前⾔随着⼈们⽣活环境的不断改善和美化,在许多场合可以看到彩⾊霓虹灯不断变化闪烁。
LED灯由于其丰富的灯光⾊彩,低廉的造价以及控制简单等特点⽽得到了⼴泛的应⽤,⽤彩灯来装饰街道和城市建筑物已经成为⼀种时尚。
但⽬前市场上各式样的LED灯控制器⼤多数⽤全硬件电路实现,电路结构复杂、功能单⼀,这样⼀旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯⽚过多、电路复杂、功率损耗⼤等缺点。
此外从功能效果上看,亮灯模式少⽽且样式单调,缺乏⽤户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进⾏改进。
流⽔灯是⼀串按⼀定的规律像流⽔⼀样连续闪亮。
流⽔灯控制是可编程控制器的⼀个应⽤,其控制思想在⼯业控制技术领域也同样适⽤。
流⽔灯控制可⽤多种⽅法实现,但对现代可编程控制器⽽⾔,利⽤移位寄存器实现最为便利。
通常⽤左移寄存器实现灯的单⽅向移动;⽤双向移位寄存器实现灯的双向移动。
本案例利⽤价格低廉的AT89C51系列单⽚机控制基⾊LED灯泡从⽽实现丰富的变化。
1、课程设计的⽬的和要求1.1 设计⽬的近年来随着科技的发展,单⽚机的应⽤正在不断⾛向深⼊,同时带动传统控制检测⽇新⽉异更新,在实时检测和⾃动控制的单⽚机应⽤系统中,单⽚机往往是作为⼀个核⼼部件来使⽤,单⽚机⽅⾯知识是不够的,还应根据具体硬件结构,以及针对具体应⽤对象点的软件结合,加以完善。
流⽔灯,可以更简单、⽅便的使⽤。
通过本课程设计使学⽣进⼀步巩固单⽚机原理及应⽤的基本概念、基本理论,分析问题的基本⽅法,增强系统地运⽤已学的理论知识解决实际问题的能⼒和查阅资料的能⼒。
培养⼀定的⾃学能⼒和独⽴分析问题、解决问题的能⼒,能通过独⽴思考、查阅⼯具书、参考⽂献,寻找解决⽅案。
1.2 设计要求设计流⽔灯的基本要求:设计⼀个流⽔灯,应⽤AT89C51试验系统,电路开启后红、绿两种颜⾊的灯在时钟信号作⽤下按⼀定规律转换状态。
基于51单片机的花样流水灯设计
摘要摘要计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。
单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。
单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。
单片机具有体积小、功能强大、低功耗、应用广泛等特点。
以AT公司的芯片AT89C51 单片机来实现流水灯的设计。
本系统由单片机控制,I/O口接LED的负极,而LED的正极则直接与5V电源相连。
通过I/O口输出的低电平点亮LED灯。
因此可以通过控制单片机的I/O口的电平高低以达到控制LED,从而实现不同花样的流水灯的目的。
关键词:LED,单片机,高低电平变化ABSTRACTThe rapid development of computer technology and improving, bring us to the new era, now, the application of computer has been deep into the thousands. Single chip microcomputer is made on an integrated circuit chip computer, hereinafter referred to as single chip microcomputer. SCM has been widely used in the present society, small to People's Daily electronic products, big to aerospace aircraft, spacecraft, above has the wide application of single-chip microcomputer. SCM has small volume, powerful function, low power consumption, wide application, etc. AT the company's chip AT89C51 single-chip microcomputer to realize the water lamp design. This system controlled by single chip microcomputer, I/O ports connect the LED the cathode, and LED the anode is directly connected to 5V power supply. Through the I/O port output low level light leds. So you can single chip microcomputer control through the I/O ports to control LED, the level of high and low so as to realize the purpose of the different pattern of flowing water light.Key words:LED , MCU ,High and Low output leve目录第1章引言 (1)1.1 研究背景及意义 (1)1.2 国内外研究现状以及本系统的重点问题 (1)1.3 本文章节安排 (2)第2章系统设计方案论证 (3)2.1 控制器模块方案论证 (3)2.2 键盘模块方案 (4)2.3 电源模块方案 (4)第3章系统硬件设计方案 (5)3.1 系统设计框图 (5)3.2 硬件电路设计 (5)3.2.1 电源电路 (5)3.2.2 单片机89C52最小系统 (6)3.2.3 按键电路 (13)3.3.4 LED灯电路 (13)第4章程序设计及软件仿真 (15)4.1 软件设计框图 (15)4.2 软件开发平台选择 (15)4.3 软件系统功能模块 (16)4.3.1 初始化模块 (16)4.3.2 延时函数 (17)4.3.3 定时器控制模块 (17)4.3.4 键盘扫描模式 (17)4.3.5 LED灯输出控制模块 (18)4.4 程序调试仿真 (19)4.4.1 仿真平台介绍 (19)4.4.2 仿真测试 (19)第5章硬件调试 (21)5.1 硬件设计 (21)5.2 硬件调试 (21)5.2.1 下载功能调试 (21)5.2.2 LED电路测试 (21)5.2.3 模式选择功能调试 (22)5.2.4 速度加减功能调试 (22)5.2.5 复位电路调试 (22)5.2.6 稳定性测试 (22)总结 (23)致谢 (25)参考文献 (26)附录 (27)附录一:原理图 (27)附录二:硬件实物 (28)附录三:程序代码 (29)第1章引言第1章引言1.1 研究背景及意义现如今,随着集成化芯片的飞速发展,分立元件或数字逻辑电路正逐步被集成电路所取代,而单片机作为一种集成电路,其价格低廉,且可靠性强、控制简单但控制方法多样。
实验3:花样流水灯实验
实验三:花样流水灯实验一、实验目的1.熟悉LED的显示特点;2.了解单片机系统实现花样流水灯实验的硬件电路和软件编程技巧;3.熟悉基本汇编指令的灵活应用。
二、实验仪器、材料1.微型计算机(PⅣ以上)2.编程、汇编与模拟平台软件Keil uVision33.电子技术专业仿真软件protues运行平台4.单片机实训开发电路板三、实验内容和步骤1.2.//从左到右(或从右到左)流水循环显示实验ORG 0000HMOV A,#80H //MOV A,#01H ;从右到左LOOP:RL A //RR A ;从右到左MOV P1,AACALL DELAYSJMP LOOPDELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND//从两端到中间、从中间到两端显示实验ORG 0000HLOOP:MOV P1,#81HACALL DELAYMOV P1,#42HACALL DELAYMOV P1,#24HACALL DELAYMOV P1,#18HACALL DELAYMOV P1,#24HACALL DELAYMOV P1,#42HACALL DELAYSJMP LOOPDELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND//从左到右、从右到左流水显示实验1ORG 0000HMOV A,#80HMOV R0,#08HLOOP:RL AMOV P1,AACALL DELAYDJNZ R0,LOOPMOV R0,#07HLOOP1:RR AMOV P1,AACALL DELAYDJNZ R0,LOOP1MOV R0,#07HSJMP LOOPDELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND//从左到右、从右到左流水显示实验2ORG 0000HMOV A,#01HLOOP:RL AMOV P1,AACALL DELAYCJNE A,#80H,LOOPLOOP1:RR AMOV P1,AACALL DELAYCJNE A,#01H,LOOP1SJMP LOOPDELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND//从左到右、从右到左流水显示实验3ORG 0000HMOV A,#00HSETB CYLOOP:RLC AJC LOOP1MOV P1,AACALL DELAYSJMP LOOPLOOP1:RRC AJC LOOPMOV P1,AACALL DELAYSJMP LOOP1DELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND//花样流水灯查表显示实验ORG 0000HSTART:MOV R0,#00HMOV P1,#00HLOOP:MOV A,R0ADD A,#0CHMOVC A,@A+PCCJNE A,#01H,XSH ;3SJMP START ;2XSH:MOV P1,A ;2ACALL DELAY ;2INC R0 ;1SJMP LOOP ;2ASCTAB:DB0FFH,00H,0FFH,00H,0FFH,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0CCH,55H,0AAH,55H,0AAH,55H,0AAH,55H DB81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H DB03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,0 1HDELAY:MOV R7,#0FFH ;延时1ms程序DELAY1:MOV R6,#0FFHDELAY2:MOV R5,#02HDELAY3:DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND。
流水彩灯的设计18页PPT
闪亮方式1(函数dis_mode1)
从另一个角度去描述流程(P0、P2) P0、P2都为高电平; P0端口最低位为低(11111110) ,P2为全高(11111111),等待一会; P0端口第二位为低(11111101) ,P2状态不变,等待一会; P0端口第三位为低(11111011) ,P2状态不变,等待一会; …… P0端口最高位为低(01111111) ,P2状态不变,等待一会; P0端口全部为高电平(11111111) ,P2端口最低位为低(11111110) ,等待一会; P0状态不变 ,P2端口第二位为低(11111101) ,等待一会; P0状态不变 ,P2端口第三位为低(11111011) ,等待一会; …… P0状态不变 ,P2端口最高位为低(01111111) ,等待一会; P0、P2都为高电平; 结束一次流程。
闪亮方式1(函数dis_mode1)
要求:从左上角第一个灯开始,每次亮一个灯,顺时针旋转。 设计步骤: 软件流程图设计(软件流程图就是用图形的方式绘制出软件的实际执行步骤和过程) 软件程序编写(按照软件流程图写出相应的语句)
软件流程图设计 使用文字语言描述流程: 先关闭所有灯,点亮左上角第一个灯(D1),等待一会; 关闭第一个灯(D1),点亮第二个灯(D2) ,等待一会; 关闭第二个灯(D2),点亮第三个灯(D3) ,等待一会; ……; ……; 关闭第十五个灯(D15),点亮第三个灯(D16) ,等待一会; 结束一次流程 画流程图 使用图形将上述流程画出来。 软件编写
软件设计
简单的程序设计可以很容易的整理出软件流程图(前一个项目),但是遇到复杂的程序设计,一张软件流程图是很难完全包含整个软件的执行过程(本次项目)。 针对于较复杂的软件设计,需要在设计之初对软件功能进行分析,整理出各个功能模块,然后对各功能模块进行分步设计,最终再将所有的功能模块进行综合设计。这就是常说的自下而上的软件设计方法。
单片机花样流水灯课程设计
单片机花样流水灯课程设计一、课程目标知识目标:1. 理解单片机的基本原理和功能,掌握单片机编程的基本语法;2. 学习并掌握流水灯的设计原理和实现方法;3. 了解花样流水灯的创意设计,能够运用所学知识进行简单的创新设计。
技能目标:1. 能够独立完成单片机的编程和调试,实现基本流水灯效果;2. 学会运用逻辑思维和问题解决能力,分析并解决流水灯编程过程中的问题;3. 提高团队协作能力,通过与同学合作完成更复杂的花样流水灯设计。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣和热情,激发创新精神;2. 培养学生面对困难时的积极态度,勇于尝试和解决问题的勇气;3. 增强学生的环保意识,让学生明白电子制作中的资源节约和环保重要性。
分析课程性质、学生特点和教学要求:本课程为单片机花样流水灯课程设计,适用于高年级学生。
学生已具备一定的单片机基础知识,具备初步编程能力。
课程性质为实践性、创新性和团队合作性。
在教学过程中,注重培养学生的实际操作能力和创新思维,同时强调团队协作能力的提升。
根据以上分析,课程目标分解为以下具体学习成果:1. 学生能够独立完成基本流水灯编程和调试;2. 学生能够分析并解决流水灯编程中的问题;3. 学生能够与团队成员合作,完成至少两种不同花样流水灯的设计与实现;4. 学生能够撰写实验报告,总结课程学习心得和创新体会。
二、教学内容根据课程目标,教学内容分为以下三个部分:1. 单片机基础知识回顾- 章节链接:课本第三章“单片机原理与编程基础”- 内容列举:单片机的基本结构、工作原理、I/O口编程。
2. 流水灯原理与编程实现- 章节链接:课本第四章“单片机实践与应用”- 内容安排:- 流水灯设计原理- 延时函数的使用- I/O口控制LED亮灭- 流水灯编程实现3. 花样流水灯设计与创新- 章节链接:课本第四章“单片机实践与应用”及附录“创意电子制作”- 内容安排:- 流水灯花样设计思路- 逻辑编程技巧- 创新设计方法- 团队合作与分工教学进度安排:1. 第一周:回顾单片机基础知识,完成I/O口编程训练;2. 第二周:学习流水灯原理,完成基本流水灯编程;3. 第三周:学习花样流水灯设计,进行创新实践;4. 第四周:团队协作,完成至少两种不同花样流水灯设计与实现;5. 第五周:撰写实验报告,总结课程学习。
花样流水灯设计
一、原理图设计的目的:利用AT89C51,通过控制按键来实现六种流水灯把戏的转换,实现把戏流水灯的设计,同时通过外部中断0,来控制流水灯的速度。
二、各器件的功能作用:1、AT89C51AT89C51有40个引脚,每个引脚都有其功能。
本次设计中,利用P0口当输出口,输出低电平来驱动发光二极管点亮。
利用P1.0~P1.5六个引脚,通过按键接地,然后采用扫描的方式,判断哪个引脚所接按键按下,从而来控制六种流水灯的把戏。
利用P3.2引脚外接按键接地,通过控制按键来减慢流水灯的速度,利用P3.3引脚外接按键接地,通过控制按键来提高流水灯的速度。
利用P3.7输出低电平,导通三极管Q1,从而给八个发光二极管的阳极加高电平,一旦P0口输出低电平就可以驱动发光二极管。
2、八个发光二极管:通过八个发光二极管来实现流水灯的变化,用低电平驱动发光二级管亮,同时,用高电平使其熄灭。
3、按键通过P1.0-P1.5外接的按键来实现流水灯各种把戏的变化,当按键按下时,驱动一种流水灯把戏的闪烁。
同时,利用按键来提供外部中断,当按下按键时,产生一个外部中断,向CPU申请中断,CPU响应其中断,因此可以用按键来实现提高流水灯闪烁的速度。
通过在RST口处加上一个按钮手动复位电路,利用复位按钮可以使运行中的流水灯复位到初始的状态。
4、排阻因为P0口作为输出口时需要外接上拉电阻三、设计原理图:四、程序如下:#include<reg51.h> //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint);//声明延时函数void main(void){uint i;uchar temp;TCON=0*05;IE=0*85;P*1=1;P*0=0;while(1){temp=0*01;for(i=0;i<8;i++) //8个流水灯逐个闪动{P0=temp;delay(100);//调用延时函数temp<<=1;}temp=0*80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动{P0=temp;delay(150);//调用延时函数temp>>=1;}temp=0*FE;for(i=0;i<8;i++) //8个流水灯依次全部点亮{P0=temp;delay(150); //调用延时函数temp<<=1;}temp=0*7F;for(i=0;i<8;i++) //8个流水灯依次反向全部点亮 {P0=temp;delay(150); //调用延时函数temp>>=1;}temp=0*03;for(i=0;i<4;i++) //两个流水灯顺序点亮{P0=temp;delay(150);temp<<=2;}temp=0*30;for(i=0;i<3;i++) //两个流水灯反向点亮{P0=temp;delay(150);temp>>=2;}temp=0*07;for(i=0;i<3;i++) //3个{P0=temp;delay(150);temp<<=3;}temp=0*e0;for(i=0;i<3;i++) //3流水灯反向点亮{P0=temp;delay(150);temp>>=3;}temp=0*0f;for(i=0;i<3;i++) //4ge{P0=temp;delay(150);temp<<=4;}temp=0*f0;for(i=0;i<3;i++) //4流水灯反向点亮{P0=temp;delay(150);temp>>=4;}}}void int0() interrupt 0{uint i;uchar temp;while(1){temp=0*01;for(i=0;i<8;i++) //8个流水灯逐个闪动{P0=temp;delay(800);//调用延时函数temp<<=1;}temp=0*80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动{P0=temp;delay(800);//调用延时函数temp>>=1;}temp=0*FE;for(i=0;i<8;i++) //8个流水灯依次全部点亮{P0=temp;delay(800); //调用延时函数temp<<=1;}temp=0*7F;for(i=0;i<8;i++) //8个流水灯依次反向全部点亮 {P0=temp;delay(800); //调用延时函数temp>>=1;}temp=0*03;for(i=0;i<4;i++) //两个流水灯顺序点亮{P0=temp;delay(800);temp<<=2;}temp=0*30;for(i=0;i<3;i++) //两个流水灯反向点亮{P0=temp;delay(800);temp>>=2;}temp=0*07;for(i=0;i<3;i++) //3个流水灯顺序点亮{P0=temp;delay(800);temp<<=3;}temp=0*e0;for(i=0;i<3;i++) //3个流水灯反向点亮{P0=temp;delay(800);temp>>=3;}}temp=0*0f;for(i=0;i<3;i++) //4个流水灯顺序点亮{P0=temp;delay(800);temp<<=4;}temp=0*f0;for(i=0;i<3;i++) //4流水灯反向点亮{P0=temp;delay(800);temp>>=4;}}void delay(uint t) //定义延时函数 {register uint bt;for(;t;t--)for(bt=0;bt<255;bt++);}。
多彩流水灯课程设计
多彩流水灯课程设计一、教学目标本课程旨在通过多彩流水灯的制作,让学生掌握基础的电子电路知识,了解并掌握简单的电路搭建和编程技巧,培养学生的动手能力和创新能力。
在知识目标上,学生需要理解电子元件的基本原理和功能,掌握基本的电路搭建方法和编程语言。
在技能目标上,学生需要能够独立完成多彩流水灯的制作,并能够进行简单的电路调试和故障排除。
在情感态度价值观目标上,学生通过参与制作过程,增强对科学和技术的兴趣和好奇心,培养团队合作精神和解决问题的能力。
二、教学内容本课程的教学内容主要包括电子元件的认识、电路搭建的基本方法、编程语言的学习和多彩流水灯的制作。
首先,学生将学习电子元件的基本原理和功能,包括电阻、电容、二极管、晶体管等。
然后,学生将学习电路搭建的基本方法,包括电路图的阅读、元件的连接和电路的测试。
接着,学生将学习编程语言的基本知识,包括编程语法、变量、循环和条件语句等。
最后,学生将根据所学知识,亲手制作一个多彩流水灯,通过实践巩固所学知识。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
首先,将采用讲授法,教师将系统讲解电子元件的基本原理和功能,电路搭建的基本方法,编程语言的基本知识。
其次,将采用讨论法,学生将在小组内进行讨论,分享制作过程中的心得体会和解决问题的方式。
再次,将采用案例分析法,教师将提供一些实际案例,学生将分析并解决案例中的问题。
最后,将采用实验法,学生将亲手制作多彩流水灯,通过实践巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,将选择和准备适当的教学资源。
教材方面,将选择内容全面、难易适中的电子电路教材。
参考书方面,将提供一些与电子电路和编程相关的参考书籍,供学生自主学习。
多媒体资料方面,将制作一些与课程内容相关的PPT和视频,帮助学生更好地理解课程内容。
实验设备方面,将准备一些基础的电子元件和实验设备,供学生进行实验和制作。
心形花样流水灯PPT
2021/3/11
2
硬件
1:STC89C51的最小化系统
2021/3/11
3
流程图
2021/3/11
4
原理图
2021/3/11
系统设计方案
实现不同方式点亮32个LED流水灯(左循环、奇偶亮、右循 环、全灭全亮等等)本流水灯实际上就是一个带有三十二个 LED灯的单片机最小应用系统,即为由 LED灯、晶振、复位、 电源等电路和必要的软件组成的单个单片机。
2021/3/11
1
理论分析
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的 电平变为低电平就可以了;相反,如果要接在P1.0口的 LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在 其他口的31个LED的点亮和熄灭的方法同LED1。因此,要实 现流水灯功能,我们只要将发光二极管LED1~LED32依次点 亮、熄灭,32只LED灯便会一亮一暗的做流水灯了。同样的 道理,可以32个灯左移
void delay(void)
{
unsigned char m,n;
for(m=0;m<flag;m++)
for(n=0;n<250;n++)
2021/3/11
7
调试结果
1、软件:程序需要实现流水灯各种不同方式的亮灭。
2、硬件:需要我们自己连接电路,焊接电路板,更要做到 将软硬件相互结合,这一部分对我们的手工能力有更高的要 求。
5
仿真图
2021/3/11
单片机花样流水灯设计实验报告
**大学物理学院单片机花样流水灯设计实验课题:花样流水灯设计班级: 物理***姓名: ***学号: ……………【摘要】当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。
本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C51 单片机流水灯数码管【概述】1. 单片机及其发展概况单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2. Protues仿真软件简介Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。
利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计2014年 6月 15日课 程单片机课程设计题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛一丶任务设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
二丶设计要求通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。
三丶设计方案本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。
单片机流水灯循环控制系统硬件框图此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。
四丶系统硬件设计4.1 直流稳压电源电路对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。
电子设备除用电池供电外,还采用市电(交流电网)供电。
通过变压、整流、滤波和稳压后,得到稳定的直流电。
直流稳压电源是电子设备的重要组成部分。
本项目直流稳压电源为+5V。
直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。
下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。
三端固定式集成稳压电源电路图AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。
此处用3节1.5V的干电池供电。
4.2 单片机最小系统要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。
时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
单片机最小系统4.3 LED电路LED流水灯显示电路LED流水灯显示电路如图所示,实际上是由8个发光二极管和8个电阻构成的电路。
发光二极管与电阻对应串联,然后接在与之相对应的P2口上。
通过软件编程对P2口输出高低电平来实现不同的闪烁花型。
由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100Ω—3000Ω在此我们这里选用560Ω的电阻。
4.4 按键控制电路按键控制电路如下图所示,是由6个按键开关构成的。
他们分别接在单片机AT89C51的P1接口和P3.0口,Key1---Key5接在P1.0---P1.4,Key6接在P3.7上。
为了一对一的控制LED灯的闪烁方式。
当按下开关Key1时, LED流水灯系统闪烁第一种流水灯花型。
当按下开关Key2时, LED灯系统闪烁第二种闪烁方式。
当闭合Key6时,流水灯闪烁节拍变慢。
键盘控制电路4.5 串口电路串口电路为单片提供与PC机连接端口,为单片机提供下载程序到单片机程序存储器中。
串口原理图如下图所示。
串口也称串行通信接口,RS-232是目前最常用的一种串行通讯接口,由于其形状和针脚数量的原因,其接头又被称为DB9接头。
RS-232针脚定义: 2RXD 接收数据、3TXD发送数据、5GND系统接地,一般就用到这几个引脚。
串口原理图MAX232芯片是专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
MAX23内部结构基本可分三个部分:第一部分是电荷泵电路:由1、2、3、4、5、6脚和4只电容构成,功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道:由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN 输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出第三部分是供电:15脚DNG、16脚VCC(+5v)。
五丶系统的软件设计本设计是以单片机AT89C51为核心控制8个发光二极管5种闪烁方式的变换。
硬件电路如图所示,八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。
可以运用输出端口指令MOV P0,A或MOV P0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。
在此还应注意一点,由于视觉暂留效应以及单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。
程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1-Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的流水灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的流水灯。
具体程序流程如下图所示。
六丶系统调试与测试结果分析6.1 系统仿真本设计使用的Keil C51软件来进行编程。
Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
仿真图如下:6.2 仿真调试本系统的调试是把在Keil里面写好的程序通过编译不出现任何错误后将生成的后缀名为.HEX的文件加载到AT89C51单片机中。
测试结果及状态分析经以上仿真上测试证实,能实现本设计系统要求的预期的功能。
结论本方案以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用软件编程烧录程序到单片机来实现对LED流水灯进行控制,与其他LED流水灯相比该电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,其电路集成度高,工作原理简单,清晰明了,控制图案的花样多,移植性好。
附录1 程序主程序:ORG 0000HLJMP MAINORG 0040HMAIN:MOV P1,#0FFHMOV A,P1CJNE A,#11111110b,S1LCALL K1S1: CJNE A,#11111101b,S2LCALL K2 S2: CJNE A,#11111011b,S3LCALL K3S3: CJNE A,#11110111b,S4LCALL K4S4: CJNE A,#11101111b,MAIN LCALL K5LJMP MAIN按键程序:K1: MOV A,#01111111bC1: RL AMOV P2,ALCALL DelayJNB P1.1,K2JNB P1.2,K3JNB P1.3,K4JNB P1.4,ZLJMP C1K2: MOV P2,#0FEHLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0FEHLCALL DelayMOV P2,#0FFHLCALL DelayLJMP MAIN Z: LJMP K5K3: MOV P2,#55HLCALL DelayMOV P2,#0AAHLCALL DelayMOV P2,#0FFHLJMP MAINK4: MOV P2,#01111110BLCALL DelayMOV P2,#00111100BLCALL DelayMOV P2,#00011000BLCALL DelayMOV P2,#00000000BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#11000011BLCALL DelayMOV P2,#11100111BLCALL DelayMOV P2,#11111111BLCALL DelayLJMP MAINK5: MOV P2,#01111110BLCALL DelayMOV P2,#10111111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10011111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10001111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000011BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayLJMP MAIN延时程序:Delay: JNB P3.0,D1mov r5,#01hLJMP D5D1: MOV r5,#04h D5: mov r6,#0ffh D6: mov r7,#0ffh D7: nopdjnz r7,D7djnz r6,D6djnz r5,D5retEND。