Arduino -8位LED灯显示电位器位置电路设计实验报告
8位共阴数码管实验报告
8位共阴数码管实验报告一、引言数码管是一种常见的数字显示器件,广泛应用于各种电子设备中。
8位共阴数码管是一种常见的数码管类型,本实验旨在通过实际操作,了解8位共阴数码管的原理和使用方法,并通过编程控制,实现数字的显示。
二、实验原理1. 共阴数码管原理共阴数码管是一种常见的数码管类型,它由8个LED发光二极管组成。
在共阴数码管中,所有的LED的阴极都是连接在一起的,而阳极则分别连接到控制芯片的不同引脚上。
当某个LED的阳极接通时,与之对应的数字就会在数码管上显示出来。
2. 数码管的控制为了控制数码管显示不同的数字,我们需要通过控制芯片的引脚电平来控制数码管的阳极。
具体来说,我们可以通过将某个引脚拉低,使得与之相连的数码管的阳极接通,从而显示对应的数字。
三、实验材料和器件•Arduino开发板•8位共阴数码管•杜邦线四、实验步骤1. 连接电路将Arduino开发板和8位共阴数码管通过杜邦线连接起来。
具体的连接方式如下:- 将数码管的共阴极连接到Arduino开发板的GND引脚。
- 将数码管的8个阳极分别连接到Arduino开发板的数字引脚2-9。
2. 编写程序打开Arduino开发环境,编写以下程序代码:int digitPins[] = {2, 3, 4, 5, 6, 7, 8, 9};int digits[10][7] = {{1, 1, 1, 1, 1, 1, 0}, // 数字0的显示编码{0, 1, 1, 0, 0, 0, 0}, // 数字1的显示编码{1, 1, 0, 1, 1, 0, 1}, // 数字2的显示编码{1, 1, 1, 1, 0, 0, 1}, // 数字3的显示编码{0, 1, 1, 0, 0, 1, 1}, // 数字4的显示编码{1, 0, 1, 1, 0, 1, 1}, // 数字5的显示编码{1, 0, 1, 1, 1, 1, 1}, // 数字6的显示编码{1, 1, 1, 0, 0, 0, 0}, // 数字7的显示编码{1, 1, 1, 1, 1, 1, 1}, // 数字8的显示编码{1, 1, 1, 1, 0, 1, 1} // 数字9的显示编码};void setup() {for (int i = 0; i < 8; i++) {pinMode(digitPins[i], OUTPUT);}}void loop() {for (int i = 0; i < 10; i++) {displayNumber(i);delay(1000);}}void displayNumber(int number) {int *digit = digits[number];for (int i = 0; i < 7; i++) {digitalWrite(digitPins[i], digit[i]);}}3. 烧录程序将编写好的程序通过USB线烧录到Arduino开发板中。
八位流水灯设计报告
八位流水灯循环点亮电路设计1.设计要求采用74LS138芯片,实现8位流水灯循环点亮电路。
2.题目分析74LS138为3-8线译码器,它的工作原理是:①当一个选通端(E1)为高电平,另两个选通端E2和E3为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
举例说明:如果A2A1A0=001,那么Y1输出0,其余输出1,发光二极管阴极接Y0-Y7,阳极接VCC,接上限流电阻,则Y1端发光二极管发光。
课题要求设计八位二极管循环点亮,则需要一系列脉冲序列,使得A2A1A0电平发生变化。
即依次选通Y0-Y7,脉冲从000-111。
3.方案选择利用74LS138选通发光二极管发光。
利用74LS161产生000-111脉冲控制74LS138的A2A1A0,依次选通Y0-Y7。
产生脉冲序列也可以用74LS191是四位二进制同步加/减计数器,与74LS161相比,它能够实现减计数,此处只需要求产生脉冲序列,而且74LS161是常用的计数器,所以选择74LS161产生脉冲序列。
74LS161计数必须有时钟脉冲,如何获得时钟脉冲:一、函数发生器获得;二、555定时器可以产生方波;三、LM358设计成方波发生器。
因为在电子设计这门课程中,我们做过LED闪烁灯,产生方波的原理前面实验报告中已经有所介绍,所以决定采用555定时器产生方波,而且频率更容易控制。
到此,所需设计已经完成,但如果加上数码管显示第几个LED灯发光,还需要讲信号进行译码,才能输出显示数字。
采用4511芯片驱动数码管,功耗比较低。
4.原理框图5.主要元器件介绍5.1 74LS13874LS138 为3 线-8 线译码器,其工作原理如下:●当一个选通端(E1)为高电平,另两个选通端(E2)和(E3)为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
●若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
数电课程设计报告八路花样灯控制器的设计
数电课程设计报告八路花样灯控制器的设计学校:班级:成员:指导老师:2012.6.24目录一、设计要求 (3)二、设计目的 (3)三、技术指标 (3)四、元件清单 (3)五、电路框图 (4)六、单元电路设计 (4)七、总电路图 (7)八、问题及解决办法 (8)九、心得体会 (9)十、参考文献 (9)十一、附录(此次的课程设计的部分花样变化图) (10)一、设计要求:1、有一个时钟电路。
2、有八个LED发光二极管输出电路。
3、至少16种变化的花样控制。
二、设计目的:1、巩固和加深对电子电路的基本知识的理解,提高综合运用本课程所学的知识的能力。
2、培养根据设计需要选学参考书籍,查阅相关手册,图表和文献资料的自学能力。
3、通过电路的方案分析,论证和比较,设计计算选取元件,电路组装,调试等环节初步掌握简单实用电路的分析方法和工程设计方法。
4、学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行数字电路实验的基本技能三、技术指标:设计一个有八个LED灯输出花样的控制器电路,其中有三个LED灯受74ls194芯片控制,4个LED灯受74ls160芯片控制,最后一个LED灯由两片74ls160芯片组成的二十三进制计数器的进位来控制。
从第十个时钟脉冲开始第一片74LS160的Q0端变成高电平。
此时74LS194开始移位。
通过对电源的通断来控制复位。
另外三个主要芯片统一由一个时钟芯片来控制,进而达到同步工作。
最后加上一个非门和一个与非门等完成了八路花样灯控制器的设计。
进而实现了八路LED的输出。
并且该控制器共有32种变化的花样。
(附录有其中18种花样)四、元器件清单:五、电路框图六、单元电路的设计我们设计的八路花样灯控制器共分为四大模块。
它们分别是:时钟电路模块、74LS194移位寄存器模块、主控制模块(由两片74LS160构成)、显示模块(8个发光二级管LED)(1)时钟电路图(1)图(1)所示是用555定时器接成的多谐振荡器,其分析如下:启动Multisim 11程序,我们从混合器件库(Mixed)中的定时器件(Timer)中取出 555 定时器,从工具栏中找出电阻R、电容C、地及电源VDD信号。
跪求单片机8个流水灯的课程设计实验报告(共9篇)
跪求单片机8个流水灯的课程设计实验报告(共9篇)单片机花样流水灯设计实验报告* * 大学物理学院单片机花样流水灯设计实验课题:花样流水灯设计班级: 物理***姓名:*** 学号:当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。
本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C51 单片机流水灯数码管1. 单片机及其发展概况单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2. Protues仿真软件简介Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。
利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
8路移存型彩灯控制器数字逻辑课程设计报告
目录摘要 (2)1 绪论 (3)2 总体方案设计 (4)3 单元模块设计 (5)3.1 脉冲信号产生模块 (5)3.2 计数电路模块 (7)3.3 花型控制电路模块 (8)4 系统综述,总体电路图 (10)5 分析总结,体会 (12)参考文献 (14)鸣谢 (14)附录:元器件及工具清单的引脚图和功能表 (15)摘要通过设计多路彩灯系统来加深对主要器件的理解与应用。
本实验主要由振荡电路产生秒脉冲信号,经分频电路、计数电路、花型控制和显示电路后,由发光二极管模拟输出。
通过系统的设计、元件的选取、参数的选取等,来加深对各主要器件引脚分布、功能等的理解,从而提高电子设计能力的整体水平。
进一步掌握数字电路课程所学的理论知识。
熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计,了解数字系统设计的基本思想和方法,学会科学分析和解决问题。
培养认真严谨的工作作风和实事求是的工作态度。
作为课程实验与毕业设计的过度,课程设计为两者提供了一个桥梁。
关键词:脉冲信号;分频电路;计数电路;花环电路;彩灯;技术摘要:1:8路移存型彩灯控制器2:要求彩灯组成两种以上的花型。
3:每种花型连续循环两次,各种花型轮流交替、第一章绪论随着科学的发展,人们生活水平的提高,人们不满足于吃饱穿暖,而要有更高的精神享受。
不论是思想还是视觉,人们都在追求更高的美。
特别是在视觉方面,人们已经不满足于一种光,彩灯的诞生让人们的视觉对美有了更深的认识。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑已经成为一种时尚,我们的城市也因为这些彩灯倍显靓丽与青春,人们也倍感生活的快节奏,繁华的生活也在鞭策着人们向前努力奋进、创造更多的财富。
因为彩灯体积小,外观精致,非常适合于节日、婚庆背景布置、歌厅、音乐会、舞台、舞厅宾馆、酒楼、商厦、橱窗、店铺、家具等各种场所,彩灯得到了广泛的应用。
LED点阵实验报告
LED点阵实验报告实验报告:一、实验背景与目的:LED点阵是一种常见的显示设备,由多个LED灯组成,通过控制每个LED灯的亮灭来实现信息的展示。
本实验的目的是通过搭建LED点阵电路,掌握LED点阵显示驱动原理及实现方法,并进一步了解数字显示、字符显示等功能。
二、实验器材与原理:1.实验器材:(1)LED点阵模块(2)Arduino UNO开发板(3)跳线若干(4)面包板2.实验原理:LED点阵是由多个LED灯组成的矩阵结构,通过控制每个LED的亮灭来实现不同的图案和字符显示。
在Arduino开发环境中,可以通过控制数字输出口的高低电平来实现LED点阵的驱动。
为了方便控制,通常使用编码器来进行扫描。
三、实验步骤:1.搭建电路首先,在面包板上搭建Arduino开发板和LED点阵模块的连接线路。
将LED点阵的正极接到5V电源上,将负极接到Arduino开发板的GND上。
然后,将LED点阵的A、B、C等引脚分别连接到Arduino开发板的数字输出管脚上。
2.编写驱动程序在Arduino开发环境中,编写一个简单的程序来实现数字1在LED点阵上的显示。
3.上传程序将编写好的程序上传到Arduino开发板上。
四、实验结果及分析:通过实验,我们成功实现了数字1的显示。
在LED点阵上,部分LED灯亮起,显示出数字1的形状。
五、实验总结与心得体会:通过本次实验,我对LED点阵的原理和使用方法有了更深入的了解。
LED点阵作为一种常见的显示设备,可以广泛应用于各种信息展示的场合。
掌握了LED点阵的驱动方法,我们可以进一步实现数字、字符、图案等更复杂的显示功能。
六、实验存在的问题与改进方向:本次实验中,我们只实现了数字1的显示,未能涉及更多的显示内容。
下一步的改进方向可以是通过编写更复杂的程序,实现更多种类的数字和字符的显示,并且尝试实现图案显示。
此外,还可以了解更多关于LED点阵的驱动原理,尝试使用更多的编码方式和控制方法来驱动LED点阵。
8位数码管动态显示电路设计
电子课程设计—8位数码管动态显示电路设计学院:电子信息工程学院专业、班级:姓名:学号:指导老师:2014年12月目录一、设计任务与要求................................................. (3)二、总体框图................................................. (3)三、选择器件................................................. (3)四、功能模块................................................. (9)五、总体设计电路图................................................. . (10)六、心得体会.................................................. .. (12)8位数码管动态显示电路设计一、设计任务与要求1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。
2. 要求在某一时刻,仅有一个LED数码管发光。
3. 该数码管发光一段时间后,下一个LED发光,这样8只数码管循环发光。
4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。
5、研究循环地址码发生器的时钟频率和显示闪烁的关系。
二、总体框图设计的总体框图如图2-1所示。
图2-1总体框图三、选择器件1、数码管数码管是一种由发光二极管组成的断码型显示器件,如图1所示。
U13DCD_HEX图1 数码管数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED 的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
八路彩灯实验报告
八路彩灯控制系统实验报告姓名:学院:电子工程学院学号:同作人:一实验目的1.熟悉数字电路中时序逻辑电路与组合逻辑电路的设计。
2.熟悉并掌握用移位寄存器设计彩灯控制器的方法。
二设计任务与要求1.彩灯明暗变换节拍为0.25S和0.5S,两种节拍交替运行。
2. 彩灯演示花型为三种(花型自拟)。
3. 彩灯用发光二极管模拟。
要求:即能控制8路LED以两种节拍、三种花型连续循环演示。
三参考器件给定器件为四2输入与非门(74LS00)1只,六反相器(74LS04)1只,二进制同步计数器(74LS161)2只,四位双向移位寄存器(74LS194)2只,四2选1数据选择器(74LS157)1只,555定时器1只,电阻、电容若干四实验要求按照设计任务设计电路,然后在仿真软件上进行虚拟实验,正确后,在实验板上搭建实验电路,观察彩灯花型是否正确,如果不正确,排除故障直至正确为止。
最后一步是撰写实验报告、整理文档,对实验进行总结。
五设计说明彩灯控制器原理框图如图5-45所示。
图中,虚线以上为处理器,虚线以下是控制器。
从图5-45可以看出,编码发生器的功能是:根据花型要求按节拍送出8位状态编码信号,以便控制灯的亮灭。
其电路可以选用四位双向移位寄存器来实现。
八路灯用两片移位寄存器级联就可以实现。
缓冲驱动电路的功能是:提供彩灯所需要的工作电压和电流,隔离负载对编码发生器工作的影响。
彩灯控制器对定时器的要求不高,振荡器可采用环形振荡器或555定时器来实现。
控制电路为编码发生器提供所需要的节拍脉冲和控制信号,以同步整个系统工作。
最终效果1. 从左至右顺次渐亮,全亮后逆序渐灭;2. 中间到两边对称地逐渐渐亮,全亮后,再由中间向两边逐一熄灭;3. 八路灯分两半,从左至右顺次渐亮,全亮后全灭。
原理框图VHDL语言library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng isport(clk:in std_logic;en:in std_logic;clr:in std_logic;l:out std_logic_vector(7 downto 0)--control signal of the balucaideng );end balucaideng;architecture one of balucaideng issignal count_q:integer range 0 to 86;begincounter:process(clk,clr)beginif(clr='0')thencount_q<=0;elsif(clk'event and clk='1')thenif(en='1')thenif(count_q<28)thencount_q<=count_q+1;elsecount_q<=0;end if;end if;end if;end process counter;table:process(count_q)begincase count_q iswhen 0=>l<="10000000";when 1=>l<="11000000";when 2=>l<="11100000";when 3=>l<="11110000";when 4=>l<="11111000";when 5=>l<="11111100";when 6=>l<="11111110";when 7=>l<="11111111";when 8=>l<="11111110";when 9=>l<="11111100";when 10=>l<="11111000";when 11=>l<="11110000";when 12=>l<="11100000";when 13=>l<="11000000";when 14=>l<="10000000";when 15=>l<="00000000";when 16=>l<="00011000";when 17=>l<="00111100";when 18=>l<="01111110";when 19=>l<="11111111";when 20=>l<="00011000";when 21=>l<="11000011";when 22=>l<="10000001";when 24=>l<="10001000"; when 25=>l<="11001100"; when 26=>l<="11101110"; when 27=>l<="11111111"; when 28=>l<="00000000"; --0.25swhen 29=>l<="10000000"; when 30=>l<="10000000"; when 31=>l<="11000000"; when 32=>l<="11000000"; when 33=>l<="11100000"; when 34=>l<="11100000"; when 35=>l<="11110000"; when 36=>l<="11110000"; when 37=>l<="11111000"; when 38=>l<="11111000"; when 39=>l<="11111100"; when 40=>l<="11111100"; when 41=>l<="11111110"; when 42=>l<="11111110"; when 43=>l<="11111111"; when 44=>l<="11111111"; when 45=>l<="11111110"; when 46=>l<="11111110"; when 47=>l<="11111100"; when 48=>l<="11111100"; when 49=>l<="11111000"; when 50=>l<="11111000"; when 51=>l<="11110000"; when 52=>l<="11110000"; when 53=>l<="11100000"; when 54=>l<="11100000"; when 55=>l<="11000000"; when 56=>l<="11000000"; when 57=>l<="10000000"; when 58=>l<="10000000"; when 59=>l<="00000000"; when 60=>l<="00000000"; when 61=>l<="00011000"; when 62=>l<="00011000"; when 63=>l<="00111100"; when 64=>l<="00111100"; when 65=>l<="01111110";when 67=>l<="11111111";when 68=>l<="11111111";when 69=>l<="00011000";when 70=>l<="00011000";when 71=>l<="11000011";when 72=>l<="11000011";when 73=>l<="10000001";when 74=>l<="10000001";when 75=>l<="00000000";when 76=>l<="00000000";when 77=>l<="10001000";when 78=>l<="10001000";when 79=>l<="11001100";when 80=>l<="11001100";when 81=>l<="11101110";when 82=>l<="11101110";when 83=>l<="11111111";when 84=>l<="11111111";when 85=>l<="00000000";when 86=>l<="00000000";--0.5swhen others =>l<="11111111";end case;end process table;end one;仿真波形花型一花型二花型三。
多路彩灯控制器8路移存型彩灯控制器数字电路课程设计实验报告
多路彩灯控制器的设计一课程设计题目(与实习目的)(1)题目:多路彩灯控制器(2)实习目的:1.进一步掌握数字电路课程所学的理论知识。
2.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。
3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。
4.培养认真严谨的工作作风和实事求是的工作态度。
5.作为课程实验与毕业设计的过度,课程设计为两者提供了一个桥梁。
二任务和要求实现彩灯控制的方法很多,如EPROM编程、RAM编程、单板机、单片机等,都可以组成大型彩灯控制系统。
因为本次实习要求设计的彩灯路数较少,且花型变换较为简单,故采用移位寄存器型彩灯控制电路。
(1)彩灯控制器设计要求设计一个8路移存型彩灯控制器,要求:1. 彩灯实现快慢两种节拍的变换;2. 8路彩灯能演示三种花型(花型自拟);3. 彩灯用发光二极管LED模拟;4. 选做:用EPROM实现8路彩灯控制器,要求同上面的三点。
(2)课程设计的总体要求1.设计电路实现题目要求;2.电路在功能相当的情况下设计越简单越好;3. 注意布线,要直角连接,选最短路径,不要相互交叉;4. 注意用电安全,所加电压不能太高,以免烧坏芯片和面包板。
三总体方案的选择(1)总体方案的设计针对题目设计要求,经过分析与思考,拟定以下二种方案:方案一:总体电路共分三大块。
第一块实现花型的演示;第二块实现花型的控制及节拍控制;第三块实现时钟信号的产生。
主体框图如下:方案二:在方案一的基础上将整体电路分为四块。
第一块实现花型的演示;第二块实现花型的控制;第三块实现节拍控制;第四块实现时钟信号的产生。
并在部分电路的设计上与方案一采用了完全不同的方法,如花型的控制。
主体框图如下:(2)总体方案的选择方案一与方案二最大的不同就在,前者将花型控制与节拍控制两种功能融合在一起,是考虑到只要计数器就可以实现其全部功能的原因,且原理相对简单。
这样设计,其优点在于:设计思想比较简单。
8路彩灯控制器实验报告
《8路彩灯控制电路设计》课程设计报告专业:班级:姓名:学号:同组成员:指导教师:赵玲2015年1 月7 日目录一、课程设计目的 (3)二、课程设计要求 (3)(一)、彩灯控制器设计要求 (3)(二)、课程设计总体要求 (3)三、课程设计内容 (3)(一)、设计原理分析 (3)(二)、器件选择 (5)(三)、具体电路连线及设计思路 (6)1、时钟控制电路 (6)2、花色控制电路 (7)3、花色演示电路 (8)4、总体电路图 (10)四、实际焊接电路板思路及过程 (11)(一)、设计思路及电路图 (11)(二)、设计及焊接过程 (11)(三)、电路板展示 (12)五、课程设计总结与体会 (13)一、课程设计目的1.巩固数字电路技术基础课程所学的理论知识,将学习到的理论知识落实到实际,所谓学以致用。
并且将模拟电路技术基础和电路分析基础等课程的所学知识加以强化。
2.熟悉几种常用集成数字芯片74LS161、74LS194等的功能和应用,并掌握其工作原理,并将这几种芯片的应用结合起来。
从而学会使用常用集成数字芯片进行电路设计。
3.学会使用protues软件进行模拟电路仿真,并且学会将仿真电路实现。
4.了解数字系统设计的基本思想和方法,学会科学分析和解决问题,学会使用基本元器件其进行电路设计。
5.培养自己的动手能力,团队协作能力。
二、课程设计要求(一)、彩灯控制器设计要求设计并制作8路彩灯控制电路,用以控制8个LED按照不同的花色闪烁,要求如下:1.接通电源,电路开始工作,LED灯闪烁;2.LED灯按照事先设计的方式工作,要求闪烁的模式不能少于三种模式;3.(选做内容)闪烁时实现快慢两种节拍的变换。
(二)、课程设计总体要求(1)根据设计任务,每人独立完成一份设计电路图,并要求仿真实现;(2)根据设计的电路图,两人一组,利用万能板完成电路的焊接,并调试成功;(3)每人独立完成一份设计报告。
三、课程设计内容(一)、设计原理分析1.基本原理如下:总体电路共分三大块。
8路彩灯控制器课程设计设计报告
EDA课程设计报告课题名称:8路彩灯控制器课程设计专业年级:电子信息科学与技术2009级学号: ********学生姓名: ********指导教师:*********报告完成日期2011 年 6 月10日第一章绪论1.1 系统背景EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
EDA技术是以计算机为工具,根据硬件描述语言HDL(Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。
伴随着计算机、集成电路和电子设计技术的发展,EDA技术在过去的几十年里取得了巨大的进步。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件便可完成对系统硬件功能的实现。
如今,EDA软件工具已经成为电子信息类产品的支柱产业。
从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在P哪的制作、电子设备的研制与生产、电路板的焊接、朋比的制作过程等有重要作用。
可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top to Down)和基于库(LibraryBased)的设计的特点。
因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
实验报告——LED显示控制
实验一LED显示控制一、硬件介绍1)C28X芯片提供了56个多功能引脚,用户可以将这些引脚作为片内外设的输入输出引脚,当不使用片内外设时,也可以将他们作为数字I/O口。
本实验是将其用作GPIO口,如图1所示。
图1 GPIO口应用2)74HC164是一个8位的串并行数据转换的芯片,其时序图如图2所示。
图2 74164工作时序图由图2知,输入端A和B相与是74HC164的输出,若输入信号只有一个(A端),则可以将其中一个输入端置1(B端),则可将输入的串行信号(A端)转化成并行输出(QA--QH)。
CLEAR是低电平有效的复位信号,即CLEAR为低电平时,输出端(QA—QH)全部置0,其为高电平时芯片可正常工作。
CLOCK是上升沿有效的时钟信号,即每来一个上升沿,输入的数据就会传一位,输出端QA会输出最新的输入信号,而QB则重复前一个时钟的QA,QC则重复前一个时钟的QB,……待满8个上升沿时,一个输入的8位串行数据就被转换成8位的并行数据输出。
3)8×8 LED的显示模块如图3所示。
图3 8×8 LED的显示模块由图3可知,若要是LED正常发光,将LED的正向加高电平,负向加低电平即可。
显示图像或字可通过动态扫描得到结果。
二、硬件连接实验模块控制模块G LED DISPLAY A DSP SECTIONLED_A2(J32) SPISIMOA(J34)LED_B2(J32) SPISOMIA(J34)CLKIN2(J32) SPICLKA(J34)/CLR2(J32) SPISTEA(J34)LED_A1(J5) PWM7(J35)LED_B1(J5) PWM8(J35)/CLKIN1(J5) PWM9(J35)/CLR1(J5) PWM10(J35)除此之外,通过用跳线头短接J6(G LED DISPLAY )的VCC和U2VCC为LED DISPLAY 模块供电。
用跳线头短接J61(A DSP SECTION)的GND和1DIR以及J62(A DSP SECTION)的GND 和2DIR,将A DSP SECTION模块的缓冲设为输出。
数电课程设计报告八路花样灯控制器设计
数电课程设计报告八路花样灯控制器的设计学校:惠州学院班级:15电科2成员:刘海东指导老师:林伟明2017.6.21目录一、设计要求 (3)二、设计目的 (3)三、技术指标 (3)四、元件清单 (3)五、电路框图 (4)六、单元电路设计 (4)七、总电路图 (7)八、问题及解决办法 (8)九、心得体会 (9)一、设计要求:1、有一个时钟电路。
2、有八个LED发光二极管输出电路。
3、至少16种变化的花样控制。
二、设计目的:1、巩固和加深对电子电路的基本知识的理解,提高综合运用本课程所学的知识的能力。
2、培养根据设计需要选学参考书籍,查阅相关手册,图表和文献资料的自学能力。
3、通过电路的方案分析,论证和比较,设计计算选取元件,电路组装,调试等环节初步掌握简单实用电路的分析方法和工程设计方法。
4、学会简单电路的实验调试和性能指标的测试方法,提高学生动手能力和进行数字电路实验的基本技能三、技术指标:方案一:设计一个有八个LED灯输出花样的控制器电路,其中有三个LED灯受74ls194芯片控制,4个LED灯受74ls160芯片控制,最后一个LED灯由两片74ls160芯片组成的二十三进制计数器的进位来控制。
从第十个时钟脉冲开始第一片74LS160的Q0端变成高电平。
此时74LS194开始移位。
通过对电源的通断来控制复位。
另外三个主要芯片统一由一个时钟芯片来控制,进而达到同步工作。
最后加上一个非门和一个与非门等完成了八路花样灯控制器的设计。
进而实现了八路LED的输出。
并且该控制器共有32种变化的花样。
方案二:设计一个有八个LED灯输出花样的控制器电路,其中有四个LED灯受74ls194芯片控制,4个LED灯受74ls160芯片控制,从第十个时钟脉冲开始第一片74LS160的Q0端变成高电平。
此时74LS194开始右行串行输入高点平。
当第一片74LS160的Q1端变成高电平的时候,此时74LS194开始左行输入。
单片机课程设计—8个按键控制8个LED自动设定控制流水灯
-1-江苏安全技术学院实习总结报告实习单位江苏安全技术职业学院实习起止时间 2019 年 11 月 17 日至 2019 年 12 月 11 日指导教师所在院(系) 电气工程系班 级 电梯技术 2 班学生姓名 艾孜提艾力·阿迪力·玉苏甫江学号20183102932019 年 12 月 16 日江苏安全技术职业学院-1-目录第 1 章 按键控制流水灯设计.................................................................................... 1 1.1 实习目的 ................................................................... 错误!未定义书签。
1.2 实习要求 ................................................................... 错误!未定义书签。
第 2 章 电路工作原理................................................................................................ 2 2.1 STC89C52 单片机工作原理 ....................................................................... 2 2.2 LED 工作原理.............................................................................................. 3 2.3 按键工作原理 .............................................................................................. 3 2.4 整体电路图 .................................................................................................. 5 2.5 本章小结 ..................................................................................................... 6第 3 章 C 程序设计.................................................................................................... 7 3.1 程序设计流程图 ......................................................................................... 7 3.2 实验结果 ...................................................................................................... 8 3.3 本章小结 ..................................................................................................... 9总结及体会................................................................................................................ 10 参考文献.................................................................................................................... 11 附录............................................................................................................................ 12-1--2-第1章 按键控制流水灯设计1.1 实习目的本次实习以 STC89C52 单片机为控制核心。
8路LED彩灯控制电路 设计报告
《8路LED彩灯控制》课程设计报告专业:班级:姓名:学号:同组成员:指导教师:2011年 1 月 8 日目录一、课程设计目的 (3)二、课程设计题目描述和要求 (3)三、课程设计报告内容 (3)3.1 器件选择 (3)3.2 实验电路图 (3)3.3 原理分析 (4)3.3.1 脉冲源产生模块 (4)3.3.2 定时器模块 (4)3.3.3 寄存器模块 (4)3.4 具体思路和设计过程 (4)3.4.1 设计思路 (4)3.4.2 具体设计过程 (5)四、焊接与调试 (6)五、总结体会 (6)一、课程设计目的随着社会的发展,人民生活水平不断提高,现代人们越来越注重节能和装饰,因此LED作为一种超节能产品在实际生活中得到广泛应用,它不仅工作电压低,而且使用寿命很长,所以它受到大多数灯光装饰师的青睐。
本设计用8路led设计出的彩灯控制电路具有:低能耗、花色多、性能忧、实用美观等特点,实为家居装饰之首选。
而具体的课程设计(包括电路图设计、电路板焊接、安装与调试),既可以提高我们的动手能力和实际分析问题能力,还有助于我们加深对数字电路的认识和了解,进一步激发学习的兴趣,为后续学习打下坚实基础。
二、课程设计题目描述和要求本设计中的8路LED彩灯控制电路,由555定时器、移位寄存器、计数器等器件构成,主要功能是实现三种花色的交错变换,8路led灯的亮和灭组合起来形成有规律的花色,给人以美感,适用于彩灯装饰。
三.课程设计报告内容3.1 器件选择555定时器一片、十六进制计数器74ls191两片、双向移位寄存器74ls194两片、0.01uf的电容和2.2uf的电容各一个、47k电阻两个、非门74ls04一个、与非门74ls20六个、导线若干。
3.2 实验电路图3.3 原理分析3.3.1 脉冲源产生模块实际上是由555定时器和电容、电阻构成的多谐振荡器,它们负责为后面的各个芯片提供时时脉冲。
脉冲周期T=(R1+R2)Cln2=0.33s3.3.2 定时器模块两块十六进制74ls191计数器接成48进制计数器,上面一块芯片的Q0、Q2、Q3端为后面的移位寄存器提供变换的穿行输入信号;下面一块芯片和中间的非门、与非门共同构成数据处理中端,负责对上方各输出端的信号脉冲进行处理,并且传至寄存器。
八只LED灯做流水灯实验报告
51八只LED灯做流水灯实验第一节:单片机在上电初始后,其各端口输出为高电平。
如果我们现在想让接在P1.0口的LED1亮,那么我们只要把P1.0口的电平变为低电平就可以了。
想让LED1灭,LED0亮,只需将P1.0升高,P1.1变低,LED1就熄灭LED2随后既点亮!依始类推如下所示8只LED变会一亮一暗的做流水灯了。
本实验在“SP-51实验板”学习套件上的相关图纸: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.1这里用到了四条汇编指令:clr、setb、ljmp 、end;clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成1;ljmp:是无条件跳转指令,意思是:跳转到指定的标号处继续运行。
8位动态LED数码管显示实验——【全国大学生电子设计大赛】
8位动态LED数码管显示实验2008-03-18 18:048.1 实物图与原理图本实验仪配置带8位动态扫描显示模块一个。
实物图如下:为减少IO的使用,我们采用串入并出芯片CD4094来扩展了IO 口,即采用3个IO来实现数据的传输。
原理图如下:所以,我们占用3个IO来传输数据,8个IO来进行8个LED数码管的位选。
在本实验仪中链接管教分布如下:STK-----P2.5DAT-----P2.6CLK-----P2.7B0、B1、B2、B3、B4、B5、B6、B7接P0口(P0.0 P0.1 P0.2 P0.3 P0.4 P0.5P0.6 P0.7)由于上一节已经讲述了CD4094驱动一位LED数码管的问题,这里我们讲如何来扫描8位数码管。
8.2 LED动态显示原理根据原理图管脚连接,我们知道P0口控制了8个LED数码管的位选中,所以如果想让8个数码管都亮起来,我们可以逐位扫描8位数码管。
1动态显示原理:原理上同一时刻只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是常说的动态扫描显示。
动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。
如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,所以一般均取几个ms左右为宜。
8.3 DG3000 动态显示头文件display_s.h----------------------------------------------------------程序作用:显示头文件display_s.h----------------------------------------------------------#ifndef _display_#define _display_#include <intrins.h>sbit SDA=P2^6; 定义显示管脚sbit CLK=P2^7;unsigned char data display_bit;unsigned char codeled[20]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89,0x8C};2旗开得胜定义段码延时程序void delay(unsigned int k){ unsigned int i,j;for(i=0;i<k;i++)for(j=0;j<100;j++);}数据传输void send(unsigned char a){unsigned char i;for(i=0;i<8;i++){if(_crol_(a,i)&0x80)SDA=1;elseSDA=0;CLK=0;CLK=1;}}3显示程序8位LED数码管扫描void display(unsigned char display_buffer[8]){unsigned char i,k;display_bit=0xfe;for(i=0;i<8;i++){k=led[display_buffer[i]];send(k);P0=display_bit;delay(0x01);P0=0xff;display_bit=_crol_(display_bit,1);}display_bit=0xfe;8.4 8位数码管动态显示01234567(C51程序)----------------------------------------------------------程序作用:动态扫描显示01234567----------------------------------------------------------#include<REG52.h>#include<display_s.h> 调用显示头文件4main(){unsigned chara[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};显示01234567 while(1){display(a); 显示数据}}8.5 8位数码管动态显示01234567(汇编);----------------------------------------------------------;程序作用:8位数码管动态显示01234567(汇编);----------------------------------------------------------;定义变量DBUF DATA 40H ;显示缓冲区首址SP_BT DATA 60H ;堆栈指针初值; LED 位选LED_CS1 BIT P0.0LED_CS2 BIT P0.1LED_CS3 BIT P0.2LED_CS4 BIT P0.35旗开得胜LED_CS5 BIT P0.4LED_CS6 BIT P0.5LED_CS7 BIT P0.6LED_CS8 BIT P0.7;4094接口SDA_4094 BIT P2^6CLK_4094 BIT P2^7ORG 0000HAJMP MAIN;-------------------------------ORG 0030HMAIN: MOV SP,#60HMOV R0,#0FFH;单元清零RES1: MOV R0,#0DJNZ R0,RES1MOV DBUF,#00H;显示数据MOV DBUF+1,#01HMOV DBUF+2,#02HMOV DBUF+3,#03HMOV DBUF+4,#04H6旗开得胜MOV DBUF+5,#05HMOV DBUF+6,#06HMOV DBUF+7,#07HSAMP1:LCALL DIR ;调用显示SJMP SAMP1;------------------------------------------------------;显示数据;-------------------------------------------------------DIR:;显示程序MOV DPTR,#TABLEMOV A,DBUFMOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS1 ;选通第1位数码管LCALL DELAY_4094SETB LED_CS1 ;关闭显示MOV A,DBUF+1MOVC A,A+DPTRANL A,#7FH;加小数点7ACALL DISP_da ;送段码输出CLR LED_CS2;选通第1位数码管LCALL DELAY_4094SETB LED_CS2;关闭显示MOV A,DBUF+2MOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS3 ;选通第1位数码管LCALL DELAY_4094SETB LED_CS3 ;关闭显示MOV A,DBUF+3MOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS4;选通第1位数码管LCALL DELAY_4094SETB LED_CS4;关闭显示MOV A,DBUF+4MOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS5 ;选通第1位数码管LCALL DELAY_40948SETB LED_CS5 ;关闭显示MOV A,DBUF+5MOVC A,A+DPTRANL A,#7FH;加小数点ACALL DISP_da ;送段码输出CLR LED_CS6;选通第1位数码管LCALL DELAY_4094SETB LED_CS6;关闭显示MOV A,DBUF+6MOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS7 ;选通第1位数码管LCALL DELAY_4094SETB LED_CS7 ;关闭显示MOV A,DBUF+7MOVC A,A+DPTRACALL DISP_da ;送段码输出CLR LED_CS8;选通第1位数码管LCALL DELAY_4094SETB LED_CS8;关闭显示;-------------------------------------9RETTABLE: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9DB 88H,83H,0C6H,0A1H,86H,8EH ;A~F;-------------------------延时子程序---------------------------------DELAY_4094: MOV R4,#2 ;延时程序3,精确延时1000微秒D_4094:MOV R5,#248DJNZ R5,$DJNZ R4,D_4094RETDISP_DA:MOV R3,#08HDUP: RLC AMOV SDA_4094,CCLR CLK_4094SETB CLK_4094DJNZ R3,DUPRETEND10。
Arduino 八段数码管
Arduino八段数码管实验器材:Arduino 168P 基础套件互动媒体1.Arduino 168P 开发板一个2.USB下载线一条3.8段数码管一个4.面包板一块5.面包板跳线若干条实验目的:学习数码管的工作原理,以及如何使用Arduino 控制数码管显示数字(0—9)。
实验电路:实验电路如下图所示实验原理:数码管在电子设计中是一种应用范围非常广的显示器件,我们在基础套件中用的是8段数码管。
数码管的每个段都可以简单理解为由一个发光二极管构成的。
数码管可分为共阴极数码管和共阳极数码管,我们基础套件为大家提供的是共阳极的。
阳极接+5V其他a、b、c、d、e、f、g、Dp任何引脚接地就能点亮相对应的段,(例:我们给a引脚一个低电平其他都为高电平,那么就只点亮a引脚对应的段。
8段数码管各引脚图:数码管实现0-9的真值表:实验步骤:一.按照以上电路正确搭建实验电路。
二.将我提供的调试程序下载到Arduino开发板中。
三.根据实际效果调试程序。
实验程序:int pin0=0;//设置蜂鸣器数字接口0 int pin1=1;int pin2=2;int pin3=3;int pin4=4;int pin5=5;int pin6=6;int pin7=7;void setup(){pinMode(pin0,OUTPUT);pinMode(pin1,OUTPUT);pinMode(pin2,OUTPUT);pinMode(pin3,OUTPUT);pinMode(pin4,OUTPUT);pinMode(pin5,OUTPUT);pinMode(pin6,OUTPUT);pinMode(pin7,OUTPUT);}void loop(){digitalWrite(pin0,LOW); //显示0digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,LOW);digitalWrite(pin5,LOW);digitalWrite(pin6,HIGH);digitalWrite(pin7,HIGH);delay(1000); digitalWrite(pin0,HIGH);//显示1 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,HIGH);digitalWrite(pin4,HIGH);digitalWrite(pin5,HIGH);digitalWrite(pin6,HIGH);digitalWrite(pin7,HIGH);digitalWrite(pin0,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示2 digitalWrite(pin1,LOW);digitalWrite(pin2,HIGH);digitalWrite(pin3,LOW);digitalWrite(pin4,LOW);digitalWrite(pin5,HIGH);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示3 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,HIGH);digitalWrite(pin5,HIGH);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,HIGH);//显示4 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,HIGH);digitalWrite(pin4,HIGH);digitalWrite(pin5,LOW);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示5 digitalWrite(pin1,HIGH);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,HIGH);digitalWrite(pin5,LOW);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,HIGH);//显示6 digitalWrite(pin1,HIGH);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,LOW);digitalWrite(pin5,LOW);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示7 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,HIGH);digitalWrite(pin4,HIGH);digitalWrite(pin5,HIGH);digitalWrite(pin6,HIGH);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示8 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,LOW);digitalWrite(pin5,LOW);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,LOW);//显示9 digitalWrite(pin1,LOW);digitalWrite(pin2,LOW);digitalWrite(pin3,LOW);digitalWrite(pin4,HIGH);digitalWrite(pin5,LOW);digitalWrite(pin6,LOW);digitalWrite(pin7,HIGH);delay(1000);digitalWrite(pin0,HIGH);//显示点DP digitalWrite(pin1,HIGH);digitalWrite(pin2,HIGH);digitalWrite(pin3,HIGH);digitalWrite(pin4,HIGH);digitalWrite(pin5,HIGH);digitalWrite(pin6,HIGH);digitalWrite(pin7,LOW);delay(1000);感谢您的下载与阅读,祝您工作顺利、万事如意!!!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARDUINO -8位LED灯显示电位器位置电路设计实验报告
2018年12月
Arduino -8位LED灯显示电位器位置电路设计实验报告
一、实验目的
通过电路设计、编程、硬件连接调试等实现用8位LED灯显示电位器的位置的简单功能
二、硬件设备
笔记本电脑、单片机、面包板、8个LED灯、电位器、杜邦线、下载线等。
三、所需软件
编程软件:官方标准开发软件arduino-1.8.8-windows
四、画连线图
图1共阳极连线图
五、控制程序
// 引脚定义
const int analogPin = A0; // 模拟输入
const int ledCount = 8; // led个数,静态常量,不可改动
int ledPins[] = { 1,2, 3, 4, 5, 6, 7,8 }; // 对应的led引脚
void setup()
{
// 循环设置,把对应的led都设置成输出
for (int thisLed = 0; thisLed < ledCount; thisLed++)
{
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop()
{
// 读取电位器的值
int sensorReading = analogRead(analogPin);
// 把对应的值转化成0-最大led个数,这里是8
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
// 循环对比输出到led:
for (int thisLed = 0; thisLed < ledCount; thisLed++)
{
if (thisLed < ledLevel)
{
digitalWrite(ledPins[thisLed], HIGH);
}
else
{
digitalWrite(ledPins[thisLed], LOW);
}
}
}
六、连接调试
将程序保存。
连接实物,搭建硬件平台,将程序下载到单片机中,如图2所示。
调节电位器到不同的位置,观察LED的量灭情况。
(另附视频于附件中)
图2 实物连线图
七、实验结果
如图3,将电位器从最左端顺时针旋转到最右端,8位LED小灯依次亮起;在最左端,LED小灯全灭状态,在最右端,8位LED小灯全部亮起,达到实验目的。
图3 实验效果图。