计数器及数码显示综合设计..

合集下载

[精品]两位数码管显示计时器

[精品]两位数码管显示计时器

一、题目用定时0的方式1实现数码管两位59S循环计时(计时器)二、思路方案本实验利用单片机的定时器/计数器定时和计数的原理,通过proteus 仿真软件来实现模拟实现。

模拟利用A T89C51单片机、LED数码管实现秒表的计时。

其中一个两位数码管用来显示数据,一位用来显示个位秒,另一位用来显示十位秒。

当计数超过范围时所有数码管全部清零重新计数。

三、实验设计原理图四、程序流程图五、程序代码如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar num,count,ge,shi;void delay(uint);void display(uchar,uchar);uchar SEG[]={0xc0,0xf9,0xa4,0xb0,0x99, //显示数码管0-9数字0x92,0x83,0xf8,0x80,0x98};void main(){TMOD=0x01; //设置定时器工作方式T0的工作方式为1TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872TL0=(65536-45872)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1; //启动定时器0while(1) //程序在这里不停的对数码管动态扫描同时等待中断发生{display(shi,ge);}}/*以下是设计中断服务程序的时间和显示*/void T0_time()interrupt 1{TH0=(65536-45872)/256; //重装初值TL0=(65536-45872)%256;if(++num= =20) //如果到了20次,说明1秒时间到{num=0; //然后把num清0重新再记20次if(++count==60) //这个数用来送数码管显示,到60后归0count=0;shi=count/10; //把一个2位数分离后分别送数码管显示,十位和个位ge=count%10;}}/*以下为延迟函数*/void delay(uint xms){uint i,j;for(i=xms;i>0;i--) //延迟时间为xms乘以50msfor(j=110;j>0;j--);}/*以下为显示数码管的子函数*/void display(uchar shi,uchar ge){P3=0xfe; //打开P3.0,及打开数码管1引脚P2=SEG[ge];delay(20);P3=0xfd; //打开P3.1,及打开数码管2引脚P2=SEG[shi];delay(20);}六实验过程遇到的问题总结1.由于重新接触单片机,软硬件较生疏,刚看题目没思路,只能网上查资料看,再理解,相当的费力。

multisim仿真教程计数器译码器数码管驱动显示电路

multisim仿真教程计数器译码器数码管驱动显示电路

将对话框中Node name改成与数码管相对应 的符号A。其他与逻辑分析仪的输入端的连 线都以此法行之,点击仿真开关或按F5键进 行仿真,计数器的输出和数码管的波形时序 关系则立即直观的被显示在“Logic Analyzer—XLA1”的面板窗口中。见图 12.7.2。
图12.7.3 Node对话框
由输出端QB和QD经逻辑组合电路接至计数器 (LOAD)端,构建计数进位阻塞电路。在设 计时可根据需要,由相应的输出端构建组合 逻辑电路,从而实现不同进制的计数器。
图12.7.1 计数器、译码器、数码管驱动显示电路
从虚ห้องสมุดไป่ตู้仪器中取逻辑分析仪XLA1,其上有1~F 共16个输入端,1~4端分别于计数器的四个数 据输出端QA~QD相连,第5~11端 分别与数码 管的七段A~G相连,第12端接CLK脉冲输入端。 用鼠标双击逻辑分析仪,将出现逻辑分析仪面 板窗口如图12.7.2所示。
图12.7.2 时钟脉冲、输入、输出波形时序关系图
改变逻辑分析仪Clock区(Clock/Div)的个 数,从“1”调到“32”。在图12.7.2的左侧 显示的号码为原理图的节点号码,其并不能表 示出计数器输出端和数码管的段位字母,显示 不用鼠标左键双击与逻辑分析仪“1”号输入端 连接的图线,出现如图12.7.3所示对话框。直 观,所以要对原理图进行编辑。

一个8421码十进制计数器(异步置数)及七段数码管显示系统

一个8421码十进制计数器(异步置数)及七段数码管显示系统

一个8421码十进制计数器(异步置数)及七段数码管显示系统一个8421码十进制计数器(异步置数)及七段数码管显示系统LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter10 ISPORT( clk: IN STD_LOGIC;load: IN STD_LOGIC;din: IN STD_LOGIC_VECTOR(3 DOWNTO 0);qout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c: OUT STD_LOGIC);END counter10;ARCHITECTURE art2 OF counter10 ISSIGNAL temp: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,load,din)BEGINIF(load='0') THENtemp<=din;ELSIF(clk'EVENT AND clk='1') THENIF(temp="1001") THENtemp<="0000";ELSEtemp<=temp+1;END IF;END IF;END PROCESS;qout<=temp;c<='1' WHEN temp="1001" ELSE'0';END art2;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY bcd ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );END bcd;ARCHITECTURE art1 OF bcd ISBEGINY<="1111110" WHEN A="0000" ELSE "0110000" WHEN A="0001" ELSE "1101101" WHEN A="0010" ELSE "1111001" WHEN A="0011" ELSE "0110011" WHEN A="0100" ELSE "1011011" WHEN A="0101" ELSE "0011111" WHEN A="0110" ELSE "1110000" WHEN A="0111" ELSE "1111111" WHEN A="1000" ELSE "1110011" WHEN A="1001" ELSE "0000000";END art1;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter10_bcd ISPORT(clkin,clrin: IN STD_LOGIC;yout: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);d: IN STD_LOGIC_VECTOR(3 DOWNTO 0));END counter10_bcd;ARCHITECTURE art3 OF counter10_bcd IS COMPONENT counter10PORT( clk: IN STD_LOGIC;load: IN STD_LOGIC;din: IN STD_LOGIC_VECTOR(3 DOWNTO 0);qout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c: OUT STD_LOGIC);END COMPONENT;COMPONENT bcdPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Y:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;SIGNAL q: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL c1: STD_LOGIC;BEGINu1:counter10 PORTMAP(clk=>clkin,load=>clrin,din=>d,qout=>q,c=>c1);u2:bcd PORT MAP(A=>q,Y=>yout);END art3;。

PLC课程设计:八 段 数 码 显 示

PLC课程设计:八 段 数 码 显 示
2、改进措施
四、工程预算
五、设计反思
六、参考文献
八段数码显示课程设计
一、八段数码显示课程设计
(一)可编程控的概述
可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用来在其内部存储和执行逻辑运算、顺序控制、定时、计数和算术运算等操作命令,并通过数字式和模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器及其有关外围设备,都按易于与工业系统联成一个整体、易于扩充其功能的原则设计。”
A
A段
3
Q0.2
B
B段
4
Q0.3
C
C段
5
Q0.4
D
D段
6
Q0.5
E
E段
7
Q0.6
F
F段
8
Q0.7
G
G段
(三)接线图
1、按图3.1进行实验台面板接线。
图3.2.2八段数码显示实验接线图
(四)程序(含梯形图、语句表)
1、绘出系统梯形图
参考程序见“天塔之光.MWP”。
2、语句表
(五)调试
1、故障分析
硬件调试:接通电源,检查可编程控制器是否可以正常工作,接头是否接触良好,然后把其与电脑的通信口连接。
(二)实现的功能
实现的功能是:任一组抢先按下按键后,八段码显示器能及时显示该组的编号并使蜂鸣器发出响声,同时锁住抢答器,使其它组按键无效,只有按下复位开关后方可再次进行抢答。图3.2.1为抢答器仿真图
图3.2.1
图2.1
(三)所选设备及功能
序号
名称
数量
功能
1
YSXK-PLC8型PLC高级电工综合实训考核装置

计数译码显示电路实验报告

计数译码显示电路实验报告

计数译码显示电路实验报告实验目的:掌握编码与解码的基本原理和技术。

设计与实现一个计数译码显示电路。

提高电子电路设计与实验能力。

实验原理:计数译码显示电路是利用数字集成电路实现的一种数字计数显示方法。

它通过计数器将输入的时钟信号转化为二进制数码输出,然后通过译码器将二进制数码转为七段数码管的控制信号,从而使得七段数码管实现相应的数字显示。

实验器材:1.CD4017计数器芯片2.CD4511译码器芯片3.七段共阳数码管4.电阻、电容、电源、开关等实验步骤:1. 将CD4017计数器芯片的1脚连接到电源Vcc,16脚连接到地GND。

2.连接计数器的时钟输入脚13和复位输入脚15到电路中适当位置,并设置相应的电源和开关。

3. 将译码器CD4511的Vcc脚和GND脚连接到电源和地,将A、B、C、D四个输入脚连接到计数器的Q0-Q3输出脚。

4.将译码器的a、b、c、d、e、f、g七个输出脚连接到七段数码管的a、b、c、d、e、f、g控制脚。

5. 连接七段数码管的共阳脚到电源Vcc。

实验结果:通过调整计数器CD4017的时钟频率、复位电平和输入信号,我们可以观察到七段数码管显示出不同的数字,从0到9循环显示。

实验分析:计数译码显示电路利用计数器进行计数和译码器进行解码,通过将二进制数码转换为七段数码管的控制信号,实现了数字的显示。

实验中需要注意选择适当的电阻、电容等元器件,以确保电路的稳定工作。

另外,对于七段数码管的显示,还可以通过连接额外的译码器和复用技术进行更复杂的显示设计。

实验总结:通过本实验,我们掌握了计数译码显示电路的基本原理与设计方法,提高了对数字集成电路的理解和应用能力。

实验结果令人满意,并加深了对数字电路的认识。

在今后的学习和实践中,我们将继续加强对电子电路设计与实验的掌握,提高自己的技术水平。

计数器的设计

计数器的设计

计数器的设计
计数器是一种电子数字电路,用于记录某个事件或进程的次数。

设计计数器的步骤如下:
1.确定计数器的位数:计数器的位数决定了它能够计数的最大值。

例如,一个
8位二进制计数器可以计数0到255之间的所有整数。

根据实际需求,选择适当的位数。

2.设计计数器的时钟输入电路:计数器的时钟输入决定了它何时进行计数。


常使用晶体振荡器或者其他时钟源来提供计数器的时钟信号。

3.选择计数器的计数模式:计数器可以分为同步计数器和异步计数器。

同步计
数器的各个位同时进行计数,而异步计数器的各个位独立进行计数。

根据具体需求选择合适的计数模式。

4.选择计数器的计数方式:计数器可以被设计为向上计数或向下计数。

向上计
数表示计数器的值递增,而向下计数表示计数器的值递减。

根据具体需求选择合适的计数方式。

5.设计计数器的清零电路:计数器需要在一些特定的时刻进行清零操作,以便
重新开始计数。

为此,需要设计清零电路,使计数器的值归零。

6.设计计数器的输出电路:计数器的输出电路将其计数器的值转换成数字形式
或者其他需要的形式,例如LED显示屏、七段数码管等。

7.选取适当的计数器芯片:根据具体需求选择合适的计数器芯片,例如74LS161、
74LS163等,这些芯片可以快速地实现基于上述设计步骤的计数器电路。

需要注意的是,在设计计数器时,应当根据实际情况进行仿真测试,确保其正常工作并满足设计要求。

二位计数显示课程设计

二位计数显示课程设计

二位计数显示课程设计一、课程目标知识目标:1. 理解二进制计数的基本原理,掌握二位二进制数的组成和表示方法。

2. 学会二位计数显示的电子电路构成,理解LED数码管的工作原理。

3. 掌握二位计数显示的编程方法,能够运用所学知识设计和实现简单的计数器功能。

技能目标:1. 能够运用所学知识,动手搭建并测试简单的二位计数显示电路。

2. 培养学生逻辑思维和问题解决能力,通过编程实现对二位计数显示的控制。

3. 提高学生的团队协作和沟通能力,通过小组合作完成项目任务。

情感态度价值观目标:1. 培养学生对电子信息技术领域的兴趣,激发学生的创新意识和探索精神。

2. 培养学生严谨、认真的学习态度,养成科学、规范的操作习惯。

3. 引导学生关注科技发展,认识到计数显示技术在实际应用中的重要性,培养学生的社会责任感。

本课程针对中学生设计,充分考虑学生的认知水平和动手能力。

课程性质为实践性较强的信息技术课程,旨在通过理论与实践相结合的教学方式,让学生在实际操作中掌握二位计数显示的相关知识。

课程目标具体、可衡量,以便教师对学生的学习成果进行有效评估,并根据实际情况调整教学策略。

二、教学内容1. 二进制计数原理:讲解二进制的基本概念,计数原则及其与十进制的转换方法。

- 教材章节:第二章《数字逻辑基础》2. 二位计数显示电路:介绍LED数码管的构造、工作原理及驱动方式。

- 教材章节:第三章《数字电路及其应用》3. 二位计数显示编程:学习使用Arduino或Micro:bit等编程平台,编写控制二位计数显示的程序。

- 教材章节:第四章《简易数字电路设计与编程》4. 实践操作:分组进行二位计数显示电路搭建和编程,实现0-99的循环计数功能。

- 教材章节:第五章《数字电路实践》5. 知识拓展:探讨二位计数显示在现实生活中的应用实例,如电子时钟、计数器等。

教学内容安排和进度:第一课时:二进制计数原理及其与十进制的转换方法。

第二课时:LED数码管的构造、工作原理及驱动方式。

实验五 计数、译码和显示综合实验

实验五   计数、译码和显示综合实验
(2)在实验台上找到芯片74LS161,接通电源UCC=+5V和地线。将EP、ET、D0~D3. LD’和RD’分别接到电平开关上,以便输入高低电平。将CLK接到脉动开关上,Q0~Q3 和C接到发光二极管上,然后按以下测试步骤分别加入各种输入信号,观察发光二极管 的变化情况,并将结果填入自制的功能表中。
四、实验仪器与器材
1.仪器:数字实验台、三用表
2.器材:74LS20(二-4输入与非门)、74LS04(反相器)、7447译码驱动器2 片和七段数码管2片等。
五、实验原理
1. 4位同步二进制加法计数器74LS161的逻辑功能的验证。
74LS161的逻辑电路图见教材P282图6.3.13, 引脚图和逻辑符号如下图(a)、(b)所示。
•保持功能测试:RD’=1.LD’=1,EP=0、ET=1或EP=1.ET=0 然后加时钟或不加时钟,以及 改变D0~D3的输入数据,看其输出变化情况,并将结果填入自制的功能表中。
•计数功能测试:RD’=1.LD’=1.EP=1.ET=1,并加入时钟信号,即用手CLK脉动开关,看 其输出变化情况,并将结果填入自制的功能表中。
161(1)
DCBA
QB QCAr’
S1 S0
1
1 CP
图5-3-13 “12翻1”小时计数、译码和显示电路
3、用与非门和74LS161设计一个60进制计数器。
要求写出60进制计数器地详细设计过程,逻辑图在60进制计数器的基础上加进译码显示电 路,并通过实验验证。
三、实验报告要求
1、根据各题的题意,列出相应功能表或真值表,对于功能验证的部分要写出测试条件和 测试步骤;对于设计部分,要写出详细地设计过程。
2、将各测试结果填入自画的表格中。 3、写出实验总结,主要是电路调试及故障排除方面的经验和教训。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:计数器及数码显示综合设计作者所在系部:电子工程系作者所在专业:自动化专业作者所在班级:B11222作者姓名:指导教师姓名:崔瑞雪完成时间:内容摘要在quatrusII 中利用VHDL语言编写数码管显示程序,然后进行功能仿真,然后进行锁定引脚,然后硬件进行下载,调试。

关键词: VHDL,数码管显示,quatrusII,时序仿真图。

目录内容摘要 (I)目录................................................................................................................................................................... I I 课程设计任务书. (III)一、实验目的 (1)二、硬件要求 (1)三、方案论证 (1)四、模块说明 (2)1.计数器(counter60) (2)2.计数器(counter16) (3)3.计数器(counter12) (4)4.计数器(counter10) (5)6.译码器(deled) (7)7.分频器(div) (8)8.顶层文件 (9)五、图7计数显示的整体连接图 (11)六、实验步骤 (11)七、实验结果 (12)八、总结 (12)九、参考文献 (12)课程设计任务书一、实验目的1.熟悉QUARATEⅡ工具软件2.熟悉VHDL语言设计3.学习EDA课程的综合设计4.学习计数器的VHDL语言设计5.了解器件编程和下载及硬件接口连接.二、硬件要求1.主芯片EPF10K10LC84-4。

2.7个八段扫描共阴极数码显示管。

3.三个按键开关(使能端,清零端,可逆端)。

三、方案论证本次设计中将任务分成几个部来完成分别是:分频部分、十进制计数器、十二进制计数器、十六进制可逆计数器、六十进制计数器、译码部分、时间扫描模块和顶层文件。

分频部分:在这个部分里,接受20mhz的频率,然后分出1hz的计数频率和100hz 的扫描频率。

十进制计数器、十二进制计数器、六十进制计数器:在这个部分中要实现带使能输入、同步清0的增1十进制、十二进制、六十进制的计数器计数功能。

使能端en 高电平有效计数器开始计数,高电平停止计数,清零端CLR高电平清零低电平正常计数。

十六进制可逆计数器:在这个部分中要实现带使能输入、同步清0的增1十六进制的可逆计数器计数功能。

计数部分分为计数的个位和十位,使能端en高电平有效计数器开始计数,低电平停止计数,清零端rst高电平清零低电平计数,可逆计数器的控制端plus_sub低电平实现加法计数器的功能,高电平实现减法计数器的功能。

分时扫描及译码部分:在这个部分需设计一个共阴7段数码管控制接口,在时钟信号的控制下,分时选择数码管显示相应计数器的计数脉冲,使7位数码管动态刷新显示4个计数器的计数结果,并将送来的计数器的计算值转换为相应的段码在数码管上显示计数脉冲的个数。

顶层文件:在这一部分确定上述几个部分中相应输入输出端口的连接关系。

四、模块说明计数器及数码显示的设计共化分为3个模块:计数器,扫描电路(seltime),译码电路(deled)。

下面具体分析各个模块的原理、内容和功能。

1.计数器(counter60)能够实现60进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count60er.vhd)为底层文本,图1为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter60 isport(en,clr,clk:in std_logic;ql,qh:buffer std_logic_vector(3 downto 0));end counter60;architecture behave of counter60 isbeginprocess(en,clr,clk)beginif(en='1')thenif(clk'event and clk='1')thenif(clr='1')thenql<=(others=>'0');qh<=(others=>'0');elsif(ql=9)thenif(qh=5)thenqh<="0000";ql<="0000";elseqh<=qh+1;ql<="0000";end if;elseql<=ql+1;end if;end if;end if;end process;end behave;图1. 六十进制秒计数器的仿真波形2.计数器(counter16)能够实现16进制可逆循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count16er.vhd)为底层文本,图2为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter16 isport(en,clr,clk:in std_logic;plus_sub:in std_logic;ql,qh:buffer std_logic_vector(3 downto 0));end counter16;architecture behave of counter16 isbeginprocess(en,clr,clk,plus_sub)beginif(en='1')thenif(clk'event and clk='1')thenif(clr='1')thenql<=(others=>'0');qh<=(others=>'0');elsif(plus_sub='1')thenif(qh=1 and ql=5)thenql<="0000";qh<="0000";elsif(ql=9)thenqh<="0001";ql<="0000";elseql<=ql+1;end if;elsif(plus_sub='0')thenif(qh=0 and ql=0)thenql<="0101";qh<="0001";elsif(ql=0)thenql<="1001";qh<="0000";elseql<=ql-1;end if;end if;end if;end if;end process;endbehave;图2. 十六进制分计数器的仿真波形3.计数器(counter12)能够实现12进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count12er.vhd)为底层文本,图3为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter12 isport(en,clr,clk:in std_logic;ql,qh:buffer std_logic_vector(3 downto 0));end counter12;architecture behave of counter12 isbeginprocess(en,clr,clk)beginif(en='1')thenif(clk'event and clk='1')thenif(clr='1')thenqh<=(others=>'0');elsif(qh=1 and ql=1)thenql<="0000";qh<="0000";elsif(ql=9)thenqh<="0001";ql<="0000";elseql<=ql+1;end if;end if;end if;end process;end behave;图3. 十二进制分计数器的仿真波形4.计数器(counter10)能够实现10进制循环计数,带有清零端clr ,受时钟上升沿信号控制,其文本语言(文件名:count10er.vhd)为底层文本,图4为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter10 isport(en,clr,clk:in std_logic;q:buffer std_logic_vector(3 downto 0));end counter10;architecture behave of counter10 isbeginprocess(clr,clk,en)beginif(en='1') thenif(clk'event and clk='1')thenif(clr='1')thenelsif(q=9)thenq<="0000";elseq<=q+1;end if;end if;end if;end process;end behave;图4. 十进制分计数器的仿真波形5.扫面器(seltime)此模块能够实现分别对前边的数值进行扫描,有清零段,复位段,以及上升沿有效,其文本语言(文件名:seltime.vhd)为底层文本,图5为计数器的仿真波形图。

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity seltime isport(clk1,ret:in std_logic;q10,q12l,q12h,q16l,q16h,q60l,q60h:in std_logic_vector(3 downto 0);q:out std_logic_vector(3 downto 0);sel:out std_logic_vector( 2 downto 0));end seltime;architecture behave of seltime issignal count:std_logic_vector(2 downto 0);beginsel<=count;process(clk1,ret)beginif(ret='1')thencount<="001";elsif(clk1'event and clk1='1')thenif(count=7)thencount<="001";elsecount<=count+1;end if;end if;case count iswhen"001"=>q<=q16h;when"010"=>q<=q16l;when"011"=>q<=q60h;when"100"=>q<=q60l;when"101"=>q<=q12h;when"110"=>q<=q12l;when"111"=>q<=q10;when others=>null;end case;end process;end behave;图5. 扫描器的仿真波形6.译码器(deled)此模块能够实现分别对前边的数值进行扫描,有清零段,复位段,以及上升沿有效,其文本语言(文件名:deled.vhd)为底层文本,图6为计数器的仿真波形图。

相关文档
最新文档