可控流水灯单片机设计
- 格式:docx
- 大小:123.71 KB
- 文档页数:15
单片机流水灯实验原理
单片机流水灯实验原理:
流水灯是一种基本的电子实验,通过使用单片机控制多个
LED 灯的亮灭来实现灯光在各个灯珠之间流动的效果。
流水
灯实验原理如下:
1. 硬件连接:将多个 LED 灯和适当的电流限制电阻连接到单
片机的不同输出引脚上。
每个 LED 灯的阴极与电流限制电阻
连接到负极(GND),而阳极连接到单片机的 IO 引脚。
需要
注意的是,单片机的 IO 引脚的输出电压应该能够点亮 LED 灯。
2. 软件设计:使用单片机的 GPIO(通用输入输出)功能,设
置相应的输出引脚作为流水灯的控制引脚。
通过对这些引脚进行高低电平控制,实现不同 LED 灯的点亮和熄灭。
3. 流水灯效果:为了实现流水灯的效果,我们将需要在不同的时间间隔内控制不同的 LED 灯点亮。
可以使用一个循环来实
现这种效果,循环中通过更新和改变控制引脚的电平状态来控制流水灯的亮灭顺序。
4. 控制顺序:通过改变控制引脚的电平状态的顺序,可以改变流水灯的流动顺序。
可以通过在循环中使用延迟函数来控制灯的变换速度,或者使用计数器等其他方法来实现更复杂的流水灯效果。
通过以上原理,我们可以实现单片机流水灯实验并观察到灯光在不同的 LED 灯之间流动的效果。
基于51单片机的流水灯毕业设计方案:一、引言流水灯是一种常见的电子设计项目,适合初学者练习和毕业设计。
通过使用51单片机和少量外围元件,可以实现一个简单而有趣的流水灯效果。
本文将介绍基于51单片机的流水灯设计方案,包括硬件连接、软件程序设计和效果展示等内容。
二、硬件设计1. 材料准备:51单片机(如STC89C52)、LED灯若干(建议4-8个)、电阻、面包板、连线等。
2. 连接方式:将LED灯按顺序连接到51单片机的IO口,每个LED 灯通过一个电阻连接到IO口,确保电流限制。
3. 电源供应:连接电源至电路板,保证正常工作电压和电流。
三、软件设计1. 编程环境:使用Keil C51等集成开发环境进行程序编写。
2. 程序设计:设计一个循环移位的程序,控制51单片机的IO口依次点亮LED灯,形成流水灯效果。
3. 定时控制:通过定时器中断或延时函数控制LED灯的亮灭时间,实现流水灯的效果。
四、效果展示1. 烧录程序:将编写好的程序烧录到51单片机中。
2. 调试测试:连接电路并通电,观察LED灯按顺序点亮并流动的效果。
3. 优化改进:根据实际效果调整程序和硬件设计,优化流水灯的效果和稳定性。
五、注意事项1. 电路连接:确保电路连接正确,避免短路或接反现象。
2. 程序设计:合理设计程序逻辑,确保LED灯的流水效果符合预期。
3. 调试测试:在调试过程中注意观察LED灯的亮暗情况,及时发现问题并进行调整。
六、总结基于51单片机的流水灯设计是一个适合初学者和毕业设计的简单而有趣的项目,通过设计和实现可以提升对单片机编程和电路连接的理解和技能。
希望通过本文的介绍,读者能够顺利完成基于51单片机的流水灯毕业设计,并在实践中不断提升自己的电子设计能力。
《单片机原理及应用》基于51单片机实验箱的流水灯设计一、实验目的和要求1.掌握单片机基本资源使用。
2.掌握单片机电路原理图。
3.掌握单片机C语言软件开发以及试验箱使用。
二、实验内容和原理实验内容:1.绘制程序流程图并编写C语言程序2.在实验箱中进行测试,最后提交实验报告三、主要仪器设备Keil4软件、C51单片机实验箱。
四、操作方法与实验步骤4.1 题目要求使用单片机实验箱实现流水灯功能。
4.2 系统设计思路主程序中实现流水灯功能,时间单位采用500ms信号,作为实现流水灯的发光二极管和单片机的P1相连。
4.2 C程序编制(包含详细的文字和程序流程图)#include<intrins.h>#include<reg52.h>#define uchar unsiged char#define uint unsigned intvoid mDelay(uint Delay){int i;for(;Delay>0;Delay--)for(i=0;i<110;i++);}void main(){unsigned char a,i;While(1){a=0x01;for(i=0;i<8;i++){a=-crol-(a,1)P2=amDelay(500);}}4.3 测试分析(包含文字和图像叙述)在KeilC51软件软件中编写好程序并调试好后,连接单片机实验箱,实验结果如下:实验箱上连接的八个灯,每个灯间隔500ms的时间一个接一个的循环闪烁。
五、讨论和心得(不少于100字)通过此次实验,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,试验过程还是比较繁琐,但是还是完成了这次试验,使我对于理解单片机的基本原理更加深刻,将所学知识运用到实践中,在实践中发现问题,强化理论知识。
课程名称:单片机原理及应用实验项目名称(二):定时计数器的应用—按钮控制LED灯四、实验目的和要求1.掌握单片机基本资源使用。
实验报告单实验名称:流水灯控制系统设计实验项目:实验目的:1. 理解单片机系统软硬件开发的过程,单片机基本的I/O控制方法。
2. 掌握51单片机的汇编指令。
3. 掌握Proteus硬件仿真软件的使用及技巧。
4. 掌握Keil uVision程序开发软件的使用技巧。
实验器材:安装了Keil uVision5和Proteus的电脑;实验原理:通过更改P2口8位的高低电平,分别控制8个Led灯的亮灭。
单片机流水灯的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用rl或rr a实现位的转换。
然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置操作。
具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P2口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE ..... 可以使用一个循环,不断对数据进行移位运算实现。
这里的移位指令采用RL和RR,即不带进位的位移运算指令。
如果使用带进位的位移运算指令(RLC 和RRC),则需要定期把cy置0,否则会出现同时亮起两个发光二极管的情况。
实验步骤:1.在仿真系统Proteus中实现电路原理图设计;新建设计文档、设置工作环境、选择并放置元器件、对原理图进行布线、原理图的电器规则检查、调整、保存和输出报表等。
2.源代码的设计与生成目标代码;在Keil uVision5平台进行C语言和汇编语言源代码的输入、编译与调试,并生成可执行文件.hex。
C语言存储为.c文件,汇编语言存储为.asm文件。
3.调试与仿真在Proteus中将可执行文件.hex加载到单片机中,对系统进行虚拟仿真。
单片机课程设计报告题目:可控流水灯摘要单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
对可控流水灯设计通过编写代码实现8个LED灯5种流水灯显示方式。
在设计中主要采用80C51这款芯片作为控制主体,用发光二极管来作为显示灯,用按钮来切换流水灯的发光方式同时外接一个七段显示发光二极管来显示流水灯的发光模式。
系统通过P2口外接8个发光二极管,P1口接3个按键,一个按键进行方式选择,数码管显示方式编号;用两个键来控制流水灯流动的速度。
数码管接在80C51的P0口上,而流水灯的放光二极管经过排阻接在P2口上。
设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。
关键词单片机80C51发光二极管流水灯目次1 引言 (1)2 课题综述 (1)2.1课题来源与意义 (1)2.2面临的问题 (1)3 系统设计 (1)3.1总体设计 (1)3.2模块设计 (2)3.3硬件设计 (5)4 代码编写 (6)5 系统调试 (7)6 系统运行结果与分析 (8)结论 (9)致谢 (10)参考文献 (11)附录 (12)1 引言单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。
现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2 课题综述2.1课题来源与意义随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。
单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑控制的主力军。
XX工程学院单片机课程设计报告题目:流水灯学生姓名:学号:系部名称:职业技术学院班级:机电一体化Z11-1 指导教师:目录摘要 (3)一、课程设计题目 (4)二、设计任务及要求 (4)三、实验方案 (4)四、流程图 (4)五、硬件电路 (6)六、软件设计 (6)1 主体程序 (6)2 键扫描子程序 (6)3 闪烁控制程序 (6)4 延时子程序 (6)5 源程序设计 (7)七、功能调试 (12)八、设计总结 (12)九、参考文献 (13)【摘要】单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
一、课程设计题目:流水灯二、设计任务及要求:任务:完成对接在P1,P3口的发光二极管闪亮控制程序的设计1.用程序延时方法让P1的一个LED小灯每隔1S交替闪亮2.用程序延时方法让P1的8个LED小灯循环(每个亮50MS)闪亮3.用程序延时方法让P1的8个LED小灯追逐闪亮(50MS间隔变化)4.用程序延时方法让P1、P3的16个LED小灯循环(每个亮50MS)闪亮要求:1. 根据硬件电路原理,画出接线2. 设计出相应的软件程序三、实验方案:方案:单片机采用40脚的89C52标准双列直插系列,有4个标准输入/输出端口共32位控制端口。
本次设计采用并行口低电平(吸电流)直接驱动LED发光管发光形式,选择了P1和P3口的16个端口进行模拟LED小灯控制,如要多些小灯单元可再将P2口、P0口及其他空余端口用LED小灯驱动控制。
因系统功能要求能控制灯亮的方式,在P0.0—P0.3端口接了4个按键小开关,每个小开关可控制一种亮灯方式。
在端口较紧张的情况下,LED小灯驱动也可用串入/并出移位寄存器(如74HC595),单片机用并行移位方式进行驱动。
基于单片机智能温控流水灯随着科技的不断发展,智能家居产品逐渐走进人们的生活,提高了生活的便利性和舒适度。
其中,基于单片机的智能温控流水灯是一种颇受欢迎的家居产品,它具有智能控制、节能环保等特点,在节约能源的同时还能提升家居氛围。
本文将介绍基于单片机的智能温控流水灯的设计原理和实现方法。
一、设计原理基于单片机的智能温控流水灯主要由单片机、温度传感器、流水灯灯带等部件组成。
其设计原理如下:1. 温度检测:通过温度传感器实时检测室内温度,并将数据传输给单片机进行处理。
2. 温度控制:单片机根据设定的温度阈值,自动控制流水灯的亮度和颜色。
当室内温度过高时,流水灯调整为低亮度和凉色调,以降低室内温度;反之,当室内温度过低时,流水灯调整为高亮度和暖色调,以提高室内温度。
3. 灯光效果:流水灯采用流水般变换的灯效,通过单片机控制灯珠的亮灭和颜色变化,实现灯光流动的效果,为家居环境增添情调和舒适感。
二、实现方法基于单片机的智能温控流水灯的实现方法如下:1. 硬件设计:选择合适的单片机控制芯片,并连接温度传感器、流水灯灯带等硬件部件,搭建硬件系统。
2. 软件编程:编写单片机的程序,实现对温度传感器数据的读取和处理,以及灯光效果的控制。
通过逻辑判断和控制指令,实现温度检测和灯光调节的功能。
3. 装配调试:将硬件系统组装完善,并进行功能调试和性能优化,确保智能温控流水灯的正常工作和稳定性。
三、应用优势基于单片机的智能温控流水灯具有以下优势:1. 智能化控制:通过单片机程序的设计,实现对室内温度的智能检测和控制,提高了灯光的智能化程度。
2. 节能环保:根据实时温度调节灯光亮度和颜色,避免了灯光长时间高亮度造成的能源浪费,节约了能源资源。
3. 美化家居:流水灯的灯效设计独特,能够为家居环境增添美感和舒适度,营造出温馨浪漫的氛围。
综上所述,基于单片机的智能温控流水灯是一种具有智能化控制和节能环保等特点的家居产品,其设计原理和实现方法都相对简单易行。
单片机流水灯实验报告引言单片机是一种集成电路,可以通过编程来控制不同的功能。
其中,流水灯是一个最简单的单片机实验项目,也是学习单片机的第一步。
本篇实验报告将详细介绍如何通过使用 AVR 单片机来实现一个流水灯的控制器。
实验原理流水灯的原理很简单,就是通过一个方向控制信号,以及一定的时间延时控制来逐步点亮和熄灭多个 LED 灯。
在本次实验中,我们将使用 AVR ATmega328P 单片机,它可以通过编程来实现流水灯的控制功能。
实验步骤1. 硬件准备将 ATmega328P 单片机插入到开发板中,并使用杜邦线将单片机的引脚连接到各个 LED 灯。
我们需要将一个引脚连接到方向控制信号,用于控制灯的点亮方向。
同时,我们还需要连接一个电位器,用于调节流水灯的速度。
2. 程序设计使用 Arduino 开发环境来编写 AVR 单片机的程序。
首先需要包含头文件 avr/io.h 和 util/delay.h,并定义输入输出引脚。
然后,我们需要定义一个名为“led” 的一个数组,来存储各个 LED 灯的输出状态。
同时,还需要定义一个变量“dir”,来表示流水灯的方向。
在程序主循环中,我们使用 for 循环来遍历各个 LED 灯。
同时,根据“dir”变量的不同,我们可以实现流水灯的正向和反向控制。
另外,我们还需要使用“_delay_ms()”函数来延时一定的时间,实现流水灯的闪烁效果。
3. 程序烧录使用 AVR ISP 编程器将编写好的程序烧录到单片机中。
在烧录过程中需要设置正确的程序和芯片类型,并选择正确的口线连接方式。
实验结果经过实际测试,我们成功地实现了一个流水灯控制器。
在调节电位器之后,灯的闪烁速度可以得到不同的调整。
同时,也可以通过改变方向控制信号来改变流水灯的运动方向。
结论通过本次实验可以学习到如何使用 AVR 单片机来实现一个简单的流水灯控制器。
通过编写程序、烧录编译等过程,可以加深对单片机的基础知识和理解。
目录目录 (1)第一章课题的意义及应用 (2)第二章系统的总体设计 (3)2.1 设计方法 (3)2.2 数码管显示方案 (3)2.3 键盘输入方案 (4)第三章硬件电路设计 (4)3.1电路原理 (4)3.2单片机最小系统 (5)3.3系统工作流程 (5)第四章程序设计 (6)4.1系统总体结构框图 (6)4.2 系统流程图 (6)第五章调试 (7)5.1正常现象 (7)5.2出现的故障 (7)第六章心得体会 (9)参考文献 (9)附录1 (10)程序: (10)附录2 (19)仿真电路图: (19)实验箱接线图: (19)流程图: (20)第一章课题的意义及应用当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
计算机作为一种快速通用的计算工具方便了用户的使用。
计算机可谓是我们最亲密的电子伙伴之一。
本设计着重在于分析计算机软件和开发过程中的环节和步骤,并从实践经验出发对计算机设计做了详细的分析和研究。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中。
单片微型计算机是微型计算机称单片机,特别适用于控制领域,故又称为微控制器。
单片机的应用日益广泛,如应用在仪器仪表,家用电器和专卖装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。
本系统就是充分利用了AT89C51芯片的I/O引脚。
系统以采用MCS-51系列单片机为中心器件来设计LED流水灯系统,实现8个LED流水灯的各种显示方式,并实现循环的速度可调,暂停及复位功能。
通过本次课题设计,应用《单片机原理及接口技术》等所学相关知识及查阅资料,完成可控流水灯设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
单片机流水灯课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和结构,掌握流水灯的设计方法。
2. 学生能描述流水灯程序的设计流程,包括电路连接、编程语言及指令的运用。
3. 学生了解并能够解释流水灯中涉及的电子元件功能,如电阻、电容、LED 等。
技能目标:1. 学生能够独立完成流水灯电路图的绘制,并正确搭建电路。
2. 学生能够运用指定的编程软件,编写并调试出流水灯的程序代码。
3. 学生通过动手实践,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生通过完成流水灯的制作,培养对电子制作的兴趣,激发创新精神。
2. 学生在团队合作中学会相互尊重、倾听意见,培养良好的沟通能力和团队意识。
3. 学生能够意识到科技在生活中的应用,增强实践是检验真理的唯一标准的认识。
课程性质:本课程为实践操作性强的电子技术课程,结合理论知识与动手实践,培养学生对单片机应用的基本技能。
学生特点:假设学生为八年级,已具备基本的物理知识和逻辑思维能力,对电子制作有好奇心,动手能力强。
教学要求:教师应注重理论与实践相结合,鼓励学生动手实践,关注个体差异,提供个性化指导,确保学生在掌握知识技能的同时,培养积极的情感态度价值观。
通过具体的学习成果分解,后续教学设计和评估将更有针对性。
二、教学内容1. 理论知识:- 单片机基本原理与结构介绍,关联教材第3章。
- 流水灯电路设计原理,关联教材第4章。
- 编程语言基础及指令运用,关联教材第5章。
2. 实践操作:- 电路图绘制,关联教材第6章。
- 流水灯电路搭建,包括元件识别、电路连接,关联教材第7章。
- 程序编写与调试,关联教材第8章。
3. 教学大纲安排:- 第一课时:介绍单片机基本原理与结构,让学生了解流水灯项目背景。
- 第二课时:讲解流水灯电路设计原理,进行电路图绘制练习。
- 第三课时:学习编程语言基础及指令运用,为学生编写程序打下基础。
- 第四课时:分组进行流水灯电路搭建,并进行程序编写与调试。
单片机原理与应用技术课程设计报告多模式速度可调流水灯学院:专业班级:学号:姓名:指导教师:年月日I目录摘要 (II)1 引言 (1)2 课题综述 (1)2.1课题的来源 (1)2.2课题的意义 (1)2.3预期的目标 (1)2.4面对的问题 (1)2.5课题的技术 (2)3 系统分析 (3)3.1涉及的基础知识 (3)3.28051单片机引脚图及引脚功能介绍 (3)3.3 解决问题的基本思路 (4)4 系统设计 (5)4.1硬件设计 (5)4.2 软件设计 (5)4.3硬件原理图 (6)4.4设计主要功能 (6)5 代码编写 (7)6 程序调试 (11)7实物效果展示 (11)结论 (13)参考文献......................................................................................................................14单片机原理及其接口技术课程设计II摘要单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
对可控流水灯设计通过编写代码实现8个LED灯5种流水灯显示方式。
在设计中主要采用8051这款芯片作为控制主体,用发光二极管来作为显示灯,用按钮来切换流水灯的发光方式同时外接两个七段显示发光二极管来显示流水灯的发光模式和速度模式。
系统通过P2口外接8个发光二极管,P3口接3个按键,一个按键进行方式选择,数码管显示方式编号;用三个键来控制流水灯流动的速度。
数码管接在8051的P0口和P1口上,而流水灯的放光二极管经过排阻接在P2口上。
利用Keil 51软件对汇编程序进行编辑与调试编译和STC下载软件将编译好的程序烧录到单片机中,最终能够得到实物效果的显示。
关键词:单片机8051;可控流水灯;Keil 51单片机原理及其接口技术课程设计11引言单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
2课题综述2.1课题的来源当今社会,随着科学技术的进步和电子产业的迅猛发展,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。
而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。
而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。
2.2课题的意义这次单片机课程设计是为了通过对单片机编程设计控制LED灯流水闪亮的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。
能够让学生深入真是的体会到所学的理论知识和实践相结合的过程,并融入的所学知识的海洋里,从中找出自身的不足并加以改正。
2.3预期的目标对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;另用三个键来控制流水灯流动的速度,并用一个数码管显示速度等级。
2.4面对的问题这次课程设计是通过8051单片机实现。
由于硬件设备学校实验室以为我们准备好,并且实现我们预期的课程设计目标无需对已有硬件设备进行改善,所以基本不存在硬件方面的问题,如果中途发现需对硬件进行些许改善,我们也会运用所学知识解决;那么此次我们的设计将要面临的主要问题即为软件如何设计才能实现我们的预期目标,也就是实现流水灯控制功能的程序编辑;最后就是需要将我们的软件设计与已有的硬件相结合,并经过调试展示出我们实物效果。
2.5课题的技术通过编程达到LED灯的显示方式、模式切换按钮的控制、亮灯速度的按键控制等技术、两个数码管分别显示速度等级和亮灯模式。
单片机原理及其接口技术课程设计33系统分析3.1涉及的基础知识8051单片机原理。
8051单片机硬件接口技术:P2口外接八个LED灯和P3口外接按键,以及P0口和P1口分别接共阳极的数码管。
8051单片机指令系统:规定8051单片机内操作的语句或命令。
八段数码管的显示:向数码的显示送数,控制系统的显示部分。
3.28051单片机引脚图及引脚功能介绍本次实习的目的在于加深8051单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:图3-1 80C51的引脚图80C51有40条引脚,共分为端口线、电源线和控制线三类。
1.端口线(4×8 = 32条):I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
2.电源线(2条):VCC为+5V电源线,VSS为接地线。
3.控制线(6条):(1)ALE/PROG——————:地址锁存允许/编程线。
ALE功能:用来锁存P0口送出的低8位地址;PROG——————功能:片内有EPROM的芯片,在EPROM 编程期间,此引脚输入编程脉冲。
(2)PSEN:外ROM读选通信号。
(3)RST/VPD:复位/备用电源。
RST(Reset)功能:复位信号输入端。
VPD功能:在Vcc掉电情况下,接备用电源。
(4)EA———/Vpp:内外ROM选择/片内EPROM编程电源。
EA———功能:内外ROM选择端。
Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
4.XTAL1、XTAL2 :晶体振荡电路反相输入端和输出端。
3.3解决问题的基本思路预先按键选择三种不同等级速度中的一种,编一个实现延时控制的调用程序,来提供亮灯速度的控制。
选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。
4系统设计4.1硬件设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
8051单片机是本次课程设计运用的主要原件。
流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
4.2软件设计单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。
软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。
我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。
循环移位法是采用循环程序结构进行编程。
我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。
另外,由于80C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。
单片机原理及其接口技术课程设计64.3硬件原理图图4-1硬件原理图4.4设计主要功能打开电路开关,按下三个速度等级控制按键(P3.4,P3.5,P3.6所接按键)中一个,选择一种固定速度等级模式,P0口所接数码管显示等级1,等级2,或者等级3。
在之前基础上,按下LED显示模式按键,第一个模式,8个LED灯会从右向左一个接着一个亮灯,P1口连接的数码管会显示数字“1”来表示当前的亮灯方式是模式1。
在8个LED灯停止亮后再次按下LED显示模式按键,8个LED灯会从左向右2个一组的一次亮灯,同时数码管会显示数字“2”来表示当前的亮灯方式是模式2。
以此类推,一共有5种显示模式。
若要选择另外的速度等级,需要先按下复位按钮,即8051单片机RET端口外接的手动按键复位按钮,复位后可按照之前所述先选择速度等级,而后依次显示五种LED亮灯模式,当然可以明显感觉到亮灯方式相同但速度不同的模式。
5代码编写ORG 0000H ;设置主程序开始地址LJMP STARTORG 0100HSTART: MOV SP, #80HMOV R5, #00HCLR CMOV P3, #0FFHMAIN:JNB P3.4,Q1 ;进行速度等级的选择JNB P3.5,Q2JNB P3.6,Q3JMPMAINQ1:MOVP0,#0F9HJMPQQ2:MOVP0,#0A4HJMPQQ3:MOVP0,#0B0HQ:ACALL DELAY1INC R5BEGIN: CJNE R5, #5,X1AJMP C5X1: CJNE R5, #4,X2AJMP C4X2: CJNE R5, #3, X3AJMP C3X3: CJNE R5, #2,X4AJMP C2X4: CJNE R5, #1,X5AJMP C1X5: MOV R5, #1HLJMP BEGINC1: MOV P1, #0F9H ;把06H送p0口,数码管显示1 LCALL DELAY ;数码管亮后的缓冲M1: MOV A, #01H ;赋值MOV R2, #8MOV R4, #10LOOP1: MOV P2,A ;值给LED灯RL A ;左移LCALL V ;调用延时子程序DJNZ R2, LOOP1MOV R2, #8单片机原理及其接口技术课程设计8DJNZ R4, LOOP1JB P3.7,$AJMP Q ;进入循环C2: MOV R4, #10MOV P1, #0A4H ;数码管显示2LCALL DELAYM2: MOV R2, #08H;右移MOV A, #0C0HLOOP2: MOV P2, ARR AACALL VDJNZ R2, LOOP2DJNZ R4,M2JB P3.7,$AJMP QC3: MOV P1, #0B0H ;数码管显示3 LCALL DELAYMOV R4, #10M3: MOV R2, #07HMOV R3, #08HMOV A, #55HLOOP3: MOV P2, ARL AACALL VDJNZ R2, LOOP3LP1: RR AACALLVMOV P2, ADJNZ R3, LP1DJNZ R4, M3JB P3.7,$AJMP QC4: MOV P1,#99H ;数码管显示4 LCALL DELAYMOV R4, #10M4: MOV R2, #08HMOV A, #05HLOOP4: MOV P2, A单片机原理及其接口技术课程设计9RR AACALL VDJNZ R2, LOOP4DJNZ R4, M4JB P3.7,$AJMP QC5: MOV P1,#92H ;数码管显示5 LCALL DELAYMOV R4, #5HM5: MOV R2, #08HMOV A, #03HLP51: MOV P2, ARL AACALL VDJNZ R2, LP51MOV R2, #8HMOV A, #11HLP52: MOV P2, ARR AACALL VDJNZ R2, LP52MOV R2, #07HMOV R3, #08HMOV A, #42HLP53: MOV P2,ARL AACALL VDJNZ R2,LP53LP2: RR AACALL VMOV P2,ADJNZ R3,LP2MOV R2,#08HMOV A,#31HLP54: MOV P2,ARR AACALL VDJNZ R2,LP54DJNZ R4,M5JB P3.7,$AJMP QV: CLR CMOV R0,P0单片机原理及其接口技术课程设计10CJNER0,#0F9H,DELAY;P3.5低电平时延时长,流水灯速度慢CJNER0,#0A4H,DELAY2 ;P3.6低电平时延时短,流水灯速度快ACALL DELAY1RET;子程序返回DELAY: MOV R1,#5 ;延时0.2sD1: ACALL DELAY2DJNZ R1, D1RETDELAY1:MOV R6,#250 ;延时0.1sD2: MOV R7,#198NOPDJNZ R7,$DJNZ R6, D2RETDELAY2: MOV R6,#250 ;延时0.05sDL3: MOV R7,#18NOPDJNZ R7,$DJNZ R6,DL3RETEND ;程序结束单片机原理及其接口技术课程设计116程序调试本程序第一次在Keil 51软件中编译没有错误但烧录到单片机后功能未得到实现,检查原因为单片机不能检查按键有效按下,经过调整问题解决。