这道计数器分频功能的题目应该如何求解

你好:

计数器的应用题目(计数器例题)计数器的应用题目(计数器例题)


计数器的应用题目(计数器例题)


计数器的应用题目(计数器例题)


据我分析应该是一个104分频的计数器。

因为都是采用置数的方式,当运行稳定后,进入新一个循环时左边的呗置数为1000,右边为0011,所以左边计数7次后达到1111,再计数一次则进位,CO为1,所以左边共计数8次;右边在左边每8次计数后计数1次,且计数到1111再计数1次则进位并且产生了置数信号到两片163上。

所以总共是813=104分频。

不知分析是否有错,没有我的计算结果。

希望我的回答能帮助到你。

课程设计题目:电子计数器

单片机C51计数器要求:编写一个计数器程序,将T0作为计数器来使用,对外部信号计数,将所计数字显示在数码管上。 该部分的硬件电路如图所示,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电路,数码管采用共阳型,使用PNP型三极管作为片选端的驱动,所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到P2.0…P2.5,当P2.0…P2.5中某引脚输是低电平时,三极管导通,给相应的数码管供电,该位数码管点亮哪些笔段,则取决于笔段引脚是高或低电平。图中看出,所有6位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,哪些笔段亮就取决于P0口的8根线的状态。 编写程序时,首先根据硬件连线写出LED数码管的字形码、位驱动码,然后编写程序如下: #include "reg51.h"#define uchar unsigned char#define uint unsigned int uchar code BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB};//位驱动码uchar code DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};//字形码uchar DispBuf[6]; //显示缓冲区 void Timer1() interrupt 3{ uchar tmp;uchar Count; //计数器,显示程序通过它得知现正显示哪个数码管TH1=(65536-3000)/256;TL1=(65536-3000)%256; //重置初值tmp=BitTab[Count]; //取位值P2=P2|0xfc; //P2与11111100B相或P2=P2&tmp; //P2与取出的位值相与tmp=DispBuf[Count];//取出待显示的数 tmp=DispTab[tmp]; //取字形码P0=tmp;Count++;if(Count==6)Count=0; }void main(){ uint tmp;P1=0xff;P0=0xff;TMOD=0x15; //定时器0工作于计数方式1,定时器1工作于定时方式1TH1=(65536-3000)/256;TL1=(65536-3000)%256; //定时时间为3000个周期TR0=1; //计数器0开始运行TR1=1;EA=1;ET1=1;for(;;){ tmp=TL0|(TH0<<8);//取T0中的数值DispBuf[5]=tmp%10;tmp/=10;DispBuf[4]=tmp%10; tmp/=10;DispBuf[3]=tmp%10;tmp/=10;DispBuf[2]=tmp%10;DispBuf[1]=tmp/10;DispBuf[0]=0;}} 这个程序中用到了一个新的知识点,即数组,首先作一个介绍。 数组是C51的一种构造数据类型,数组必须由具有相同数据类型的元素构成,这些数据的类型就是数组的基本类型,如:数组中的所有元素都是整型,则该数组称为整型数组,如所有元素都是字符型,则该数组称为字符型数组。 数组必须要先定义,后使用,这里仅介绍一维数组的定义,其方式为: 类型说明符数组名[整型表达式] 定义好数组后,可以通过:数组名[整型表达式]来使用数组元素。 在定义数组时,可以对数组进行初始化,即给其赋予初值,这可用以下的一些方法实现: 1.在定义数组时对数组的全部元素赋予初值:例:int a[5]={1,2,3,4,5}; 2.只对数组的部分元素初始化;例:int a[5]={1,2}; 上面定义的a数组共有5个元素,但只对前两个赋初值,因此a[0]和a[1]的值是1、2,而后面3个元素的值全是0。 3.在定义数组时对数组元素的全部元素不赋初值,则数组元素值均被初始化为0 4.可以在定义时不指明数组元素的个数,而根据赋值部分由编译器自动确定例:uchar BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB};则相当于定义了一个BitTab[6]这样一个数组。 5.可以为数组指定存储空间,这个例子中,未指定空间时,将数组定义在内部RAM中,可以用code关键字将数组元素定义在ROM空间中。uchar code BitTab[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB}; 用这两种定义分别编译,可以看出使用了code关键字后系统占用的RAM数减少了,这种方式用于编程中不需要改变内容的场合,如显示数码管的字形码等是很合适的。 6.C语言并不对越界使用数组进行检测,例如上例中数组的长度是6,其元素应该是从BitTab[0]~BitTab[5],但是如果你在程序中写上BitTab[6],编译器并不会认为这有语法错误,也不会给出(其他语言如BASCI等则有严格的规定,这种情况将视为语法错误),因此,编程者必须自己小心确认这是否是你需要的结果。 程序分析:程序中将定时器T1用作数码管显示,通过interrupt 3关键字定义函数Timer1()为定时器1中断服务程序,在这个中断服务程序中,使用 TH1=(65536-3000)/256;TL1=(65536-3000)%256; 来重置定时器初值,这其中3000即为定时周期,这样的写法可以直观地看到定时周期数,是常用的一种写法。其余程序段分别完成取位码以选择数码管、从显示缓冲区获得待显示数值、根据该数值取段码以点亮相应笔段等任务。其中使用了一个计数器,该计数器的值从0~5对应第1到第6位的数码管。 主程序的部分是做一些初始化的作,设置定时器工作模式、开启定时器T1、开启计数器T0、开启T1中断及总中断,随后进入主循环,主循环首先用unsigned int型变量tmp取出T0中的数值,这里使用了“tmp=TL0|(TH0<<8);”这样的形式,这相当于tmp=TH0256+TL0,但比之于后一种形式,该方式可以得到更高的效,其后就是将tmp值不断地除10取整,这样将int型数据的各位分离并送入相应的显示缓冲区 参考链接:

数电计数器的题目

D触发器

接成二

分频

器的典型电路,一级D触发器二分频,第二级再二分频,总共是四分频。

题目出的不太舒服,硬要是填空的话,我觉得是:二、四、除

一道关于数电74161计数器的题,求大神,给出具体过程,谢谢

这个因该是是10进制,主状态是从Q3Q2Q1Q0,0011→0100→0101→

0110→0111→1011→1100→1101→1110→1111→0011

选择题、设计一个同步12进制计数器,至少需要触发器()个?

设计一个同步12进制计数器,至少需要触发器4个。2^4=16〉12,每个触发器有两个状态,采取同步触发的方式即可。

计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。

计数器在数字系统中应用广泛,如在电子计算机的中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。

计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。很显然,3位数的计数器可以显示到999,4位数的可以显示到9999。

扩展资料

计数器应用包括通话、短信、数据等类别的记录,并支持用户自主选择清零日期,以及按照类别添加提醒数值,如用户可以选择每月任一一天,或者天、一天作为记录循环清零日,同时添加通话时长、短信条数、数据流量数量的提醒。

计数器的应用极为广泛,不仅能用于计数,还可用于分频、定时,以及组成各种检测电路和控制电路。

为了使用方便,在有些单片集成计数器上还附加了异步置零、预置数、保持等功能,并设置了相应的控制端。