8个led循环显示计数器报告
显示计数器的设计实验报告

数字电路与逻辑设计实验报告
(一)实验名称:显示计数器的设计。
(二)实验目的:熟悉同步、异步计数器的工作原理及应用。
掌握任意进制计数器的设计方法。
(三)实验内容:掌握双二-五-十进制计数器74LS390的功能。
利用74LS390设计一个模18的计数器,使用555定时器产生计数脉冲信号,计数结果用数码管显示。
利用示波器观察CP、1QA、1QB、1QC、1QD、2QA的波形,并在报告中绘制。
(四)模拟电路上的运行结果:
(五)心得体会:
此次计数器的有关实验,不仅帮我巩固了计数器相关方面的知识,而且让我懂得和体会到了计数器功能测试的方法,并且也掌握了一些计数器的设计方法。
与此同时,还让我熟悉了同步、异步计数器的工作原理和应用。
虽然刚开始的时候还是遇到了一些难于解决的问题,但最后经过老师的讲解和自己大胆的尝试操作后,最终问题都迎刃而解了。
(六)思考题解答:。
单片机实训报告(8个LED指示灯循环移动)

单⽚机实训报告(8个LED指⽰灯循环移动)⼀、实验⽬的:通过所学汇编语⾔和C语⾔知识,熟悉并掌握单⽚机综合仿真实验仪的使⽤⽅法,学会使⽤Keil uVision2编写程序。
⼆、实验器材:单⽚机综合仿真实验仪、AT89C51、计算机、导线。
三、实验功能:利⽤定时计数器T0⼯作⽅式1,实现定时50ms,中断20次,实现精确定时1秒以控制8个LED指⽰灯从左到右间隔1秒时间循环移动,当LED指⽰灯移动次数到32次时,8个LED指⽰灯停⽌循环移动,蜂鸣器响1秒后停⽌声⾳提⽰;⼜接着控制8个LED指⽰灯从右到左间隔1秒时间循环移动,依此类推。
四、实验要求:只能利⽤单⽚机的4个P1⼝控制74HC138译码器以及蜂鸣器来实现上述功能,并对程序进⾏注解;注明:刚开始时,最左边的LED指⽰灯点亮,画出电路图。
五、计算定时/计数器的初值X(2^16-X)*1=50000,X=15536D=03CB0H.低8位送给TL0,⾼8位送给TH0,即(TL0)=0B0H,(TH0)=03CH六、实验原理图:七、实验参考程序:#includebit direct=1,speak=0,counter=0;int i=0,j=0,k=0,p=0,m,n;sbit P13=P1^3; //定义P1.3引脚main() //主函数{TMOD=0x01; //T0计数⽅式1TL0=0xb0; //定时50msTH0=0x3c;EA=1; //开T0中断ET0=1;TR0=1; //启动T0 while(1) //等待中断{while(speak){P13=~P13; //输出取反for(m=0;m<2;m++)for(n=0;n<2;n++);}if(counter){counter=0;TR0=1;if(direct&&!speak){P1=i;i++;if(i==8){j++;if(j==4){j=0;direct=0;speak=1;}elsei=0;}}else if(!direct&&!speak){i--; //循环右移P1=i;if(i==0){j++; //循环左移if(j==4) //移动周期{j=0;direct=1;speak=1;}elsei=8;}}}}}void time0(void) interrupt 1 //T0中断服务函数{ TR0=0; //重启动TL0=0xb0; //重装初值TH0=0x3c;if(speak){++p;if(p==20) //蜂鸣器响应时间{p=0;speak=0;}}else++k;if(k==20) //LED灯间隔1秒移动{k=0;counter=1;}elseTR0=1;}⼋、实验总结:通过这次实训,我拓宽了知识⾯,锻炼了能⼒,综合素质得到较⼤提⾼。
实验二P1口控制LED发光二极管

实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
流水灯课程设计报告

流水灯课程设计报告1、概述随着科学技术水平的不断向前提高以及社会经济的不断向前发展,人们越来越意识到广告宣传的重要性,越来越多的丰富多彩、新颖夺目的LED广告宣传牌充斥在城市的公共场所中,为灯红酒绿的城市增加了炫目多姿的色彩。
这些LED 广告宣传牌动态显示的背后,则是以流水灯的原理为基础,以单片机为控制核心,按照广告商的宣传需求,通过炫目的多彩和新颖的方式来吸引人们的眼球来完成广告宣传。
基于单片机的流水灯的设计,主要是以单片机为控制核心,通过自身的数据输入输出端口完成与流水灯显示电路的数据联通,通过内部的程序运行来实现对流水灯显示电路的动态控制,进而实现显示电流的循环亮灭的操作。
所以对于基于单片机的流水灯系统的深入研究与学习对于学习单片机控制系统以及LED广告宣传系统的工作机制进来说具有非常重要的现实意义。
2、基于单片机的流水灯的系统电路流水灯的显示电路就是多个二极管通过一端公共连接而构成的显示电路,并将另一端分别与单片机的多个数据输入输出端口进行连接,当单片机向这些端口发送相应的数据时,根据二极管的工作特性,从而实现对其的亮灭控制。
当然,单片机工作还需要复位电路和晶振电路配合单片机芯片构成单片机工作的最小系统,从而满足单片机正常工作的基本条件。
如图1所示,为基于单片机的流水灯控制系统硬件电路图,该硬件电路以AT89C51为基本的控制核心,实现对8为二极管流水灯显示电路的亮灭控制。
该控制系统是以AT89C51为系统的控制单片机,它是美国ATMEL公司生产的高性能的CMOS 8位处理器,同时配备了丰富的硬件资源,有128字节的RAM供用户使用,并提供2个16为定时器/计数器完成定时和计数的工作以及32根数据输入输出端口来单片机与外部电路的数据连通的工作。
8位二极管构成的流水灯显示电路是用共阳极的连接方法来构成的显示电路的。
常见的LED显示灯电路中的二极管连接方法有两种,一种是共阳极连接,一种是共阴极连接,它们是根据显示电路中二极管公共连接的方式来决定的。
PLC实验

实验一与或非功能的实验在基本指令的编程练习单元完成本实验。
一、实验目的1、熟悉PLC实验装置,S7-200系列编程控制器的外部接线方法2、了解编程软件STEP7的编程环境,软件的使用方法。
3、掌握与、或、非逻辑功能的编程方法。
二、实验说明首先应根据参考程序,判断Q0.0、Q0.1、Q0.2的输出状态,在拨动输入开关I0.1、I0.2、I0.3,观察输出指示灯Q0.1、Q0.2、Q0.3是否符合与、或、非逻辑的正确结果。
在本装置中输入公共端要求接主机模块电源的“L+”,此时输入端是低电平有效;输出公共端要求接主机模块电源的“M”,此时输出端输出的是低电平。
三、实验面板图图中的接线孔通过防转座插锁紧线与PLC的主机相输入输出插孔相接。
I为输入点,Q为输出点。
上图中下面两排I0.0~I1.5为输入按键和开关,模拟开关量的输入。
上边一排Q0.0~Q1.1是LED指示灯,接PLC主机输出端,用以模拟输出负载的通与断。
四、梯形图参考程序实验二定时器功能实验一、实验目的掌握定时器的正确编程方法,并将定时器应用到实际电路中,用编程软件对可编程控制器的运行进行监控。
二、实验说明SIMATIC定时器可分为接通延时定时器(TON),有记忆的接通延时定时器(TONR)和断开延时定时器(TOF)。
在运行程序之前,首先应该根据要求分析各个定时器的动作状态。
三、设计梯形图1、定时器实验(1)接通延时定时器I0.0接通,100ms定时器T37在1s后到时;I0.0断开,T37复位(2)有记忆的接通延时定时器I0.0接通,10ms定时器T1在1s后到时;I0.1接通T1复位(3)断开延时定时器I0.0断开,10ms定时器T33在1s后到时;I0.0接通,T33复位。
2.定时器应用实验设计一闪烁电路:I0.0接通时,Q0.0断开2s,接通3s,循环实现闪烁。
四、预习要求阅读实验指导书,复习教材中有关的内容,根据要求设计出梯形图。
五、实验报告要求整理出运行调试后的各个程序的梯形图程序。
编写程序使实验板上八段数码管循环显示0 到9 字符

编写程序使实验板上八段数码管循环显示0 到9 字符1.八段数码管嵌入式系统中,经常使用八段数码管来显示数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
结构八段数码管由八个发光二极管组成,其中七个长条形的发光管排列成“日”字形,右下角一个点形的发光管作为显示小数点用,八段数码管能显示所有数字及部份英文字母。
见图1。
图1 八段数码管的结构类型八段数码管有两种不同的形式:一种是八个发光二极管的阳极都连在一起的,称之为共阳极八段数码管;另一种是八个发光二极管的阴极都连在一起的,称之为共阴极八段数码管。
工作原理以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。
电平信号按照dp,g,e…a 的顺序组合形成的数据字称为该字符对应的段码,常用字符的段码表如下:表1 常用字符的段码表显示方式八段数码管的显示方式有两种,分别是静态显示和动态显示。
静态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管控制信号一直保持有效。
动态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管是轮流点亮的,即控制信号按一定周期有效,在轮流点亮的过程中,点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,数码管的显示依然是非常稳定的。
基础知识地址0x10000004为数码管的数据寄存器,控制数码管的段码输出.数码管扫描控制地址为0x10000006,8位访问Bit0 –控制数码管0 –低电平有效Bit1 –控制数码管1 –低电平有效Bit2 –控制数码管2 –低电平有效Bit3 –控制数码管3 –低电平有效Bit4 –控制数码管4 –低电平有效Bit5 –控制数码管5 –低电平有效实验说明1、制作LED字符与码段对应表unsigned char seg7table[16] = {/* 0 1 2 3 4 5 6 7*/0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,/* 8 9 A B C D E F*/0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e };2、扫描控制*((U8*) 0x02000006) = 0x3E; /* 使能第一个数码管 */段码输出*((U8*) 0x02000004) = seg7table[0]; /* 输出数据 0 */思考:简述LED的显示原理以及LED的显示办法静态显示和动态显示各有什么优缺点设计"HELLO"的码表,编写程序循环显示"HELLO"。
数电计数器实验报告

数电计数器实验报告实验名称:数电计数器实验实验目的:通过实验,了解和掌握数电计数器的原理和工作方式,以及计数器的应用。
实验原理:计数器是一种能够实现数字计数功能的电子元件。
主要由触发器、逻辑门和时钟信号组成。
触发器主要用于储存和传递信号,逻辑门用于控制和处理信号,时钟信号用于控制计数时间。
实验器材:1. 7400四路或五路与门2. 7432四路或五路或六路或七路与非门3. 7474触发器4. 555定时器5. LED灯6. 电源实验步骤:1. 将触发器与逻辑门按照电路图连接,并确保连接正确无误。
2. 将555定时器连接到电路中,并设置合适的时钟频率。
3. 将LED灯连接到电路中,用于显示计数结果。
4. 打开电源,观察LED灯的亮灭情况,并记录计数结果。
5. 可以尝试改变定时器的频率,观察LED灯的计数速度。
实验结果分析:通过实验观察和记录计数结果,可以得出计数器的工作原理和特点。
可以发现,当时钟信号输入时,计数器会根据触发器和逻辑门的控制逻辑实现数字计数功能。
实验结论:1. 数电计数器是一种能够实现数字计数功能的电子元件。
2. 计数器由触发器、逻辑门和时钟信号组成,触发器用于储存和传递信号,逻辑门用于控制和处理信号,时钟信号用于控制计数时间。
3. 数电计数器在实际应用中具有广泛的用途,如计时器、频率计等。
实验中可能遇到的问题和解决方法:1. 连接错误:检查电路连接,确保连接正确无误。
2. LED灯未亮起:检查电路连接,确保连接正确无误。
3. 计数不准确:检查时钟信号的频率,确保设置合适的计数速度。
实验改进思路:1. 尝试使用不同型号的触发器和逻辑门,比较它们的计数效果和特点。
2. 尝试使用其他电子元件,如译码器、多路选择器等,扩展计数器的功能和应用场景。
3. 尝试使用计数器的级联连接,实现更复杂的计数功能和应用。
8位共阳极数码管

8位共阳极数码管8位共阳极数码管是一种常见的电子元件,用于显示数字和一些字母。
它由8个发光二极管(LED)组成,每个LED代表一个数字或字母的一部分。
在这篇文章中,我们将详细介绍8位共阳极数码管的工作原理、使用方法和应用领域。
一、工作原理1.1 发光二极管发光二极管是一种半导体器件,它能够将电能转化为光能。
在发光二极管中,当电流通过PN结时,会产生电子和空穴的复合,释放出能量并发出光线。
1.2 共阳极与共阴极8位共阳极数码管有两种接线方式:共阳极和共阴极。
在共阳极连接方式下,所有LED的阳极都连接在一起,并且被称为“公共阳极”,而每个LED的阴极则分别连接到不同的引脚上。
当需要显示某个数字或字母时,只需要给对应位置的LED阴极施加负电压,并且给公共阳极施加正电压即可点亮该位置的LED。
1.3 数码管控制芯片为了方便控制8位共阳极数码管,通常会使用数码管控制芯片。
这种芯片能够将输入的数字或字母转化为相应的LED控制信号,并且通过引脚输出给数码管。
一些常见的数码管控制芯片有MAX7219和TM1638。
二、使用方法2.1 连接电路连接8位共阳极数码管需要注意极性,一般来说,红色线为公共阳极,黑色线为阴极。
在连接时应该先将公共阳极连接到正电源上,然后将每个LED的阴极分别连接到对应的引脚上。
2.2 控制信号控制8位共阳极数码管需要输入相应的数字或字母,并且通过数码管控制芯片转化为LED控制信号。
一些常见的控制信号包括:显示数字0-9和字母A-F、显示小数点等。
三、应用领域3.1 计时器和计数器8位共阳极数码管可以用于计时器和计数器中,用于显示时间、计数值等信息。
3.2 电子秤在电子秤中,8位共阳极数码管可以用于显示重量信息。
3.3 温度计在温度计中,8位共阳极数码管可以用于显示温度信息。
3.4 电子钟在电子钟中,8位共阳极数码管可以用于显示时间信息。
3.5 其他应用除了上述应用领域外,8位共阳极数码管还可以用于各种数字显示、计量、监控等场合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
日期:
系主任签名:
日期:
说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
8 个 LED 循环显示、计数器的设计
目录
一、设计任务 .......................................................................................................................................5 二、设计要求 .......................................................................................................................................5 三、设计原理 .......................................................................................................................................5 四、设计步骤 .......................................................................................................................................5
library ieee;
signal f:std_logic;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
begin p_reg:process(clk0)
---1 Hz 分频
entity fenpin is
variable cnt:integer range 1 to 50000;
ELSE F<=F+1;D<='0';
ELSE CLK1<='0';
END IF;END IF;end if;
END IF;END IF;
END PROCESS H1;
END PROCESS H2;
H2:PROCESS(D) 仿真波形图如下
y<='1';
variable cnt2:std_logic;
else
y<='0';end if;
end process p_div;
end if;
end;
在进程中,clk0 为原始频率 50mhz,进程 P_REG 为分频,进程 P_DIV 为整形,最后通过输出 Y 端
口,输出为 1000HZ;
仿真波形如图示
年月日
8 个 LED 循环显示、计数器的设计
长沙学院课程设计鉴定表
姓名
学号
专业 电气工程及其自动化 班级 2
设计题目
8 个 LED 循环显示、计数器的设计
指导教师意见:
指导教师
瞿曌
评定等级: 答辩小组意见:
教师签名:
日期:
评定等级: 教研室意见:
答辩小组长签名:
日期:
系(部)意见:
教研室主任签名:
8 个 LED 循环显示、计数器的设计
else
begin
cnt:=cnt+1; f<='0';
if f'event and f='1' then
end if; end if;
cnt2:=not cnt2;
end process p_reg;
if cnt2='1' then
p_div:process(f)
要求设置 3 个按钮,一个供“开始” 用,一个供“停止”用,一个供系统“复位”用;对 8 个 LED 循环显 示的延续时间进行调整;调整步长自定。系统提供 50MHZ 频率的时钟源。完成该系统的硬件和软件的设 计,并制作出实物装置,调试好后并能实际运用(指导教师提供制作所需的器件),最后就课程设计本身 提交一篇课程设计说明书。
port(clk0: in std_logic;
begin
y: inout std_logic);
if clk0'event and clk0='1' then
end fenpin;
if cnt=25000then
architecture one of fenpin is
cnt:=1; f<='1';
最后,分频是为了将 50mhz 的频率减小,即在 50mhz(clk)出现 n 个上升沿之前另一个 clk1 不翻转, 而在 n 个上升沿时翻转,在 2n 之前一直保持翻转后的状态,到 2n 时,计数器清零,同时再实现翻转,这 样就能做出任意较小的频率实现设计。
四、设计步骤
1)设计分频计数器
首先设计分频计数器,由于要有一个数码管置位工作扫描频率(1000HZ),还要有一个实现计数个 和 led 灯循环显示的频率,即分频要分出两个不同的频率,其中(扫描分频)程序如下:
第2天
设计方案论证
进
进一步讨论方案, 对设计方案进行必要的修
度
Байду номын сангаас
第3天
正,方案确定后开始进行 VHDL 语言程序设
安
计
排
第4天
设计 VHDL 语言程序
第 5~9 天
在实验装置上进行硬件测试,对 VHDL 语言 程序进行必要的修正,并进行演示
第 10 天
编写设计说明书
教研室 意见
系(部)主管 领导意见
年月日
一、设计任务
8 个 LED 循环显示、计数器的设计
设计一个 8 个 LED 循环显示,同时数码管也显示 LED 亮的次数。由于系统时钟为 50MHz,直接当 作时钟会由于计数速度太快而无法使发光二极管正常发光,因此首先需要对系统时钟进行分频,然后再以 分频后的时钟作为计数器的计数时钟。
二、设计要求
设 1、VHDL 语言程序设计; 计 2、波形仿真; 工 3、在实验装置上进行硬件测试,并进行演示; 作 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、 量 仿真分析、硬件测试、调试过程,参考文献、设计总结等。
起止日期(或时间量)
设计内容(或预期目标)
备注
第1天
课题介绍,答疑,收集材料
BEGIN
IF EN='1' AND ZT='0' THEN
IF D'EVENT AND D='1' THEN
if CLK'event and CLK='1'then
CL:=NOT CL;
IF F="11111111" THEN F<=DIN8;D<='1';
IF CL='1' THEN CLK1<='1';
其次,led 灯要实现循环显示,即第一个灯亮之后,在出现一个上升沿脉冲后,第二个灯亮,第一个 灯灭,来一个脉冲移动一个,并实现循环,为了实现循环,设计思路是讲来一次脉冲将最高位补到最低位, 次最高位变成最高位。级设计一个移位寄存器,准确的说是循环移位寄存器。
再者,由于数码管要求是动态显示,显然还要分出一个置位工作扫描频率,由于人的视觉暂留,频率 应该大于 24hz,为了数码管显示效果,我分出了 1000hz 的频率来扫描 8 位数码管的工作。
三、设计原理
首先,要设计一个 8 个 led 灯循环显示的计数器,重要的设计部分在于让 led 灯循环显示,同时在显 示的同时数码管的数加 1。即为要让 led 灯亮的同时,数码管上面的数字加 1。因此,需要在同一个脉冲 下完成计数器加 1,led 灯循环亮一位。
由于系统给定的时钟是 50Mhz,而我们可视的频率为 24hz 内,很显然数码管和 led 灯不能正常工作, 这就涉及到要将 50mhz 频率分频,将频率变小,使计数器和 led 灯能正常工作;
1)设计分频计数器 ......................................................................................................................5 2)设计数控分频 ..........................................................................................................................6 3)LED 灯循环设计 .....................................................................................................................7 4)数码管扫频 ..............................................................................................................................7 5)8 个数码管计数 .......................................................................................................................8 6)引脚分配 ................................................................................................................................10 五、设计流图 .....................................................................................................................................10 六、程序语言 .....................................................................................................................................10 七、设计思考与总结 .........................................................................................................................14 八、 参考文献...................................................................................................................................14