单片机89C51用单个灯控制8盏灯依次亮

合集下载

单片机8个led灯循环点亮程序

单片机8个led灯循环点亮程序

单片机8个led灯循环点亮程序一、前言单片机是一种非常重要的电子元件,它可以通过编程来实现各种功能。

其中,点亮LED灯是最基础的操作之一。

本文将介绍如何使用单片机8个LED灯循环点亮。

二、硬件准备1. 单片机:STC89C52RC或其他8051系列单片机;2. LED灯:8个;3. 电阻:8个(220欧姆);4. 面包板:1个;5. 杜邦线:若干。

三、程序设计首先,我们需要了解一些基本的概念和知识:1. 端口:单片机的I/O口被称为端口,其中P0、P1、P2、P3四个端口分别对应着不同的引脚。

2. 输出:通过控制端口输出高电平或低电平来控制外部设备。

3. 延时函数:为了让程序在执行时停留一段时间,需要使用延时函数。

接下来,我们开始编写程序。

具体步骤如下:1. 定义引脚首先,我们需要定义每个LED所对应的引脚。

这里我们将8个LED分别连接到P0口的0~7引脚上。

sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^4;sbit led5=P0^5;sbit led6=P0^6;sbit led7=P0^7;2. 定义延时函数为了让程序在执行时停留一段时间,我们需要定义一个延时函数。

这里我们使用循环来实现延时。

void delay(unsigned int i){while(i--);}3. 循环点亮LED灯接下来,我们就可以开始循环点亮LED灯了。

这里我们使用for循环来实现。

void main(){while(1){for(int i=0;i<8;i++){switch(i){case 0:led0=1;break;case 1:led1=1;break;case 2:led2=1;break;case 3:led3=1;break;case 4:led4=1;break;case 5:led5=1;break;case 6:led6=1;break;case 7:led7=1;break;}delay(50000);switch(i){case 0:led0=0;break;case 1:led1=0;break;case 2:led2=0;break;case 3:led3=0;break;case 4:led4=0;break;case 5:led5=0;break;case 6:led6=0;break;case 7:led7=0;break;}}}}四、总结通过以上步骤,我们就可以实现单片机8个LED灯循环点亮的程序了。

八路彩灯控制器 课程设计

八路彩灯控制器 课程设计

目录第一章总体设计 (5)1.1设计目的 (5)1.2设计任务与要求 (5)1.3基本工作原理 (5)1.4设计方案 (5)第二章单片机简介 (6)2.1单片机结构 (6)2.2单片机的封装形式、引脚定义及功能 (7)2.3单片机的工作原理 (8)2.4 CPU的工作原理 (8)2.5存储器结构 (9)2.6 CPU时序及时钟电路 (10)2.7复位操作 (12)第三章硬件设计 (14)3.1整体硬件接结构 (14)3.2功能模块电路 (14)3.3系统硬件原理电路图 (16)第四章软件设计 (17)4.1软件总体结构设计 (17)4.2各功能模块设计 (18)总结与心得 (25)参考文献: (26)第一章总体设计1.1设计目的1)了解单片机的基本原理及相关的简单应用。

2)掌握用单片机设计系统的一般步骤。

3)了解LED数码管的基本知识和驱动方法。

4)掌握单片机系统各个组成部分的作用以及分布位置。

5)学会运用单片机的硬件资源。

1.2设计任务与要求8个彩灯的控制电路的任务为:用AT89S51单片机设计设计一个8个彩灯控制电路。

要求:完成以下花形变化:1) 从左到右依次点亮,8个灯全亮;从右到左依次熄灭,8个灯全灭。

时间节拍为1秒。

2)从两边向中间依次点亮,8个灯全亮;从中间向两边依次熄灭,8个灯全灭。

时间节拍为1秒。

3)循环往复,用LED管模拟彩灯。

4)用汇编语言编程,用proteus仿真。

1.3基本工作原理此次使设计一个能控制八路彩灯的控制器,其中彩灯用发光二极管模拟。

由P1.6和P1.7口控制电路启动与停止,根据彩灯的亮灭要求,利用数据指针查表,将查到的内容送给P2口进行显示,然后调用1s延时程。

若查到的内容为跳出代码就重新开始循环。

1.4设计方案软件方面:通过汇编语言编程实现不同要求的状态,由延时程序实现1秒的延时时间。

硬件方面:彩灯启动与停止由P1.6和P1.7口进行控制,彩灯的显示状态由AT89C51的P2口输出显示。

51单片机8个跑马灯程序汇编设计思路

51单片机8个跑马灯程序汇编设计思路

【51单片机8个跑马灯程序汇编设计思路】1. 引言在嵌入式系统中,跑马灯程序是一个非常常见且基础的程序设计。

通过控制LED灯的亮灭顺序,实现灯光在一组灯中顺序轮流亮起的效果。

其中,51单片机是一种常用的嵌入式系统开发评台,本文将探讨如何通过汇编语言设计实现8个跑马灯程序的思路和方法。

2. 分析题目我们需要对题目进行细致的分析。

51单片机8个跑马灯程序要求我们设计并实现一个程序,能够控制8个LED灯依次轮流亮起的效果。

这意味着我们需要对LED灯进行控制,并且需要考虑如何实现循环、延时等功能。

3. LED灯控制在实现跑马灯程序时,首先需要考虑如何控制LED灯的亮灭。

一种常见的方法是通过I/O口控制LED灯的高低电平,从而实现灯的亮灭。

我们需要了解51单片机的I/O口控制方式,并结合LED灯的连接方式进行设计。

4. 循环控制跑马灯程序的核心在于实现LED灯的依次轮流亮起。

这就需要我们设计循环控制的程序结构。

在汇编语言中,可以通过跳转指令和计数器来实现循环效果,我们需要考虑如何设计循环的次数和顺序。

5. 延时控制为了让人眼能够观察到LED灯的亮灭效果,我们需要在程序中添加延时控制。

这需要我们了解51单片机的定时器控制和时钟频率,并根据LED灯的亮度要求设计合适的延时程序。

6. 汇编设计思路在进行汇编设计时,可以按照以下步骤进行:1)设置I/O口控制LED灯的引脚,确定LED的连接方式;2)设计循环控制结构,确定LED灯的顺序和次数;3)添加延时程序,控制LED灯亮灭的时间间隔;4)编写中断程序,处理定时器中断等事件;5)调试程序,验证跑马灯效果是否符合要求。

7. 个人观点和理解通过设计这个跑马灯程序,我深切体会到了汇编语言的精妙之处。

通过对硬件的直接控制和对程序结构的精心设计,我感受到了嵌入式系统开发中的乐趣和挑战。

而对于初学者来说,设计跑马灯程序也是一个很好的学习过程,可以加深对于51单片机结构和编程思想的理解。

单片机课程设计报告

单片机课程设计报告

JIUJIANG VOCATIONAL AND TECHNICAL COLLEGE 电气工程学院课程设计报告课程名称:单片机技术与应用设计题目:双边拉幕灯控制班级:航电1901姓名:许江勇学号: 192026266指导教师:徐云龙完成时间: 2021.1.6二〇二一年一月双边拉幕灯控制1.1设计目的1)掌握单片机开关与led接口电路设计,软件延时程序;2)学会程序的调试过程与仿真方法,i/o口应用程序分析。

1.2设计任务本设计为一个89c51单片机控制8个led发光管进行“双边拉幕灯控制”运行,led1~led4为模拟的左边幕,led5~led8为模拟的右边幕。

该课程设计的具体功能为:当系统上电运行时,模拟左右两边幕的led灯同时由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭。

以此往复循环运行,形成“双边拉幕灯”效果。

开关s2用于系统的运行和停止控制,当其闭合时,系统工作;当其断开时,系统暂停处于当前状态。

1)keil和proteus联合调试,完成仿真并实现设计任务;2)完成设计报告,内容包括proteus电路、流程图、c程序。

1.4硬件系统与控制流程分析。

双边拉幕灯控制系统进行软硬件设计。

1.4.1硬件分析对双边拉幕灯控制系统各部分硬件进行分析,列写元器件清单。

1.4.2控制流程分析对双边拉幕灯控制系统运行过程及效果进行分析。

当系统上电运行时,判断s2是否合上,如果闭合:左右两边幕的led灯同时由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭。

如果断开:系统暂停运行。

以此往复循环运行,形成“双边拉幕灯”效果。

开关s2用于系统的运行和停止控制,当其闭合时,系统工作;当其断开时,系统暂停处于当前状态。

1.5 c语言程序分析与设计对双边拉幕灯控制系统软件部分进行分析与设计。

1.5.1程序流程图分析画出双边拉幕灯控制系统程序流程图。

1.5.2c程序设计编写双边拉幕灯控制系统c语言程序。

项目二:8位流水灯的单片机控制讲解

项目二:8位流水灯的单片机控制讲解

内部总线 1 写锁存器
DQ
1
CK /Q
0
1
读引脚 =1
截 引脚P1.X 止
P1口控制流水灯(8个发光二极管)电路
发光二极管的连接方法:若 将它们的阴极连接在一起,阳 极信号受控制,即构成共阴极 接法,如图a所示;若将它们的 阳极连接在一起,阴极信号受 控制,则构成共阳极接法,如 图b所示。由于P1口引脚输出 高电位时电压大约是5V,为保 证发光二极管的可靠工作,必 须在发光二极管和单片机输出 引脚间连接一只限流电阻。
三 、程序PROTUES仿真与调试
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
DJNZ R7,D0
RET
;子程序返回指令
END
;程序结束标记
知识点链接
在本项目中,利用P1口实现8个发光二极管的流水灯控制,主要利 用了送数指令,将要显示的现象对应的数据通过P1口送出。在编写控制 程序时,应首先将每个对应现象分析清楚,比如:要让L3亮,其余发光 二极管灭,则P1口的数据应为11110111B;要让L7亮,则P1口的数据 应为01111111B。然后找到能实现此操作的指令即可。下面使用我们在 本项目中学习的移位指令编写程序如下:
R7,D0
;L6亮
指令意义(注释)
; L7亮 ;将立即数FEH送累加器A,L0亮 ;重复执行本条指令(程序结束) ; 延时程序从0F00H开始 ;将立即数10送通用寄存器R7 ;将立即数100送通用寄存器R6 ;将立即数200送通用寄存器R5 ;根据R5减1后的内容判断程序执行方向 ;根据R6减1后的内容判断程序执行方向

项目2---8位流水灯的单片机

项目2---8位流水灯的单片机

二、编程及问答:
1、要使得本项目中发光二极管的闪烁速度加快,程序如何修 改?若变慢呢?
2、试编写两段延时时间不同的子程序,并分别调用。 3、汇编程序的书写格式和注意事项是什么?
项目2个发光二极管的顺序点亮, 学会使用MCS-51单片机芯片的P1口进行输出控 制,进一步学习汇编程序的分析方法,并能熟练 运用RR、RL等基本指令。
项目任务
要求应用AT89C51芯片,控制8个发光 二极管的有序亮灭,呈现流水灯的效果。 设计单片机控制电路并编程实现此功能。
(二)程序编写
ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV P1,#0FEH LCALL YS MOV P1,#0FDH LCALL YS MOV P1,#0FBH LCALL YS MOV P1,#0F7H LCALL YS MOV P1,#0EFH LCALL YS MOV P1,#0DFH LCALL YS
项目分析
利用单片机P1口连接8个发光二极管, 利用各引脚输出电位的变化,控制发光二 极管的亮灭。P1口各引脚的电位变化可以 通过指令来控制,为了清楚地分辨发光二 极管的点亮和熄灭,在P1口输出信号由一 种状态向另一种状态变化时,编写延时程 序实现一定的时间间隔。
项目实施
一、硬件电路设计 二、控制程序的编写
MOV P1,#0BFH LCALL YS MOV P1,#7FH LCALL YS LJMP MAIN ORG 0100H YS:MOV R7,#2 L1:MOV R6,#0FFH L2:MOV R5,#0FFH L3:DJNZ R5,L3 DJNZ R6,L2 DJNZ R7,L1 RET END
DJNZ R7,D0
LJMP XH

控制P1口的8只LED灯每0.5秒闪亮一次

控制P1口的8只LED灯每0.5秒闪亮一次

单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

51单片机8个发光二极管闪烁设计方案

51单片机8个发光二极管闪烁设计方案

51单片机8个发光二极管闪烁设计方案1. 方案目标本方案旨在设计一个基于51单片机的电路和程序,实现8个发光二极管的闪烁效果。

具体目标如下:1.实现8个发光二极管的交替闪烁。

2.控制每个发光二极管的亮灭时间和频率。

3.确保方案具有可行性和高效性。

2. 实施步骤2.1 硬件设计根据目标需求,我们需要以下硬件组件:1.51单片机(如STC89C52):作为主控芯片,负责控制8个发光二极管的亮灭状态。

2.8个发光二极管:用于显示亮灭状态。

3.8个电流限流电阻:用于限制发光二极管的工作电流,防止过流损坏。

4.连接线:用于连接主控芯片、发光二极管和电流限流电阻。

硬件连接步骤如下:1.将主控芯片与发光二极管之间通过连接线连接起来。

2.将每个发光二极管与对应的电流限流电阻连接起来,确保电流在安全范围内。

2.2 软件设计软件设计包括编写主控芯片的程序代码,实现对8个发光二极管的控制。

以下是一个基本的软件设计思路:1.定义8个IO口用于连接发光二极管,并设置为输出模式。

2.定义一个变量ledState表示当前发光二极管的亮灭状态,初始值为0。

3.在主循环中,通过改变ledState的值来控制发光二极管的亮灭状态。

4.使用延时函数或定时器来控制每个发光二极管的亮灭时间和频率。

具体步骤如下:1.初始化IO口:将8个IO口设置为输出模式。

2.定义变量:定义一个整型变量ledState用于记录当前发光二极管的亮灭状态,默认为0。

3.进入主循环:–设置第一个发光二极管为亮,其他7个发光二极管为灭。

–延时一段时间(如200ms)。

–设置第一个发光二极管为灭,第二个发光二极管为亮,其他6个发光二极管为灭。

–延时一段时间(如200ms)。

–重复以上步骤,依次控制每个发光二极管的亮灭状态。

4.返回主循环。

2.3 预期结果通过上述硬件和软件设计,我们可以实现8个发光二极管的交替闪烁效果。

具体预期结果如下:1.8个发光二极管按照顺序交替亮灭。

单片机8个灯循环点亮汇编语言 -回复

单片机8个灯循环点亮汇编语言 -回复

单片机8个灯循环点亮汇编语言-回复单片机8个灯循环点亮汇编语言是一种常见的电子编程技术,它广泛应用于各种电子设备和嵌入式系统中。

本文将一步一步回答关于这个主题的问题,以帮助读者了解和学习这一技术。

第一步:介绍单片机和汇编语言在深入讨论单片机8个灯循环点亮的具体实现之前,我们首先需要了解单片机和汇编语言的基本概念。

单片机是一种集成电路,它集成了中央处理器(CPU)、存储器、输入输出接口和其他辅助电路等功能模块。

它具有小尺寸、低功耗和高性能等优点,因此被广泛应用于各种电子设备中。

汇编语言是一种低级语言,它与机器语言密切相关。

汇编语言使用助记符和指令来表达计算机的指令和数据,而不是使用二进制代码。

通过使用汇编语言,我们可以直接操作计算机的硬件,从而实现各种功能。

第二步:了解循环点亮的原理循环点亮是指在一段时间内,灯依次点亮,并按照固定的顺序重复。

在单片机中,我们可以通过编程来实现这一功能。

第三步:了解单片机的引脚和端口单片机通常具有多个引脚和端口,用于连接外部设备和传输数据。

在实现循环点亮的例子中,我们需要了解单片机的哪些引脚和端口用于控制灯。

第四步:编写汇编程序在开始编写汇编程序之前,我们需要选择合适的开发工具和单片机型号。

这些选择将直接影响我们的编程和调试过程。

编写汇编程序的过程通常包括以下几个步骤:1. 初始化单片机的引脚和端口,以便能够控制灯的点亮和熄灭。

2. 编写循环语句,通过改变引脚的状态来实现灯的点亮和熄灭。

在每次循环迭代中,我们需要将当前的引脚状态更新为下一个灯的状态。

3. 设置循环的条件,以确定循环执行的次数。

在这个例子中,循环次数应该是灯的数量。

4. 调试程序,确保灯以正确的顺序点亮和熄灭。

第五步:实现灯的循环点亮根据我们在前面的步骤中所学到的知识,我们现在可以开始实现循环点亮的汇编程序了。

首先,我们需要在程序中定义和初始化单片机的引脚和端口。

然后,我们可以使用循环语句和条件控制语句,在每个循环迭代中依次点亮和熄灭下一个灯。

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真
函数功能:延时约150ms
********************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++)
;
}
/**************************************************************
}
}
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
用单片机控制8位LED灯的流水点亮及其PROTEUS仿真
摘要:LED灯的流水控制可以由多种方式实现,这里选用80c51系列单片机作为CPU,采用函数型指针的方式编程,用Proteus进行电路图绘制和仿真,用keil进行编译和虚拟写入,得到了理想的仿真效果。
Abstract:LED lights from a variety of water control can be achieved,80c51 chosen here as a series of single-chip CPU, the use of functional programming guide way, using Proteus for drawing circuit diagrams and simulation, carried out using keil compiler and virtual write, be an ideal simulation of the effect.

单片机8个灯循环点亮汇编语言

单片机8个灯循环点亮汇编语言

单片机8个灯循环点亮汇编语言
以下是一个使用汇编语言编写的单片机程序,实现8个灯循环点亮的效果:
```asm
; 定义 I/O 端口
LED_PORT equ P1
; 定义延时函数
DELAY_MS MACRO ms
MOV R7, #ms
LOOP:
MOV R6, #250
DELAY_LOOP:
NOP
DJNZ R6, DELAY_LOOP
DJNZ R7, LOOP
ENDM
ORG 0H
START:
MOV A, #01H ; 将 0x01 存入累加器 A
LOOP:
MOV LED_PORT, A ; 将累加器 A 的值写入 LED 端口
DELAY_MS 200 ; 延时 200ms
ADD A, A ; 将累加器 A 的值左移一位
ANL A, #0FH ; 将累加器 A 的高四位清零,并保存到累加器 A
CJNE A, #00H, LOOP ; 如果累加器 A 的值不为 0,则继续循环
SJMP START ; 重新开始循环
```
这个程序使用了`LED_PORT`作为连接LED灯的I/O端口,并定义了一个`DELAY_MS`宏来实现延时功能。

在`START`标签处开始执行程序,将0x01存入累加器A,然后进入主循环
`LOOP`。

主循环中,首先将累加器A的值写入LED端口以点亮对应的LED灯,并延时200ms。

然后将累加器A的值左移一位,并将高四位清零,并保存回累加器A。

接着判断累加器A的值是否为0,如果不为0,则继续循环。

如果为0,则重新开始循环。

这样,程序会不断循环8个灯的点亮顺序,直到程序结束。

51八只LED灯做流水灯实验

51八只LED灯做流水灯实验

51八只LED灯做流水灯实验第一节:单片机在上电初始后,其各端口输出为高电平。

如果我们现在想让接在P1.0口的LED1亮,那么我们只要把P1.0口的电平变为低电平就可以了。

想让LED1灭,LED0亮,只需将P1.0升高,P1.1变低,LED 1就熄灭LED2随后既点亮!依始类推如下所示8只LED变会一亮一暗的做流水灯了。

本实验在“SP-5 1实验板”学习套件上的相关图纸:P1.0低、P1.0高、P1.1低、P1.1高、P1.2低、P1.2高、P1.3低、P1.3高、P1.4低、P1.4高、P1.5低、P1.5高、P1.6低、P1.6高、P1.7低、P1.7高、返回到开始、程序结束。

我们不能说P1.1你变低,它就变低了。

因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”代码。

我们又怎样来用二进制语议论使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。

今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。

这里的“程序语言”目前主要有汇编和C两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。

前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。

现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。

“汉语”语言汇编语言开始:star:P1.0低clr p1.0P1.0高setb p1.0P1.1低clr p1.1P1.1高setb p1.1P1.2低clr p1.2P1.2高setb p1.2这里用到了四条汇编指令:clr、 setb、 ljmp 、end;clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成1;ljmp:是无条件跳转指令,意思是:跳转到指定的标号处继续运行。

AT89C51单片机的P2口控制

AT89C51单片机的P2口控制

用AT89‎C51单片‎机的P2口‎控制8个L‎e d的流水‎灯的C程序‎看不懂?‎悬赏分:‎80 - ‎解决时间:‎2009-‎4-1 2‎3:55 ‎用AT8‎9C51单‎片机的P2‎口控制8个‎L ed的流‎水灯的C程‎序看不懂?‎从P2-‎0到P2-‎7灯依次单‎独点亮后,‎又从P2-‎7到P2-‎0灯依次单‎独点亮如‎此反复循环‎,程序如下‎(低电平被‎点亮):‎#incl‎u de <‎R EGX5‎2.H>‎v oid ‎D elay‎1ms(u‎n sign‎e d in‎t cou‎n t){‎uns‎i gned‎int ‎i,j;‎for(‎i=0;i‎<coun‎t;i++‎)fo‎r(j=0‎;j<12‎0;j++‎);}‎main‎(){‎ un‎s igne‎d cha‎r LED‎I ndex‎= 0;‎b‎i t LE‎D Dire‎c tion‎= 1;‎w‎h ile(‎1)‎{‎ if(‎L EDDi‎r ecti‎o n)‎ P‎2 = ~‎(0x01‎<<LED‎I ndex‎);‎ els‎e‎ P2 ‎= ~(0‎x80>>‎L EDIn‎d ex);‎‎if(L‎E DInd‎e x==7‎)‎ LED‎D irec‎t ion ‎= !LE‎D Dire‎c tion‎;‎LEDI‎n dex ‎= (LE‎D Inde‎x+1)%‎8;‎ Del‎a y1ms‎(500)‎;‎}‎ }‎我这程序我‎真的看不懂‎,这个b‎i t LE‎D Dire‎c tion‎= 1;‎是什么意思‎?从主函‎数开始,麻‎烦高手帮我‎解释每一句‎的意思以及‎它有用途?‎越详细越‎好!在下‎在此先谢谢‎了!‎提问者:‎t wp16‎89916‎8 - 二‎级最佳答案‎#incl‎u de <‎R EGX5‎2.H> ‎void‎Dela‎y1ms(‎u nsig‎n ed i‎n t co‎u nt) ‎/*延时函‎数,延迟时‎间为cou‎n t×1m‎s)*/ ‎{un‎s igne‎d int‎i,j;‎for‎(i=0;‎i<cou‎n t;i+‎+)f‎o r(j=‎0;j<1‎20;j+‎+);‎}m‎a in()‎{‎u nsig‎n ed c‎h ar L‎E DInd‎e x = ‎0; /*‎声明8位变‎量LEDI‎n dex,‎用来指示8‎个LED中‎哪个被点亮‎,初始值为‎00000‎000*/‎bit ‎L EDDi‎r ecti‎o n = ‎1; /*‎声明位变量‎L EDDi‎r ecti‎o n,用来‎指示点亮的‎方向,初始‎值为1*/‎whil‎e(1) ‎/*一直循‎环执行大括‎号里面的语‎句*/{‎if(‎L EDDi‎r ecti‎o n) /‎*当LED‎D irec‎t ion=‎1时,00‎00 00‎01左移L‎E DInd‎e x位,取‎反后送给P‎2端口,点‎亮一个LE‎D*/P‎2 = ~‎(0x01‎<<LED‎I ndex‎);e‎l se /‎*当LED‎D irec‎t ion=‎0时,10‎00 00‎00右移L‎E DInd‎e x位,取‎反后送给P‎2端口,点‎亮一个LE‎D*/‎P2 = ‎~(0x8‎0>>LE‎D Inde‎x);‎i f(LE‎D Inde‎x==7)‎/*当一‎次循环结束‎时,把LE‎D Dire‎c tion‎取反,下次‎循环时将以‎相反的顺序‎点亮*/‎L EDDi‎r ecti‎o n = ‎!LEDD‎i rect‎i on; ‎LEDI‎n dex ‎= (LE‎D Inde‎x+1)%‎8; /*‎L EDIn‎d ex+1‎对8取余,‎保证LED‎I ndex‎在0~7之‎间*/D‎e lay1‎m s(50‎0); /‎*延时50‎0ms,即‎L ED的点‎亮间隔为0‎.5s*/‎}}‎2‎2回答者:‎紫翅z‎h idao‎- 四级‎ 20‎09-3-‎23 12‎:20‎我来评论‎>>提‎问者对于答‎案的评价:‎谢谢一楼的‎回答,三楼‎回答好一点‎,谢谢!‎相关内容‎?求:‎单片机控制‎双色LED‎灯流水亮起‎的程序‎1 20‎10-1-‎9‎流水灯‎利用单片机‎的P1口控‎制LED的‎发光闪烁,‎在利用编程‎实现模拟广‎告灯2‎009-1‎1-8‎?怎样‎让单片机在‎P1.和P‎2口同时控‎制两个不同‎花样的流水‎灯呢? ‎2009-‎6-29 ‎基‎于at89‎c51单片‎机的led‎彩灯控制器‎管内LED‎板模块硬件‎图中的芯片‎C D407‎6在电路中‎有何作用?‎ 5 ‎2009-‎5-23 ‎用‎P rotu‎e s软件实‎现AT89‎C51单片‎机控制的跑‎马灯的仿真‎,8个LE‎D实现左移‎和右移。

单片机八个流水灯左右依次点亮实验

单片机八个流水灯左右依次点亮实验
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int //加黑的都是定义头文件
void DelayMS(uint x) /Leabharlann 延时{uchar i;
while(x--)
{
for(i=0;i<120;i++);
掌握单片机的去抖原理及处理办法二实验仪器与设备1
单片机八个流水灯左右依次点亮实验
一、实验目的
1.掌握keilC51软件与PROTEUS软件联合仿真调试的方法;
2.掌握单片机的去抖原理及处理办法
二、实验仪器与设备
1.微机1台2. keilC51集成开发环境3.Proteus仿真软件
三、实验内容
实验程序:
}
}
} //利用循环移位函数_crol_(左循环)和_cror_(右循环)形成来回滚动的效果
实验结果图片:
}
}
void main() //主程序
{
uchar i;
P2=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //左循环移动
DelayMS(150);
}
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //右循环移动
DelayMS(150);

单片机课程设计-8个LED灯来回点亮

单片机课程设计-8个LED灯来回点亮
第一章绪论
课题简介
当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品。而电子LED灯已跨入了我们生活的众多电子领域。在众多场合随处可见的闪光灯,流水灯不仅大方美观而且十分节能。然而控制它们的单片机却是一个不能被忽视的角色。
单片机简介
第二章设计目的及要求
2.1设计目的
通过本次课题设计,应用《单片机原理及应用》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于89C51单片机的系统设计有一个比较感性的认识,并具备一定程度的设计能力。
5.2编辑源程序--------------------------------------------------14
第六章系统调试与仿真结果--------------------------------16
6.1系统调试-----------------------------------------------------16
4.5工作电路------------------------------------------------------12
第五章软件设计------------------------------------------------13
5.1程序流程图--------------------------------------------------13
培养实践技能,提高分析和解决实际问题的能力。
2.2设计要求
(1)认真研究设计任务书,明确设计要求、条件、内容和步骤;复习课程有关内容,熟悉有关单元电路的设计方法和步骤;搜集、分析、消化相关资料、软件等;掌握微型计算机应用系统软件设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等

控制P1口的8只LED灯每0.5秒闪亮一次

控制P1口的8只LED灯每0.5秒闪亮一次

单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

89c51单片机教学实验内容与答案

89c51单片机教学实验内容与答案

1.数据传送实验要求:将片内从30H开始连续7个单元的内容送入从40H开始的地址单元中。

(先在30H~36H中送初值)#include<reg52.h>void main(){unsigned char data i,*d1,*d2;d1=0x30;d2=0x40;{*d1=0x10;*(d1+1)=0x11;*(d1+2)=0x22;*(d1+3)=0x45;*(d1+4)=0x30;*(d1+5)=0x32;*(d1+6)=0x21;}for(i=0;i<7;i++){*(d2+i)=*(d1+i);}}2.排序实验要求:将片内从30H单元开始的10个无符号数,按由小到大的顺序排列。

(先在30H~39H中送排序初值)#include<reg52.h>void main(){unsigned char data *p,i,j,d;p=0x30;*(p+0)=0x21;*(p+1)=0x11;*(p+2)=0x31;*(p+3)=0x02;*(p+4)=0x22;*(p+5)=0x42;*(p+6)=0x32;*(p+7)=0x41;*(p+8)=0x05;*(p+9)=0x22;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(*(p+j)>*(p+j+1)){d=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=d ;}}3.并行接口实验要求:使用P1口控制LED1~LED8进行花样显示。

显示顺序规律为:(1)8个LED依次左移单个点亮。

(2)8个LED依次左移逐个点亮。

(3)8个LED依次左移逐个熄灭,然后再从(1)进行循环,中间延迟时间1s。

#include<reg51.h>#define uchar unsigned char //在程序中用uchar替代unsigned char//目的在于减少代码输入量#define uint unsigned intvoid delay(uint); //定义延时函数void LeftMovLED(void); //定义向左移运点亮LED的函数//*******主函数********void main(void){while(1) //死循环{LeftMovLED(); //调用LeftMovLED实现左移点亮LED功能}}void LeftMovLED(void){uchar i,temp; //定义两个变量temp=0x01; //temp赋初值for(i=0;i<8;i++) //下面的代码循环8次{P1=temp; //将temp内的值赋给PORTD点亮LED temp=temp<<1&0xfe; //将temp左移一位后将最后一位清零。

51单片机独立按键控制八路LED亮灭程序代码

51单片机独立按键控制八路LED亮灭程序代码

//51单片机独立按键控制八路LED灯亮灭程序代码//#include <reg51.h> //调用头文件unsigned int count,count1; //定义两个int类型的变量sbit key=P3^5; //定义按键接入串口sbit key1=P3^4; //定义按键接入串口//以下是一个延时函数,便于后面程序按键的消抖,除了这个用途外,延时函数还有很多用途......//void delay(unsigned int ms){while(ms--);}//以下是一个声明的按键检测函数,在这个函数中通过count及count1两个变量的值来确定按键按下LED的亮灭,我这用了两个按键,不同按键控制LED从不同方向一次点亮,函数中采用了if语句与switch语句相结合,这是关键所在。

//void keysan(){if(key==0){delay(10);if(key==0){count++;switch(count){case 0:P1=0xff;break;case 1:P1=0xfe;break;case 2:P1=0xfd;break;case 3:P1=0xfb;break;case 4:P1=0xf7;break;case 5:P1=0xef;break;case 6:P1=0xdf;break;case 7:P1=0xbf;break;case 8:P1=0x7f;break;case 9:P1=0xff;break;}if(count>=9){count=0;}while(!key);}}delay(10);if(key1==0){delay(10);if(key1==0){count1++;switch(count1){case 0:P1=0xff;break; case 1:P1=0x7f;break; case 2:P1=0xbf;break; case 3:P1=0xdf;break; case 4:P1=0xef;break; case 5:P1=0xf7;break; case 6:P1=0xfb;break; case 7:P1=0xfd;break; case 8:P1=0xfe;break; case 9:P1=0xff;break; }if(count1>=9){count1=0;}while(!key1);}}}void main(){while(1){keysan();}}。

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