单片机应用 学习情况1 模拟广告流水灯的制作与调试
单片机实训报告_流水灯

一、实验目的1. 掌握单片机的基本原理和操作方法。
2. 熟悉单片机编程环境Keil的使用。
3. 熟悉LED流水灯的原理和编程方法。
4. 培养动手实践能力和团队协作精神。
二、实验原理1. 单片机(Microcontroller Unit,MCU)是一种具有中央处理器(CPU)、存储器(RAM、ROM)和输入输出接口(I/O)等功能的集成电子电路。
它广泛应用于各种电子设备中,如家用电器、工业控制、汽车电子等。
2. LED(Light Emitting Diode,发光二极管)是一种半导体器件,具有单向导电性。
当电流通过LED时,会发出光亮。
3. 流水灯是一种通过控制LED灯的亮灭,模拟流水效果的电子装置。
在单片机控制下,可以实现不同形式的流水灯效果。
三、实验设备1. 单片机实验板(如STC89C52单片机实验板)2. LED灯若干3. 跳线若干4. 电阻若干5. 电源(5V)6. Keil软件四、实验步骤1. 硬件连接(1)将单片机的P1.0-P1.7引脚与LED灯的正极相连,负极接地。
(2)将电阻串联在LED灯和单片机引脚之间,起到限流作用。
(3)将单片机的VCC和GND分别连接到5V电源的正负极。
2. 软件编写(1)在Keil软件中创建一个新的项目,选择相应的单片机型号。
(2)编写主函数main(),实现流水灯的编程。
(3)初始化单片机的P1口为输出模式。
(4)定义延时函数Delay(),实现流水灯的延时效果。
(5)在主循环中,通过改变P1口的高低电平,控制LED灯的亮灭,实现流水灯效果。
(6)保存并编译程序。
3. 程序调试(1)将编译后的程序下载到单片机实验板中。
(2)观察LED灯的流水效果,检查程序是否正确。
(3)如有错误,修改程序并重新编译、下载。
五、实验结果与分析1. 实验结果通过实验,成功实现了LED流水灯效果,实现了不同形式的流水灯效果。
2. 实验分析(1)在实验过程中,学习了单片机的基本原理和操作方法,掌握了Keil软件的使用。
《单片机技术及应用 第二版》项目四 广告流水灯项目开发

单片机技术及应用
工作任务与目标
通过本项任务的实践,了解LED广告流水灯电路的结构与作用,学习LED广告流水灯电 路设计的思路与方法,完成LED广告流水灯电路原理图与装配图的设计,了解LED广告流水 灯电路制作相关元器件的基本知识,理解电路制作工艺要求,掌握电路制作的方法与技能, 完成LED广告流水灯电路的制作,并掌握LED广告流水灯电路制作质量的检验方法,为后续 单片机电路广告流水灯实验打下良好的硬件基础。
单片机技术及应用
任务4-2-1 广告流水灯闪烁控制程序设计
工作任务与目标
1.了解单片机的I/O口,了解C语言的数据类型。 2.初步了解C语言的基本语法与格式要求。 3.初步掌握C语言延时函数的基本应用方法。 4.能使用C语言编程控制P1口LED灯闪烁。 5.初步掌握单片机项目设计的完整流程,形成C语言程序设计、Proteus软件仿真与实 验板实验整体项目开发技能。
单片机技术及应用
DC5V_ +
30
25
POWER
R1
470
C1
10μ+F
RST
D0 LED绿
P1
RP1 103
P0
20
15
R2
10k P6
10
P3
5
C2 30p
C3
30p
Y1 P4
5
11.0592M
D8~D1
P2
LED红
10
IC1 STC89C52RD P5
15
20
25
LED广告流水灯控制电路装配图
项目四 广告流水灯项目开发
(3)do…while循环语句 do…while循环语句循环语句先执行循环体一次,再判定条件
单片机流水灯实训报告

基于AT89C52单片机的流水灯设计实训报告学院:信息工程学院班级:12级电子信息工程本科班学号:姓名:指导教师:2014年 12月29日目录前言 (1)一、总体设计 (2)1.1 总体设计框图 (2)1.2 硬件具体原理图 (3)二、设计内容 (3)2.1 设计要求 (3)2.2 硬件设计 (3)2.3 软件设计 (5)2.3.1 Keil的使用步骤: (5)2.3.2 程序流程 (8)2.3.3 程序代码 (9)三、最小系统板的焊接及调试流程 (12)3.1 最小系统板电路焊接流程: (12)3.1.1焊前准备: (12)3.1.2焊接步骤: (12)3.2 调试及问题解决方法 (13)3.2.1仿真 (13)3.2.2下载 (14)3.2.3问题及解决方法 (14)四、总结体会 (15)前言随着社会的进步和发展和人们生活水平的不断提高单片机技术已经成为当今各种新技术的载体各个应用领域的工程技术人员都应掌握单片机应用术。
同时,它所给人带来的方便也是不可否定的。
其中,数码管就是一个典型的例子。
但人们对它的要求越来越高要为现代人工作、科研、生活、提供更好的方便的设施,就需要从单片机技术入手,一切向着数字化控制、智能化控制方向发展。
单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。
更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
单片微型计算机就是将CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
我们周围有许多广告牌。
单片机流水灯实验总结800字(6篇)

单片机流水灯实验总结800字(6篇)关于单片机流水灯实验总结,精选6篇范文,字数为800字。
实验总结是指对某一阶段实验情况的总结,是对已经做过的实验所作的总结,也是对实践进行检验与评价工作的依据。
今天为大家整理了单片机流水灯实验总结,希望对大家有所帮助。
光阴似箭,日月如梭。
转眼,一个月的实习期就要过去了,回顾一个月的实习生活感受颇多。
我于xx年xx 月xx日开始到湖南农业大学金秋期间实习,作为一名刚踏出校门的大学生,我充满期待。
我实习的单位是湖南农业大学金秋期间的实习单位。
单片机流水灯实验总结(范文):1实验总结是指对某一阶段实验情况的总结,是对已经做过的实验所作的总结,也是对实践进行检验与评价工作的依据。
今天为大家整理了单片机流水灯实验总结,希望对大家有所帮助。
光阴似箭,日月如梭。
转眼,一个月的实习期就要过去了,回顾一个月的实习生活感受颇多。
我于xx年xx月xx日开始到湖南农业大学金秋期间实习,作为一名刚踏出校门的大学生,我充满期待。
我实习的单位是湖南农业大学金秋期间的实习单位。
我实习的单位是湖南农业大学金秋期间的实习单位,这是一家农业大学的单位,是由湖南省农业大学农业学院的教学与科研单位组成。
我实习的单位是湖南农业大学金秋期间的实习单位。
我实习的单位是湖南农业大学金秋期间的实习单位。
该单位的经济效益良好,在农业生产上也给我们提供了良好的服务,我们作为实习的负责人对他们表示衷心的感谢。
这次实习我主要是在生产部和机电部实习。
通过在机电部参观生产线上的各个岗位的工作,我熟悉和掌握了各个生产部的作业程序及原理和方法,对机电部各个岗位也有了深刻的了解和认识,这次实习不仅仅是对我们专业知识的扩展,同时也是我们的一次综合能力的培养,使我们不仅要能学好专业的知识,也要注意多方面的学习,比如,如何在生产部门的岗位上工作,这就要求我们在以后的学习中要注意知识的积累。
在实习期间我严格按照公司的要求和指导老师的要求,认真做好每日的日常工作,在工作中学习,在实践中提高自己的技术水平。
基于51单片机的流水灯实训报告

4、焊接完了,还要对电烙铁进行保护措施——在电烙铁的笔头抹上一层锡,防止笔头被氧化!
周二
1、上午跟下午都是进行实物焊接。看着电脑上面的仿真电路图来一步步焊接,还要在脑海里边想象这样子焊接能否做到不用飞线,到最后又能让人看起来一目了然,清晰明了的感觉!不会看起来很混乱的联想图!所以,焊接是一个很考验人的耐性跟思维能力的功夫!在单片机的P0端口,接数码管的时候,要接上一个排阻来保护电路,因为在单片机内部除了P0端口,其它端口都有接内部电阻,所以,一定要在P0端口外接一个排阻来保护电路!
周五
我都在努力着完成最后一步工作,把程序下载到单片机中,刚开始的时候,经常出现CPU跟MCU握手失败,程序无法载入单片机中。我努力想到底哪里出错了,后来在一个同学的帮忙下,终于找到了出现问题的地方,就是数码管的1脚还没有与单片机的21脚焊接上。经过一会的补救,终于完成了!
总程序:
#include<reg51.h>
后来,老师就教我们編数码管的程序,然后结合流水灯的程序,通过修改后,仿真到模拟电路中看流水灯的走动和数码管的显示是否按你设想的结果一致,如果不一致,就要请教老师和同学。
最后,老师教给我们一个作业——写实训报告,后来我们都在埋头苦干中。
周四
由于部门的辩论赛活动,我不得不请假,所以就没有来参加实训!听同学们说老师叫我们自己动手把之前没完成的工作继续去完成!主要还是編程序和写实训报告。
uchar wei[2]={0xfe,0xfd};
bit start=0;
bit turnflag=0;
uchar num=0;
流水广告灯的设计

单片机第一次作业任务三——流水广告灯的设计一、电路仿真图二、源代码#include "reg51.h"void delay_ms(unsigned int ms) {unsigned char i, j;for(;ms>0;ms--){i = 2;j = 239;do{while (--j);} while (--i);}}void main (){int i=0;unsigned char x; x=1;P0 = x;delay_ms(100);while(1){for(i=0;i<7;i++){x <<= 1;P0 = x;delay_ms(100);}for(i=0;i<7;i++){x >>= 1;P0 = x;delay_ms(100);}}}三、设计说明该任务的电路要求较为简单,电路仅包含单片机,八个发光二极管和一个排阻。
发光二极管阴极全部接地,阳极接单片机P0口,但由于P0口内部无上拉电阻,因此再外接一个排阻提供高电平输出能力。
这样,当P0口输出高电平时,对应的LED灯即被点亮,编写程序在P0口上呈现相应的电平,即可控制LED按照要求点亮。
四、出现的问题及解决方法1、P0口没接上拉电阻时,无法输出高电平。
后来在每一个P0口接了上拉电阻后,问题解决。
2、刚开始所有灯全亮,再开始流水循环。
(当时没解决这个问题,只初步思考了可能导致的原因是单片机的初始化问题)3、观察程序及电路运行情况时发现,流水循环不是从D0开始的,而是从D1开始的。
因为程序编写问题,在循环外没对P0进行初始化,导致进入循环后是从00000010开始亮灯。
后在循坏体外先对P0进行赋值,解决了问题。
五、小组成员分工任务四——拉幕式与闭幕式广告灯的设计一、电路仿真图二、源代码三、#include <reg52.h>void delay_ms(unsigned int ms){unsigned char i, j;for(;ms>0;ms--){i = 2;j = 239;do{while (--j);} while (--i);}}void main(){unsigned char led[5]={0x00,0x18,0x3C,0x7E,0xFF};char i;P0=~0x00;delay_ms(500);while(1){for(i=0;i<5;i++){P0=~led[i];delay_ms(100);}delay_ms(500);for(i=4;i>=0;i--){P0=~led[i];delay_ms(100);}delay_ms(400);}}设计说明将00000000,00011000,00111100,01111110,11111111五种状态按顺序存入数组中,拉幕式为顺序调用数组内容,闭幕式为逆序调用数组内容,通过延时函数来控制时间间隔。
单片机课程设计报告流水灯(WORD档)
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),单片机用并行移位方式进行驱动。
LED流水灯显示实验,单片机实验报告(2页)
LED流水灯显示实验,单片机实验报告(2页)第第PAGE 1 页LED流水灯显示实验,单片机实验报告D LED 流水灯显示实验单片机实验报告一.实验目的1.熟悉单片机I/O 口的功能。
2.熟悉延时子程序的编写和使用。
3.初步熟悉单片机软硬件设计方法。
二.实验仪器计算机、Keil 编程环境、普中下载软件、单片机开发实验仪。
三.实验原理与内容P0 口做输出口,引脚接一只发光二极管,编写程序,使该发光二极管循环亮灭。
1. LED 流水灯显示2. 开幕和闭幕显示四. 实验线路及原理五. 注意事项1.安装实验仪时,先接通讯串口线,再开电源开关。
2.实验过程中,在进行接插线操作时,必须先关闭电源。
六六. 实验步骤1、主机连线说明:JP10 单片机0 P0 口(8 8 位)J12 74HC245( 数码管段选) ) 2. 短路块J21 P10VccJ21 七. 实验步骤1.打开Keil 编程软件编写程序,并进行汇编产生HEX 文件。
(1)流程图:(2)汇编程序ORG 0000H ; 初始地址0000H LJMP MAIN ; 跳转MAIN 主程序ORG 0100H ; 主程序MAIN 从从0100H 开始存放MAIN :MOV P0,#55H; 赋值P0 口0101 0101B CALL DELAY ; 调用延时子程序,延时MOV P0,#0AAH ; 赋值给P0 口1010 1010B CALL DELAY ; 调用延时子程序,延时SJMP main ; 跳转main 主程序DELAY: MOV R6,#200 ; 延时子程序,R6=200 dey2: MOV R7,#0 ;R7=0 DEY1: NOP ; 空指令DJNZ R7,DEY1;R7≠0 跳转DEY1 DJNZ R6,DEY2;R6≠0 跳转DEY2 RET ; 返回主程序END ; 结束点击普中下载软件,检查设置是否正确。
2.运行程序看结果。
反复修改和下载。
单片机广告灯实训报告
一、实训背景随着科技的发展,单片机技术在各个领域得到了广泛应用。
广告灯作为一种常见的宣传工具,在商业活动中发挥着重要作用。
本实训旨在通过单片机技术实现对广告灯的智能控制,提高广告灯的展示效果,同时锻炼学生的单片机编程能力和实际操作能力。
二、实训目的1. 熟悉单片机的原理和应用;2. 掌握广告灯控制系统的硬件设计;3. 学会编写单片机控制程序,实现广告灯的智能控制;4. 提高学生的动手能力和团队协作能力。
三、实训内容1. 硬件设计(1)单片机选择:选用STC89C52单片机作为控制核心,该单片机具有丰富的外设资源,性能稳定,易于编程。
(2)驱动电路设计:广告灯的驱动电路采用TTL电平,使用ULN2003芯片驱动LED灯,提高驱动电流,保证LED灯亮度。
(3)电源电路设计:广告灯电源采用12V直流电源,通过电源模块转换为5V电压为单片机供电。
(4)按键电路设计:设置两个按键,分别用于控制广告灯的开关和切换模式。
2. 软件设计(1)初始化:在程序开始时,对单片机的工作寄存器、IO端口等进行初始化,设置中断优先级。
(2)主程序:主程序负责处理按键事件,根据按键状态切换广告灯的工作模式。
(3)模式切换:广告灯支持三种工作模式:常亮模式、闪烁模式和流水灯模式。
(4)流水灯模式:流水灯模式分为两种,一种是水平流水,另一种是垂直流水。
通过改变LED灯的扫描顺序,实现流水效果。
(5)中断服务程序:当按键按下时,中断服务程序负责读取按键状态,并切换广告灯的工作模式。
四、实训过程1. 硬件搭建:根据设计图纸,将单片机、驱动电路、电源电路、按键电路等模块焊接在电路板上。
2. 软件编写:使用Keil C51集成开发环境编写单片机控制程序,实现广告灯的智能控制。
3. 程序调试:通过仿真软件进行程序调试,确保程序正常运行。
4. 硬件调试:将程序烧录到单片机中,进行实际硬件调试,观察广告灯的工作状态。
五、实训结果通过本次实训,我们成功实现了广告灯的智能控制。
单片机流水灯实验总结
单片机流水灯实验总结引言流水灯是单片机实验中最基础的实验之一,通过控制单片机的IO口,让灯泡按照一定的顺序或方式依次点亮和熄灭,从而形成灯光的流动效果。
本篇文档将总结单片机流水灯实验的原理、实验步骤和实验结果,并对其中的关键点进行说明和分析。
实验原理单片机流水灯实验的原理主要涉及到两方面:单片机的IO口和时序控制。
单片机的IO口单片机的IO口是其与外部设备进行数据交换和控制的接口,通过设置IO口的电平状态,可以控制外部设备的操作。
在流水灯实验中,我们将使用单片机的多个IO口分别控制多个灯泡的点亮和熄灭。
时序控制流水灯的效果是通过按照一定的时序来依次点亮和熄灭灯泡。
在单片机中,我们可以通过控制程序中的延时和循环来实现灯泡的时序控制。
实验步骤以下将详细介绍单片机流水灯实验的步骤:1.准备材料和工具:单片机、灯泡、电阻、面包板、导线等。
2.连接电路:将单片机和灯泡通过导线连接起来,同时将电阻与灯泡串联,用以限流。
3.编写程序:使用相应的编程软件,编写控制流水灯的程序。
程序主要包括初始化IO口、控制时序、循环控制灯泡的点亮和熄灭等。
4.烧录程序:将编写好的程序烧录到单片机中。
5.调试和测试:将单片机连接到电源,观察灯泡是否按照预定的流水灯效果点亮和熄灭。
如果效果不符合预期,可以通过修改程序和调整电路进行调试。
实验结果经过以上步骤,我们成功搭建了单片机流水灯的实验电路,并编写了控制流水灯的程序。
经过测试,实验效果良好,灯泡按照预定的顺序和方式点亮和熄灭。
实验中的关键点分析在单片机流水灯实验中,有几个关键点需要特别注意:1.IO口的选择:根据需要控制的灯泡个数,选择合适数量的IO口。
如果使用的IO口数量较多,可以考虑使用扩展芯片或IO口拓展模块。
2.电路的设计:在电路设计中,需要合理选择电阻的阻值,以确保灯泡正常工作,并保护单片机和其他电路。
3.程序的编写:程序的编写需要注意控制流水灯的循序和时序,以及延时和循环的设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习情况1 模拟广告流水灯的制作与调试1.1 发光LED灯任务描述使用单片机驱动发光二极管发光。
要求:1.按照如图所示硬件电路,在单片机最小系统基础上焊接制作发光二极管电路。
2.按要求输入程序并编译生成目标文件,下载到单片机是P1.0所接发光二极管亮。
目标:1.学会使用Keil C51编写第一个C语言源程序,并编译声场目标文件。
2.学会使用AVR fighter 下载软件将目标文件下载到单片机中。
3.学或使用程序控制单片机引脚的高、低电平。
4.通过观察程序执行的结果,理解控制单片机引脚输出高、低电平对外围电路所起到的作用。
电路制作单片机驱动发光二极管发光硬件电路原理图相关咨询一、任务分析:发光二极管具有单向导电性。
单片机的P1.0接到发光二极管D1的阴极,发光二极管D1的阳极通过排阻接上电源。
当单片机的P1.0输出低电平,发光二极管的阳极电位高于阴极电位,就会导通发亮;否则,当单片机的P1.0输出高电平,发光二极管就会截止,不亮。
由于单片机P1口德8个引脚可以同时输出不同的电平,所以可以控制不同的发光二极管D1D8同时亮灭。
二、相关知识介绍1.库函数文件reg51.h可以帮助我们使用C51芯片内部资源。
2.我们可以通过sbit定义位变量,表示单片机的一个位地址或者一个二进制的位变量,其值只能是0或者1,变量的标识符命令式可以使用字母、数字和下环线,对大小写的书写严格区分,不能与关键词同名,例如不能使用sbit P1 ˆ0=P1.0。
3.C程序由函数构成,其中main()为程序的主函数,是每个程序执行的起始点。
4.C语言程序的书写格式:一行可以写几个语句,一个语句也可以写在多行上;每条语句的最后必须有一个分号“;”表示语句的结束。
5.使用注释可以提高程序可读性,是编程人员的良好习惯。
例如使用/**/进行多行注释,或者使用//对当前行注释。
6.在程序的书写上,我们多用TAB键将每一部分的语句对其,使编写的程序呈现锯齿形,这样可以帮助我们分清不同的程序体,便于调试。
7.while(1);为一个死循环,可以理解为程序将在此处进入空闲和等待状态。
编程调试拓展训练1.编写程序使单片机P1.2所接发光二极管D3亮。
提示:要使P1.2所接发光二极管亮,则P1.2输出_______电平?其他引脚输出_______电平?编写程序:2.编写程序使单片机P1所接所有发光二极管都亮。
提示:要使P1所接发光二极管亮,则P1全都输出_______电平,如果要一次性赋值,用C语言程序如何实现?完成情况:()3.编写程序使单片机P1所接发光二极管D1,D3,D5,D7一起亮。
提示:要使P1所接发光二极管D1D3D5D7同时亮,则_____________输出低电平,P1的状态用二进制表示为:____________,用C语言程序如何实现?总结与评价一、自我总结你在整个任务完成过程中出现了哪些问题?你是如何解决的?你还有什么问题不能解决?有什么体会?二、评价组长评价:日期:教师评价日期:1.2 闪烁LED灯任务描述使用单片机驱动发光二极管闪烁。
要求:1.按要求输入程序并编译生成目标文件,下载到单片机使P1.0所接发光二极管D1闪烁发光,每一秒闪烁一次。
2.完成拓展训练任务,使P1口指定发光二极管闪烁发光,并通过修改程序,提高或者降低发光二极管闪烁速度。
目标:3.熟练使用Keil C51编写C语言源程序,并编译生成目标文件,学会使用Keil C51调试程序。
4.数量掌握AVR fighter 下载软件的使用及使用其自动更新功能提高效率。
5.学会编写程序实现延时和进行延时长短控制。
电路制作单片机驱动发光二极管闪烁硬件电路原理图相关咨询一、任务分析:单片机的指令的执行的时间是很短,数量一般都是us级。
当我们要求发光二极管每一秒闪烁1次,也就是发光二极管亮0.5s,灭0.5s,不断循环。
实际操作中我们一般采取软件延时的方法。
通过程序使发光二极管亮,然后延时0.5s;再是发光二极管灭,再延时0.5s,然后不断循环这个过程。
二、相关知识介绍1.使用字符P1可以直接调用单片机特殊功能寄存器(SFR)的P1端口物理地址,从而操作P1端口,对其赋值,就可以控制其每一个引脚输出的电平高低。
2.Keil C51程序使由函数构成,任何函数必须先定义,再使用。
3.我们可以使用unsigned char int *定义一个无符号整型变量,表示一个16bit的二进制数,其数值范围为0~65535其命令遵循标识符命令原则。
同理,使用unsigned char定义一个无符号字符型变量,表示一个8bit的二进制数,其数值范围为0~225。
变量如果定义在函数的外面,成为全局变量;变量如果定义在函数体内,则只能在函数内部使用。
4.while(表达式){循环体},表达当表达式的值为真(非0)时,就执行循环体,表达式为真就一直执行循环体,其特点使先判断,在确定是否执行。
while(1){},表示程序将循环执行{}中的语句体。
类似的语句体还有do{循环体}while(表达式),其特点使先执行循环体,在判断表达式是否为真,以确定是否继续执行循环体。
5.for(表达式A;表达式B;表达式C;){循环体},该语句的执行过程为:(1)求解表达式A;(2)判断表达式B,其值为假时退出该语句;其值为真时执行循环体,然后继续执行第(3)步。
(3)求解表达式C;(4)返回第(2)步6.延时程序可以用一下子函数来表示,可以是一个固定延时时间的函数,例如delay();或者是一个通过参数控制延时时间的函数,例如delay(unsigned int m)通常单片机使用的石英晶振振荡器频率为12MHz,其对应的机器周期为1us,for(;m>0;m--){语句};这条语句将把{}内的语句循环执行m次。
编程调试开始点亮D1延时0.5s熄灭D1延时0.5s拓展训练1.编写程序使P1口所接所有发光二极管每1 秒闪烁2次。
提示:要实现要求,则P1所接发光二极管每____________秒就要闪烁一次,即亮灭一次。
则P1输出低电平_____________秒,再输出高电平___________秒,如此循环。
这时候,P1输出的是一个_________波形,其频率是________Hz。
2.编写程序使P1口所接所有发光二极管1357和2468,交替闪烁,每1秒闪烁4次。
发光二极管D2D4D6D8同时亮,亮_________秒,编写程序。
3.编写程序使用P1口所有发光二极管D1每1秒闪烁1次,同时D2每1秒闪烁2次。
提示:根据要求混出D1和D2对应的P1口引脚输出的波形图,再转化为程序。
4.使用本任务案例程序,P1.0输出1Hz的方波,其周期应该是________秒,我们用示波器观测实际波形,结果得到的实际周期是_________秒,通过调节程序中延时1ms语句中的n值,即语句(for(n=0;n<124;n++);),使P1.0输出相对更为精确的1Hz方波,这时候n的溢出值由124变为________,这是为什么?5.编写程序使P1口所接所有发光二极管一个一个轮流亮,每1秒亮一遍。
提示:要实现功能,每一个发光二极管要亮__________秒,如此循环。
总结与评价一、自我总结你在整个任务完成过程中出现了哪些问题?你是如何解决的?你还有什么问题不能解决?有什么体会?二、评价组长评价:日期:教师评价日期:1.3 模拟广告流水灯任务描述使用单片机驱动8个发光二极管模拟广告流水灯效果。
要求:1.编写程序使P1口德发光二极管实现单灯流水显示,每一个灯亮200ms。
目标:1.使用循环移位函数实现流水灯效果。
2.使用数组和查表方式实现各种广告彩灯效果。
电路制作单片机驱动8各发光二极管模拟广告流水灯硬件电路原理图相关咨询一、任务分析:要是P1口的发光二极管实现单灯流水显示,可以采用P1口诵0xfe先亮第一个灯,延时200ms后,将P1口值循环左移1位再送P1口,使第2个灯亮,再延时200ms,一次类推,循环下去。
或者把每一种亮灯模式对应的P1口值存到一个表格中,每次都能调用一个值送P1口并延时,一直到表格结束在重新开始循环,这种方法适用性更广,能实现各种不同的彩灯效果,在实际工程中应用较多。
二、相关知识介绍1.Keil C51提供了丰富的库函数,供我们调用和适用。
专用寄存器reg51.h,包括了所有8051的SFR及其位定义,我们一般都必须在文件开头适用#include<reg51.h>包含开头文件。
math.h,数学运算头文件。
stdio.h,输入输出流函数头文件。
2.循环移位函数在头文件intrins.h中有循环移位函数,_crol_(a,b)表示将一个无符号字符型变量a循环左移b次,_cror_(a,b)表示将一个无符号字符型变量a循环右移b次,另外还有无符号的整型变量循环移位函数。
3.数组一种具有固定数目和相同类型成分的有序集合,常用来表示一些固定表格、数据等。
例如unsigned chartable[8]={0xfe.0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},表示一个无符号正习惯数组,一共有8个元素,分别用table[0],table[1].·······table[7]来表示,我们可以适用table[i]来适用这个数组里的数,其中i=0~7。
4.Keil C自带有一个位左移和位右移运算符(<和>),其功能是将一个数的二进制代码全部同时左移或者右移若干位,移出的数据丢失,空白的地方补“0”。
位左移运算格式为a《n,表示把a的值左移n位,高位丢失n位,地位自动补上n个0;例如P1=(P1《2);表示把P1的值左移2位,右边补上2个“0”,然后再赋给P1。
编程调试//使用循环移位函数实现单灯流水效果//使用循环移位函数实现单灯流水效果延时0.2sP1左移1位显示开始//使用数组和查表方式实现各种广告彩灯效果//使用数组和查表方式实现各种广告彩灯效果延时0.2s开始i=i+1NYi=0i<8取第i 个亮灯模式拓展训练1.编写程序使P1口所接所有发光二极管实现两个相邻的发光二极管双灯流水,每次亮0.5s。
2.用Keil C自带有位左移和位右移运算符(<<和>>)能否实现单灯流水效果。
3.编写程序使8个发光二极管演示单灯流水效果,同时其速度是变化的,逐渐加快,或者珠江减慢。
提示:如果每次调用延时程序的参数是变化的,其延时时间不同,就会出现速度变化的效果。
总结与评价一、自我总结你在整个任务完成过程中出现了哪些问题?你是如何解决的?你还有什么问题不能解决?有什么体会?二、评价组长评价:日期:教师评价日期:1.3 可调亮度LED灯任务描述使用单片机控制发光二极管的亮度。