电子设计-两位自动计数器
- 格式:doc
- 大小:1.28 MB
- 文档页数:8
数字电路课程设计题目选编1、基于DC4011水箱水位自动控制器的设计与实现简介及要求:水箱水位自动控制器,电路采用CD4011四与非门作为处理芯片。
要求能够实现如下功能:水箱中的水位低于预定的水位时,自动启动水泵抽水;而当水箱中的水位达到预定的高水位时,使水泵停止抽水,始终保持水箱中有一定的水,既不会干,也不会溢,非常的实用而且方便。
2、基于CD4011声控、光控延时开关的设计与实现简介及要求:要求电路以CD4011作为中心元件,结合外围电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态,当有人经过该开关附近时,脚步声、说话声、拍手声等都能开启节电开关。
灯亮后经过40秒左右的延时节电开关自动关闭,灯灭。
3、基于CD4011红外感应开关的设计与实现在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。
要求用CD4011设计有此功能的红外线感应开关。
4、基于CD4011红外线对射报警器的设计与实现设计一款利用红外线进行布防的防盗报警系统,利用多谐振荡器作为红外线发射器的驱动电路,驱动红外发射管,向布防区内发射红外线,接收端利用专用的红外线接收器件对发射的红外线信号进行接收,经放大电路进行信号放大及整形,以CD4011作为逻辑处理器,控制报警电路及复位电路,电路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。
5、基于CD4069无线音乐门铃的设计与实现音乐门铃已为人们所熟知,在一些住宅楼中都装有音乐门铃,当有客人来访时,只要按下门铃按钮,就会发出“叮咚”的声音或是播放一首乐曲,然而在一些已装修好的室内,若是装上有线门铃,由于必须布线,从而破坏装修,让人感到非常麻烦。
采用CD4069设计一款无线音乐门铃,发射按键与接收机间采用了无线方式传输信息。
电子计数器工作原理
电子计数器是一种用数字电路来实现计数功能的设备。
它通过接收外部触发信号或者内部时钟信号来进行计数操作,并将计数结果以数字形式显示出来。
电子计数器的工作原理基于二进制计数的原理,即使用二进制来表示计数值。
它由一个或多个触发器构成,每个触发器可以存储一个二进制位。
当接收到一个触发信号或者时钟信号时,触发器会根据输入信号的值进行状态变化。
在一个四位二进制计数器中,每个触发器可以存储0或者1两种状态。
初始状态下,计数器的值为0000。
当接收到一个触
发信号时,计数器会按照固定的逻辑规则进行计数操作。
例如,递增计数器会将当前值加1,而递减计数器会将当前值减1。
计数器通过输出线将计数结果传递给显示装置,以便对计数结果进行显示。
电子计数器的工作原理还包括基于时钟信号的计数操作。
时钟信号可以是外部提供的,也可以是计数器内部产生的。
当时钟信号的频率较高时,计数器可以以较快的速度进行计数。
通过控制时钟信号的频率和触发信号的接收条件,可以实现不同的计数方式,例如递增计数、递减计数、循环计数等。
总结来说,电子计数器通过触发信号或者时钟信号的输入,利用内部的触发器来进行计数操作,并将计数结果以数字形式显示出来。
它可以用于各种场合,例如计时器、频率计等。
课程设计任务书学生姓名杜佳专业班级计算机zy1202班指导教师袁晓玲学院名称计算机科学与技术学院一、题目:二位二进制计数器。
外部输入X=1时,计数器加1计数,外部输入X=0时,计数器保持不变。
原始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS32 )、非门( 74 LS 04 ),设计二位二进制计数器。
二、要求完成设计的主要任务如下:1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。
2.使用同步时序逻辑电路的设计方法,设计二位二进制计数器。
写出设计中的三个过程。
画出课程设计图。
3.根据74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路引脚号,在设计好的二位二进制计数器电路图中标上引脚号。
4.在试验设备上,使用74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路连接、调试和测试二位二进制计数器电路。
5.设计报告书包括:设计内容与设计要求、设计原理和过程、调试分析、心得体会、参考文献。
三、课程设计进度安排指导教师签名:年月日系主任(责任教师)签名:年月日一、实验目的:1、深入了解和掌握同步时序逻辑电路的设计过程;2、了解74LS74、74LS08、74LS32、74LS86及74LS04芯片的功能;3、能够根据电路图连接好实物图,并实现其功能。
学会设计过程中的检验与完善。
二、题目理解和功能描述:用数字逻辑实验板和若干集成芯片实现如下功能:利用逻辑电平区域中八盏灯的任三盏作为实验的输入和输出,其中以1盏灯(如K1)作为输入x,用以改变输入的0、1特性,对应两位二进制数的四个状态,二位二进制计数器逻辑结构如图一所示。
计数器输出y 2 y 1输入x时钟输入图1 两位二进制数逻辑结构当输入x 为1时对应的输出序列:此时实验板上输出灯的亮暗变化如下:题目:二位二进制计数器。
一、题目用定时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.由于重新接触单片机,软硬件较生疏,刚看题目没思路,只能网上查资料看,再理解,相当的费力。
//设计一个2位10进制计数器,每秒加1,在LED上显示#include "reg51.h"#define THCO 0xee#define TLCO 0x0#define THC1 0xee#define TLC1 0x0unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_Buffer[2]={0,0};unsigned int count=0;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;TH1=THC1;TL1=TLC1;TR1=1;ET1=1;EA=1;while(1);}void timer1() interrupt 3{static unsigned char Bit1;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1 = 0;Data_Buffer[0]=Bit1/10;Data_Buffer[1]=Bit1%10; }}void timer0() interrupt 1{static unsigned char Bit=0;TH0=THCO;TL0=TLCO;Bit++;if(Bit>=2)Bit=0;P1|=0x0f;P0=Duan[Data_Buffer[Bit]]; switch(Bit){case 0: P10=0;break;case 1: P11=0;break;}}实验5思考题#include "reg51.h"#define THCO 0xee#define TLCO 0x00#define THC1 0xee#define TLC1 0x00unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_number[4]={1,2,3,4};unsigned char Data_time[2]={0,0};sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit key=P3^2;int mode=0,Bit1=0,Bit=0;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;EX0=1;IT0=1;TH1=THC1;TL1=TLC1;TR1=0;ET1=1;EA=1;while(1);}void tans_mode() interrupt 0 {int t;if(key==0){for(t=0;t<1000;t++);if(key==0){while(!key);mode++;if(mode==3)mode=0;Bit=0;if(mode==2){TR1=1;Bit1=0;}else{TR1=0;}}}}void timer1() interrupt 3{static unsigned int count=0;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1=0;Data_time[0]=Bit1/10;Data_time[1]=Bit1%10; }}void timer0() interrupt 1{TH0=THCO;TL0=TLCO;P1=0x0f;if(mode==0){P0=Duan[0];}if(mode==1){Bit++;if(Bit>=4)Bit=0;P0=Duan[Data_number[Bit]]; }if(mode==2){Bit++;if(Bit>=2)Bit=0;P0=Duan[Data_time[Bit]];}switch(Bit){case 0: P10=0;break; case 1: P11=0;break; case 2: P12=0;break; case 3: P13=0;break; }}。
基于数字电路两位计数器的设计与实现的实验原理(一)基于数字电路两位计数器的设计与实现的实验1. 引言计数器是数字电路中常见的组件,用于记录和显示特定计数方式的信息。
本实验旨在通过设计和实现一个基于数字电路的两位计数器,来加深对数字电路原理的理解和应用能力。
2. 数字电路基础知识回顾在进行计数器设计之前,我们首先回顾一些数字电路的基础知识。
数字电路由逻辑门组成,其中最常见的逻辑门有与门、或门和非门。
通过逻辑门的组合,可以实现各种不同的逻辑功能,比如与门用于实现逻辑与运算,或门用于实现逻辑或运算。
3. 两位计数器的设计原理两位计数器是一种能够计数到99的计数器。
它由两个单独的一位计数器组成,每个一位计数器都能够计数到9。
当一个一位计数器计满9时,它的进位信号会触发下一个一位计数器,使其自动加1。
4. 实验设计与实现步骤下面是基于数字电路的两位计数器的设计与实现步骤:4.1 设计逻辑电路图首先,根据两位计数器的设计原理,我们可以画出相应的逻辑电路图。
逻辑电路图应包含两个一位计数器,以及进位触发器。
4.2 确定引脚连接方式在设计逻辑电路图时,还需要确定各个元件的引脚连接方式。
这些连接方式可能影响计数器的计数方式和功能。
4.3 确定输入和输出在设计计数器时,还需要确定输入和输出的信号。
输入信号通常包括时钟信号和复位信号,而输出信号则是计数器的计数结果。
4.4 制作原型电路板根据逻辑电路图和引脚连接方式,我们可以制作原型电路板。
原型电路板用于测试计数器的功能和性能。
4.5 进行实验验证使用原型电路板进行实验验证,观察计数器的计数过程和结果,确保计数器按照设计预期工作。
5. 实验结果与分析在完成实验验证后,我们可以对实验结果进行分析。
比如,观察计数器的计数方式、计数速度和计数范围等指标,以评估计数器的性能。
6. 结论与展望本实验通过设计和实现基于数字电路的两位计数器,加深了对数字电路原理的理解和应用能力。
通过对实验结果的分析,我们可以得出结论并展望未来可能的改进方向。
什么是计数器如何设计一个二进制计数器计数器是一种电子设备,用于记录和显示特定事件或数据的次数。
它可以根据输入信号的变化来实现计数,常见的应用包括时钟、定时器、频率计等。
二进制计数器是一种特殊类型的计数器,它的计数方式采用二进制编码。
每当触发信号发生变化时,计数器的值会根据预设的计数规则进行自动递增或递减。
二进制计数器常用于电子数字电路中,以表示和控制各种复杂的数字逻辑。
设计一个二进制计数器需要考虑以下几个方面:1. 计数位数:确定计数器的位数决定了其能够表示的最大数字范围。
一般而言,n位二进制计数器可以表示0到2^n-1之间的数字。
2. 计数方向:确定计数器递增或递减的方向。
递增计数器按照二进制编码规则,顺序增加;递减计数器则按照相反的顺序递减。
3. 触发条件:确定计数器何时开始计数。
可以根据时钟信号、外部触发信号和逻辑运算等条件来触发计数器的计数。
4. 计数模式:确定计数器的工作模式,包括连续计数和循环计数。
连续计数模式下,计数器会一直递增或递减,直到达到最大或最小值;循环计数模式下,计数器会在达到最大或最小值后返回到初始值重新计数。
5. 输出接口:设计计数器的输出接口,以便将计数器的结果用于其他逻辑电路。
常见的接口形式包括二进制数码、BCD码、七段显示等。
根据上述要求,设计一个简单的4位二进制递增计数器,以实现从0到15的计数:首先,确定计数器的位数为4位,即可以表示0到15的数字。
其次,计数方向设置为递增模式,按照二进制编码规则从0000到1111。
然后,通过时钟信号触发计数器的计数。
可以将时钟信号作为计数器的输入,每当时钟信号发生一个上升沿或下降沿,计数器的值就会加1或减1。
最后,将计数器的结果输出到一个四位二进制数码管,以显示当前计数器的值。
通过以上设计,一个简单的4位二进制递增计数器便实现了。
它可以用于时钟、定时器、频率计等各种应用场景,并且可以根据需要进行扩展和优化,以满足更为复杂的计数需求。
两位数码管显示设计摘要:本设计旨在设计一套能够在两位数码管上显示不同数字的电路。
通过使用逻辑门、计数器和驱动器等组合电路,以及基本的数字逻辑知识,通过编写Verilog代码实现数字的显示和计数。
关键词:两位数码管、逻辑门、计数器、驱动器、Verilog代码一、引言数码管(Digital Display)是一种用于显示数字和字母的设备,它将输入的信号转换为相应的数字或字符,并在屏幕上显示出来。
本设计中,我们使用两位数码管,通过设计适当的电路和使用相应的逻辑门、计数器和驱动器等组合电路,以及编写Verilog代码,实现数字的显示和计数。
二、设计思路1.利用计数器设计模块来实现数字的计数功能。
通过适当的控制信号,将从0计数到9,并在10时重新计数。
计数器的输出作为数码管的输入。
2.设计一个驱动器模块,将计数器模块的输出转换为适合于数码管显示的控制信号。
通过逻辑门的组合,将每个数码管的数码按照不同的段(段是数码管上的一个小灯,用于显示数字的每个部分)进行控制。
3. 编写Verilog代码,将计数器模块和驱动器模块进行组合。
通过适当的端口和输入/输出信号,将两个模块连接在一起,实现数字的显示和计数。
三、设计实现1.计数器模块设计module counterinput clk, // 时钟信号output reg[3:0] count // 计数器的输出beginif (count == 4'b1001) // 9时重新计数count <= 4'b0000;elsecount <= count + 1; // 计数器自增endendmodule2.驱动器模块设计module decoderinput reg[3:0] count, // 指示要显示的数字output reg a, b, c, d, e, f, g // 段待显示数字begincase(count)4'b0000 : begin a = 1; b = 1; c = 1; d = 1; e = 1; f = 1; g = 0; end // 数字04'b0001 : begin a = 0; b = 1; c = 1; d = 0; e = 0; f = 0; g = 0; end // 数字14'b0010 : begin a = 1; b = 1; c = 0; d = 1; e = 1; f = 0; g = 1; end // 数字24'b0011 : begin a = 1; b = 1; c = 1; d = 1; e = 0; f = 0; g = 1; end // 数字34'b0100 : begin a = 0; b = 1; c = 1; d = 0; e = 0; f = 1; g = 1; end // 数字44'b0101 : begin a = 1; b = 0; c = 1; d = 1; e = 0; f = 1; g = 1; end // 数字54'b0110 : begin a = 1; b = 0; c = 1; d = 1; e = 1; f = 1; g = 1; end // 数字64'b0111 : begin a = 1; b = 1; c = 1; d = 0; e = 0; f = 0; g = 0; end // 数字74'b1000 : begin a = 1; b = 1; c = 1; d = 1; e = 1; f = 1; g = 1; end // 数字84'b1001 : begin a = 1; b = 1; c = 1; d = 1; e = 0; f = 1; g = 1; end // 数字9default : begin a = 0; b = 0; c = 0; d = 0; e = 0; f = 0; g = 0; end // 默认显示为空白endcaseendendmodule3.组合计数器和驱动器模块module displayinput clk, // 时钟信号output reg[3:0] count, // 计数器模块的输出output reg a, b, c, d, e, f, g // 驱动器模块的输出counter counter_inst(.clk(clk), .count(count)); // 实例化计数器模块decoderdecoder_inst(.count(count), .a(a), .b(b), .c(c), .d(d), .e(e), . f(f), .g(g)); // 实例化驱动器模块endmodule四、实验结果与分析通过连接计数器和驱动器模块,使用相同的时钟信号,即可实现数字计数和显示的功能。
//设计一个2位10进制计数器,每秒加1,在LED上显示#include "reg51.h"#define THCO 0xee#define TLCO 0x0#define THC1 0xee#define TLC1 0x0unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_Buffer[2]={0,0};unsigned int count=0;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;TH1=THC1;TL1=TLC1;TR1=1;ET1=1;EA=1;while(1);}void timer1() interrupt 3{static unsigned char Bit1;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1 = 0;Data_Buffer[0]=Bit1/10;Data_Buffer[1]=Bit1%10; }}void timer0() interrupt 1{static unsigned char Bit=0;TH0=THCO;TL0=TLCO;Bit++;if(Bit>=2)Bit=0;P1|=0x0f;P0=Duan[Data_Buffer[Bit]]; switch(Bit){case 0: P10=0;break;case 1: P11=0;break;}}实验5思考题#include "reg51.h"#define THCO 0xee#define TLCO 0x00#define THC1 0xee#define TLC1 0x00unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_number[4]={1,2,3,4};unsigned char Data_time[2]={0,0};sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit key=P3^2;int mode=0,Bit1=0,Bit=0;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;EX0=1;IT0=1;TH1=THC1;TL1=TLC1;TR1=0;ET1=1;EA=1;while(1);}void tans_mode() interrupt 0{int t;if(key==0){for(t=0;t<1000;t++);if(key==0){while(!key);mode++;if(mode==3)mode=0;Bit=0;if(mode==2){TR1=1;Bit1=0;}else{TR1=0;}}}}void timer1() interrupt 3{static unsigned int count=0;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1=0;Data_time[0]=Bit1/10;Data_time[1]=Bit1%10; }}void timer0() interrupt 1{TH0=THCO;TL0=TLCO;P1=0x0f;if(mode==0){P0=Duan[0];}if(mode==1){Bit++;if(Bit>=4)Bit=0;P0=Duan[Data_number[Bit]]; }if(mode==2){Bit++;if(Bit>=2)Bit=0;P0=Duan[Data_time[Bit]];}switch(Bit){case 0: P10=0;break; case 1: P11=0;break; case 2: P12=0;break; case 3: P13=0;break; }}。
东北大学秦皇岛分校计算机与通信工程学院电子线路课程设计压力测量数显电路专业名称班级学号学生姓名指导教师设计时间课程设计任务书专业学号学生姓名(签名):设计题目:压力测量数显电路一、设计实验条件Multisim实验室二、设计任务及要求1.熟悉译码器、555定时器、计数器和七位数码管的功能,并熟练应用;2.掌握555定时器产生脉冲的原理和方法;3.选择合适的器件来构成脉冲信号发生器;4.学会利用计数器构成不同进制的计数器;5.设计压力测量数显电路。
三、设计报告的内容1.设计题目与设计任务(设计任务书)2.前言(绪论)(设计的目的、意义等)3.设计主体(各部分设计内容、分析、结论等)4.结束语(设计的收获、体会等)5.参考资料四、设计时间与安排1、设计时间:2周2、设计时间安排:熟悉实验设备、收集资料:2 天设计图纸、实验、计算、程序编写调试: 5天编写课程设计报告:2 天答辩:1 天1、绪论随着计算机科学与技术迅猛地发展,用数字电路进行信号处理的优势也更加的突出。
数字电路具有精度高、稳定性好、抗干扰能力强、程序软件控制等一系列优点。
为了充分发挥数字电路在信号处理上的强大功能,我们可以先将拟信号按比例转换成数字信号,然后送到数字电路进行处理,最后将处理结果根据需要转换成相应的模拟信号输出。
自20世纪七十年代开始,这种用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎左右的领域。
现在,学校给我提供了这次机会,我将利用所学的数电知识,仿真一个压力测试数电电路,以求更好掌握数电知识。
此次课程设计的目的是学会利用555定时器产生脉冲信号,熟练应用计数器、译码器和数码器构成压力测试数显电路。
通过此次的课程设计掌握数字信号的基本元件和知识,以实践的方式加深知识的掌握程度,扩展我们的思维。
2、系统设计(一)设计结构1、由555脉冲信号发生器产生脉冲信号;2、100进制计数器有两个74LS160计数器串联构成;3、显示器是由两个译码器和两个数码管构成。
二位bcd码计数器电路工作原理二位BCD码计数器电路工作原理引言:二进制编码十进制(Binary-Coded Decimal,简称BCD)是一种常用的数据表示方法,将十进制数的每一位都用4位二进制数表示,称为BCD 码。
BCD码计数器电路是一种常见的计数器电路,用于计数和显示十进制数字。
本文将详细介绍二位BCD码计数器电路的工作原理,并逐步回答有关该主题的问题。
第一步:什么是BCD码?BCD码是一种使用4位二进制数表示一个十进制数的编码方式。
在BCD 码中,每一位二进制数的取值范围为0000到1001,分别对应十进制的0到9。
由于使用了4位二进制数,BCD码的每一位可以使用一位数码管进行显示。
第二步:二位BCD码计数器电路的结构二位BCD码计数器电路包含两个独立的计数器模块,每个模块负责计数和显示一个十进制位数。
两个计数器模块之间通过电路连接,共享一个时钟信号。
第三步:每个计数器模块的结构和工作原理每个计数器模块通常由三个主要组件构成:计数器、锁存器和数码管显示。
- 计数器:计数器用于存储当前的BCD码值,并根据时钟信号的输入进行计数。
计数器模块中的每个计数器可以存储4位BCD码值,所以可以表示0到9的十进制数。
- 锁存器:锁存器用于在计数完成时保存最后一个计数器的值,以便在下一个计数周期开始时将其作为时钟信号的输入传递给下一个计数器。
- 数码管显示:每个计数器模块都包含一个数码管用于显示当前计数器的值。
数码管显示可以通过将BCD码转换为对应的数码管段亮灭来实现。
第四步:工作原理1. 初始化:当启动计数器电路时,需要将计数器模块中的计数器值初始化为0。
2. 计数:计数器模块根据时钟信号的输入进行计数。
一般情况下,计数器通过下降沿触发进行计数。
每个计数器从0开始计数,当计数器的值达到9时,它会自动归零并将进位信号传递给下一个计数器。
3. 锁存:当一个计数周期结束时,锁存器会将最后一个计数器的值保存下来,并在下一个计数周期的开始时将其作为时钟信号的输入传递给下一个计数器。
基于数字电路两位计数器的设计与实现的实验原理
基于数字电路的两位计数器的设计与实现实验原理是利用数字电路中的触发器、门电路和计数器等组件,通过逻辑设计和电路布线的方式,实现对二进制数的计数功能。
实验原理包括以下几个主要步骤:
1. 设计计数器逻辑:根据需要设计一个二进制的两位计数器。
计数器的设计需要确定计数的范围和计数方式,如可以选择一个周期为4(二进制00、01、10、11)的自然计数器或者倒计数器。
2. 选择触发器类型:根据计数器的设计要求,选择合适的触发器类型。
常见的触发器有D触发器、JK触发器和T触发器等。
根据具体要求,可以选择不同类型的触发器来实现计数器的功能。
3. 连接触发器和门电路:根据计数器逻辑设计和触发器类型,连接相应的触发器和门电路。
例如,D触发器可以通过外部引脚连接一个与门电路来实现计数器的逻辑。
4. 连接时钟信号:为计数器提供一个稳定的时钟信号,使得计数器能够按照指定的频率进行计数。
时钟信号可以通过一个独立的时钟源或者其他数字电路模块提供。
5. 进行电路布线:根据计数器的逻辑设计和连接方式,进行电路布线。
布线过程要保证连接准确,电路的信号传输可靠。
6. 进行实验验证:完成电路的布线后,将电路接通电源,观察计数器输出是否符合预期。
通过改变时钟信号的频率或者其他输入条件,验证计数器的功能和性能。
通过以上实验原理,可以实现对二进制数的计数功能,可以用于电子计算机的时序控制、频率分频器等应用中。
eda课程设计 计数器一、课程目标知识目标:1. 理解计数器的基本概念,掌握其工作原理;2. 学会运用EDA工具进行计数器的设计与仿真;3. 掌握计数器的应用场景,了解其在数字系统中的作用。
技能目标:1. 能够运用所学知识,设计简单的计数器电路;2. 熟练使用EDA工具进行电路的绘制、仿真和调试;3. 培养动手实践能力和团队协作能力,提高问题解决能力。
情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发学习热情;2. 培养学生的创新意识和探究精神,鼓励尝试和改进;3. 增强学生的责任感,认识到计数器在现代社会生活中的重要性。
课程性质:本课程为电子设计自动化(EDA)课程的实践环节,旨在让学生通过动手实践,掌握计数器的设计与应用。
学生特点:学生具备一定的电子基础知识,对EDA工具有一定的了解,具有较强的学习能力和动手能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生的实际操作能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其电子设计能力。
教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
二、教学内容1. 计数器原理讲解:- 理解异步计数器与同步计数器的工作原理;- 掌握二进制、十进制和任意进制计数器的设计方法。
2. EDA工具使用:- 学习并熟练使用Multisim、Proteus等EDA工具进行计数器电路设计;- 掌握电路绘制、仿真和调试的基本步骤。
3. 实践操作:- 设计并实现一个简单的二进制计数器电路;- 设计并实现一个十进制计数器电路;- 尝试设计任意进制计数器电路。
4. 教学大纲:- 第一章:计数器原理及分类;- 第二章:EDA工具的基本操作;- 第三章:二进制计数器设计与实践;- 第四章:十进制计数器设计与实践;- 第五章:任意进制计数器设计与实践。
5. 教学内容安排与进度:- 原理讲解:2课时;- EDA工具使用:2课时;- 二进制计数器设计:2课时;- 十进制计数器设计:2课时;- 任意进制计数器设计:2课时。
学生姓名:班级::自动计数器在日常生活中屡见不鲜,它是根据不同的情况设定的,能够通过技术功能实现一些相应的程序,如通过自动计数器来实现自动打开和关闭各种电器设备的电源。
广泛用于路灯,广告灯,电饭煲等领域。
自动计数器给人们生产生活带来了极大的方便,而且大大地扩展了自动计数器的功能。
诸如自动定时报警器、按时自动打铃、时间程序自动控制、定时广播、自动启闭电路,定时开关烤箱、甚至各种定时电器的自动启用等,所有这些,都是以自动计数器为基础的。
由于它的功能强劲,用途广泛,方便利用,所以在这个电子科技发展的时代,它是一个很好的电子产品。
如在洗衣机的定时控制以及路灯等一些人们不能再现场控制的操控。
都可以利用自动计数器来完成这样的功用。
可见此系统所能带来的方便和经济效益是相当远大的。
因此,研究自动计数器及扩大其应用,有着非常现实的意义。
本次课设设计是检验理论学习水平、实践动手能力及理论结合实际的能力,要求具有一定的分析处理问题能力和自学能力的一个比较重要得实践课程。
通过这样的过程,使我们的论文及实践水平有一次较为全面的检查,同时也使我们硬件方面的能力有所提高,对以后的学习有这非常重要的意义。
关键词:电器设备;自动计数器;电源指导老师签名:1.1设计任务 (3)1.2设计方案 (3)2.1元器件的设计与参数 (3)2.2各个元器件的电路原理 (4)2.2.1 NE555 (4)2.2.2CD4518 (7)2.2.3CD4511 (8)2.3电路整体原理 (9)3.1P ROTEL99简介 (9)3.2P ROTEUS简介 (10)4.1元器件搜索 (13)4.2元器件代号 (14)4.3元件的放置 (14)4.4连线 (14)4.5元器件赋值 (15)4.6实验调试 (16)6.1原理设计过程中的问题 (19)6.2调试过程中的问题 (19)6.3测试结果与分析 (19)6.4调试注意事项 (20)6.5查找故障的方法 (20)设计并制作一个自动计数器,NE555构成时钟信号发生器,CD4518为二十进制加计数器,CD4511为译码驱动器,调节R17课调节555的震荡频率,C1为充放电电容,电容越大,充点时间越长,振荡频率越低。
一、实验背景随着电子技术的不断发展,计数器在数字电路中的应用越来越广泛。
计数器作为一种基本的数字电路,可以实现计数、定时、分频等功能。
本次实训旨在通过搭建两位计数器电路,加深对计数器原理的理解,并掌握计数器的设计与实现方法。
二、实验目的1. 理解计数器的原理和功能。
2. 掌握集成触发器构成计数器的方法。
3. 学会使用中规模集成计数器,并进行功能测试。
4. 熟悉Proteus仿真软件的使用,验证电路设计的正确性。
三、实验原理计数器是一种用以实现计数功能的数字电路,其基本原理是利用触发器实现计数功能。
常见的触发器有D触发器、T触发器、JK触发器等。
本实验采用D触发器构成两位计数器。
四、实验仪器与材料1. 实验箱2. 集成触发器(如CC4013)3. 中规模集成计数器(如CC40192)4. 7段数码管5. 电阻、电容等6. Proteus仿真软件五、实验步骤1. 电路设计(1)根据实验要求,设计两位计数器电路,包括D触发器、CC40192计数器、7段数码管等元件。
(2)利用Proteus仿真软件绘制电路原理图,并进行仿真测试。
2. 电路搭建(1)按照电路原理图,在实验箱上搭建两位计数器电路。
(2)检查电路连接是否正确,确保电路连接牢固可靠。
3. 功能测试(1)给计数器电路通电,观察7段数码管显示的计数值。
(2)通过按键控制计数器的计数方向(加法或减法)。
(3)测试计数器的计数范围、计数速度等性能指标。
4. 仿真测试(1)在Proteus软件中,将设计的电路原理图导入仿真环境。
(2)设置仿真参数,如时钟频率、计数范围等。
(3)观察仿真结果,验证电路设计的正确性。
六、实验结果与分析1. 电路搭建按照实验步骤,成功搭建了两位计数器电路,并连接了7段数码管进行显示。
2. 功能测试通过按键控制,计数器可以正常进行加法或减法计数,计数值在0-99之间变化。
7段数码管显示的计数值准确无误。
3. 仿真测试在Proteus软件中,对设计的电路进行了仿真测试。
电子科技大学实验报告学生姓名:范仁森学号:2011032030016 指导教师:杜涛学生姓名:李彦龙学号:2012032030019学生姓名:万金山学号:2011032030030一、实验室名称:计算机大楼309二、实验项目名称:两位十进制计数器在7段数码管显示的设计三、实验原理:用FPGA板上的晶振频率为33.86MHz的时钟进行2的25次方分频作为基准频率,然后用两位十进制计数器计数,计数结果输出至七段数码管显示器的数据端。
再将时钟进行2的19次方分频作为数码管扫描频率,接到数码管的共阴极端。
其中七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
四、实验目的:1、掌握七段数码管译码器的工作原理;2、掌握设计两位十进制计数器。
3、学会运用波形仿真测试检验程序的正确性。
五、实验内容:用VHDL设计两位十进制计数器在7段数码管显示的设计,并在VHDL描述的测试平台下对译码器进行功能仿真,给出仿真的波形,并在FPGA板上测试。
六、实验器材(设备、元器件):电脑一台,Active-HDL,30MHz FPGA开发板七、实验步骤:程序:顶层BDE设计U1部分:div25:将晶振信号进行2的25次方分频作为计数基准频率library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity div25 isport(clk : in STD_LOGIC;clr : in STD_LOGIC;div_25 : out STD_LOGIC);end div25;architecture div25 of div25 issignal count:std_logic_vector(24 downto 0);----为分频器设置一个中间信号beginprocess(clk,clr)beginif(clr='1')thencount<="0000000000000000000000000"; ----初始化elsif(clk'event and clk='1')then ----上升延触发if (count="1111111111111111111111111")then ----将时钟频率分频至接近1Hzcount<="0000000000000000000000000";---进位elsecount<=count+1; ---计数end if ;end if;end process;div_25<=count(24);----输出1Hz信号end div25;U3部分:count ---十进制的个位计数器library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity count isport(clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;count_4:out std_logic_vector(3 downto 0);cin:out std_logic);end count;architecture count of count issignal count_3:std_logic_vector(3 downto 0); ----计数十位数需要4位2进制begincount_4<=count_3;process(clk,clr)beginif(clr='1')thencount_3<="0000";初始化cin<='0';初始化elsif(clk'event and clk='1')then-----上升沿触发if(en='1')thenif(count_3="1001")then-----进位count_3<="0000";----进位cin<='1';-----输出进位信号elsecount_3<=count_3+1;计数cin<='0';重置进位信号end if;end if;end if;end process;end count;U4部分:count 十进制的十位计数器library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity count isport(clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;count_4:out std_logic_vector(3 downto 0);cin:out std_logic);end count;architecture count of count issignal count_3:std_logic_vector(3 downto 0);begincount_4<=count_3;process(clk,clr)beginif(clr='1')thencount_3<="0000";-----初始化cin<='0';elsif(clk'event and clk='1')thenif(en='1')thenif(count_3="1001")then-----十进制计数count_3<="0000";----进位重置cin<='1';----输出进位信号elsecount_3<=count_3+1;-----计数cin<='0';-----进位信号重置end if;end if;end if;end process;end count;U2部分:div19 -----将晶振信号进行2的19次方分频作为扫描频率library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity div19 isport(clk : in STD_LOGIC;clr : in STD_LOGIC;div_19 : out STD_LOGIC);end div19;architecture div19 of div19 issignal count:std_logic_vector(18 downto 0);beginprocess(clk,clr)beginif(clr='1')thencount<="0000000000000000000";-----初始化elsif(clk'event and clk='1')thenif (count="1111111111111111111")thencount<="0000000000000000000";-----进位重置elsecount<=count+1;------计数end if ;end if;end process;div_19<=count(18);-----出接近64Hz的扫描信号end div19;U5部分:mux2----将两位十进制进行扫描输出library IEEE;use IEEE.STD_LOGIC_1164.all;entity mux2 isport(a : in STD_LOGIC;counter1 : in STD_LOGIC_VECTOR(3 downto 0);counter2 : in STD_LOGIC_VECTOR(3 downto 0);dout : out STD_LOGIC_VECTOR(3 downto 0));end mux2;architecture rtl of mux2 isprocess(a,counter1,counter2)beginif (a='0')thendout<=counter1;----输出个位elsif(a='1')thendout<=counter2;------输出十位end if;end process;end rtl;U6部分:decoder -----将两位十进制的数转换为七段显示码输出至显示管library IEEE;use IEEE.STD_LOGIC_1164.all;entity decoder7 isport(din : in STD_LOGIC_VECTOR(3 downto 0);dout : out STD_LOGIC_VECTOR(6 downto 0));end decoder7;architecture rtl of decoder7 issignal indata:std_logic_vector(3 downto 0);indata<=din;----载入数据process(indata)begincase indata iswhen"0000"=>dout<="1111110";------输出0when"0001"=>dout<="0110000";-----输出1when"0010"=>dout<="1101101";-----输出2when"0011"=>dout<="1111001";-----输出3when"0100"=>dout<="0110011";----输出4when"0101"=>dout<="1011011";-----输出5when"0110"=>dout<="0011111";-----输出6when"0111"=>dout<="1110000";-----输出7when"1000"=>dout<="1111111";-----输出8when"1001"=>dout<="1111011";-----输出9when others=>dout<="0000000";-----输出0 end case;end process;end rtl;仿真:在ise上FPGA板上I/O接口选择clk P79, clr P109, en P114, com1 P135, com2 P133,dout1 P138,dout2 P139,dout3 P140,dout4 P141,dout5 P143,dout6 P144,dout7 P146.在ise上继续编译,最后program下载进FPGA。
课程作业
题目:《电子设计》
——两位自动计数器
姓名:李XX
学院:物理机电与工程学院
系:电子科学系
专业:信电
年级:
学号:
指导教师:
年月日
两位自动计数器
一、两位自动计数器的功能工作原理
两位自动计数器两位数码管自动显示0-99,数字可清零。
电路主要由NE555,4518,4511实现。
上电后,电路自动计数.由0增至99,不断循环计数.数字上升速度快慢由NE555振荡频率决定.S1为计数清零按键.NE555构成时钟信号发生器,CD4518为二/十进制加法计数器,CD4511为译码驱动器,调节R17可调节NE555的振荡频率.C1为充放电电容,电容容量愈大,充电时间愈长,,则振荡频率愈低。
原理图:
二、元器件的选择
编号名称型号数量
R1、R2 电阻10KΩ 2
R3—R16 电阻1KΩ14
R17 可变电阻0—100KΩ 1
C1 极性电容10UF 1
C2 电容10^3 1
C3 电容10^4 1
U1 芯片NE555 1 U2A、U2B 芯片4518 2
U3、U4 芯片4511 2
——八段数码管—— 2
S1 计数清零按键—— 1
三、芯片的功能
(1)NE555构成的是时钟信号发生器
(2)CD4518为二/十进制加数器
CD4518/CC4518是二、十进制(8421编码)同步加计数器,内含两个单元的加计数器,其功能表如真值表所示。
每单个单元有两个时钟输入端CLK和EN,可用时钟脉冲的上升沿或下降沿触发。
由表可知,若用ENABLE信号下降沿触发,触发信号由EN端输入,CLK 端置“0”;若用CL℃K信号上升沿触发,触发信号由CL℃K端输入,ENABLE端置“1”。
RESET端是清零端,RESET端置“1”时,计数器各端输出端Q1~Q4均为“0”,只有RESET 端置“0”时,CD4518才开始计数。
CD4518采用并行进位方式,只要输入一个时钟脉冲,计数单元Q1翻转一次;当Q1为1,Q4为0时,每输入一个时钟脉冲,计数单元Q2翻转一次;当Q1=Q2=1时,每输入一个时钟脉冲Q3翻转一次;当Q1=Q2=Q3=1或Q1=Q4=1时,每输入一个时钟脉冲Q4翻转一次。
这样从初始状态(“0”态)开始计数,每输入10个时钟脉冲,计数单元便自动恢复到“0”态。
若将第一个加计数器的输出端Q4A作为第二个加计数器的输入端ENB的时钟脉冲信号,便可组成两位8421编码计数器,依次下去可以进行多位串行计数。
CD4518功能:
CD4518是一个双BCD同步加计数器,由两个相同的同步4级计数器组成。
CD4518引脚功能(管脚功能)如下:
1CP、2CP:时钟输入端。
1CR、2CR:清除端。
1EN、2EN:计数允许控制端。
1Q0~1Q3:计数器输出端。
2Q0~2Q3:计数器输出端。
Vdd:正电源。
Vss:地。
CD4518是一个同步加计数器,在一个封装中含有两个可互换二/十进制计数器,其功能引脚分别为1~7和9~{15}.该CD4518计数器是单路系列脉冲输入(1脚或2脚;9脚或10脚),4路BCD码信号输出(3脚~6脚;{11}脚~{14}脚)。
CD4518控制功能:CD4518有两个时钟输入端CP和EN,若用时钟上升沿触发,信号由CP输入,此时EN端为高电平(1),若用时钟下降沿触发,信号由EN输入,此时CP端为低电平(0),同时复位端Cr也保持低电平(0),只有满足了这些条件时,电路才会处于计数状态.否则没办法工作。
CD4518采用并行进位方式,只要输入一个时钟脉冲,计数单元Q1翻转一次;当Q1为1,Q4为0时,每输入一个时钟脉冲,计数单元Q2翻转一次;当Q1=Q2=1时,每输入一个时钟脉冲Q3翻转一次;当Q1=Q2=Q3=1或Q1=Q4=1时,每输入一个时钟脉冲Q4翻转一次。
这样从初始状态(“0”态)开始计数,每输入10个时钟脉冲,计数单元便自动恢复到“0”态。
若将第一个加计数器的输出端Q4A作为第二个加计数器的输入端ENB的时钟脉冲信号,便可组成两位8421编码计数器,依次下去可以进行多位串行计数。
清零原理:就是将CD4518的清零端连在一起,接一个开关,按下开关就会清零,但是如果直接连在一起前级的低电平会对后级的清零有影响,因此需要接一个二极管,因为二极管具有单向导电性,因此不会对后级有影响。
(3)CD4511为译码驱动器
CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
用CD4511实现LED与接口方法如下图:
其功能介绍如下:
BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入DCBA 状态如何,七段均发亮,显示“8”。
它主要用来检测数码管是否损坏。
LE:锁定控制端,当LE=0时,允许译码输出。
LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
A1、A2、A3、A4、为8421BCD码输入端。
a、b、c、d、e、f、g:为译码输出端,输出为高电1有效。
CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。
1. CD4511的引脚
CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。
其引脚图如3-2所示。
各引脚的名称:其中7、1、2、6分别表示A、B、C、D;5、4、3分别表示LE、BI、LT;13、12、11、10、9、15、14分别表示 a、b、c、d、e、f、g。
左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS。
2. CD4511的工作原理
1.CD4511的工作真值表如下表
2.锁存功能
译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。
当LE为“0”电平导通,TG2截止;当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。
如图3-3
(3)译码
CD4511译码用两级或非门担任,为了简化线路,先用二输入端与非门对输入数据B、C 进行组合,得出四项,然后将输入的数据A、D一起用或非门译码。
(4)消隐
BI为消隐功能端,该端施加某一电平后,迫使B端输出为低电平,字形消隐。
消隐控制电路如图3-4所示。
消隐输出J的电平为
J= =(C+B)D+BI
如不考虑消隐BI项,便得J=(B+C)D
据上式,当输入BCD代码从1010---1111时,J端都为“1”电平,从而使显示器中的字形消隐。
CD 4511的真值表
四、作品实物展示
五、设计总结
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
计数器已成为人们常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
说到这次简化设计,感触最多的,就是终于可以做一个比较切合实际的设计了。
之前书本上的知识看多了,老师讲课的内容听多了,总觉得挺空的。
这次的设计不仅是一个操刀演练的过程,更是一个接触实际应用的过程。
从最开始拿到原始电路图的茫然,到后来的慢慢了解,再到后来自己动手修改、简化、扩展。
每一步都必须走得很踏实。
这样一个过程的完成,对于自己来说,真正比听很多堂课都要有效果。
这次实验,主要考验的是我们的逻辑能力和动手能力。
在慢慢的设计中,又发现这次实验其实非常考验人的细心和耐心。
其实修正这样的工作并不难,但是难能可贵的是有这份细致和耐心去做好这些事情。
细节造就完美,对于文艺艺术和科学研究都是一样的。
只有捕捉注意到每一个细节,最后的成果才有可能接近完美。
非常遗憾的一点是自己的水平有限,没能够将工作做得更好。
但是未来的日子里,我定会更加努力。
相信自己的下一次设计一定会有更大的进步。
这是对自己的希望,更是对自己的鞭策。