• 11.34 MB
  • 22页

c51单片机频率计项目报告材料

  • 22页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'实用文案设计课题:频率计的设计与制作目录一、任务设计与要求二、方案设计与分析三、分频计的程序四、原件清单五、安装与调试六、项目总结一.任务分析一般对于低频信号可以采用单片机长时间采样的方法计数。对于0Hz~2MHZ都可以直接使用单片机计数器测频,对于300kHz标准文档 实用文案以上的高频信号则需要对信号分频后在进行测频,相应的误差也会增大。例如:对于10~200kHz的信号,可以直接使用单片机的计数器对信号测量;对于频率200kHz~2MHz的频率,可以10分频后再测量,对于2MHz~20MHz的信号,则考虑100分频后再测量。分频器可以采用10/16进制,计数频率符合要求的计数器。根据信号的频率手动或者自动选择测量的方式,进行相应的测量。通过查阅资料和老师的知道,考虑到学校所具备的芯片,最终选择了CD4051作为选择性开关,CD4518作为分频芯片。二.方案设计与分析CD4051中文资料(管脚,功能,参数使用介绍)CD4051功能及使用概述:标准文档 实用文案CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。INH”是禁止端,当“INH”=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰-峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=+5V,VSS=0V,当VEE=-5V时,只要对此模拟开关施加0~5V的数字控制信号,就可控制幅度范围为-5V~+5V的模拟信号。.使用十六进制代码就可以对CD4051进行操作了。比如说P1=0X07,这样CD4051就选择的是7号(二进制111)通道了。如果在八个通道输入一模拟量,在输出端将输出什么,输入什么是自己设定。例如,若模拟开关的供电电源VDD=+5V,VSS=0V,只要对此模拟开关施加0~5V的数字控制信号,... 这里,ABC数字控制信号就可以使用5V信号了,因为VDD是5v,里面控制部分就都是5V逻辑. 当VEE=-5V时,就可控制幅度范围为-5V~+5V的模拟信号。 当Vee=-8V时,就可以可控制幅度范围为-8V~+5V的模拟信号. Vee就是电子开关的8个输入端可以允许的信号范围下限. 注意不要超过它的极限参数.峰-峰值达15V  CD4051管脚图及逻辑符号图引脚功能描述:A0~A2地址端标准文档 实用文案I0/O0~I7/O7输入输出端INH禁止端O/I公共输出/输入端VDD正电源VEE模拟信号地Vss数字信号地标准文档 实用文案CD4051参数电源电压范围…………3V~15V输入电压范围…………0V~VDD工作温度范围M类…………-55℃~125℃标准文档 实用文案E类………….-40℃~85℃极限值:电源电压…...-0.5V~18V输入电压……-0.5V~VDD+0.5V输入电流…………….±10mA储存温度…………-65℃~150℃CD4518资料CD4518是一个双BCD同步加计数器,由两个相同的同步4级计数器组成。CD4518引脚功能(管脚功能)如下:1CP、2CP:时钟输入端。1CR、2CR:清除端。1EN、2EN:计数允许控制端。1Q0~1Q3:计数器输出端。2Q0~2Q3:计数器输出端。Vdd:正电源。Vss:地。标准文档 实用文案                          CD4518引脚图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串行级联时,尽管每片CD4518属并行计数,但就整体而言已变成串行计数了。需要指出,CD4518未设置进位端,但可利用Q4做输出端。有人误将第一级的Q4端接到第二级的CP端,结果发现计数变成“逢八进一”标准文档 实用文案了。原因在于Q4是在CP8作用下产生正跳变的,其上升沿不能作进位脉冲,只有其下降沿才是“逢十进一”的进位信号。正确接法应是将低位的Q4端接高位的EN端,高位计数器的CP端接USS。1.分频器电路标准文档 实用文案2.定时器的计数器方式标准文档 实用文案要测量信号的频率,即把外部TTL信号输入单片机,在一定的时间进行计数,然后进行频率计算。最简单的办法就是使用2个定时器,一个定时1s,同时另一个计数,1s内的计数值就是信号的频率。我们先设计一个测量范围为(0-255),精度稍低的频率计,再进行功能拓展。设置T0对外部信号输入计数,信号源送入P3.4;设置T1定时,由于需要定时1s,所以采用每次定时1ms,定时1000次为1s,每1s到就取出T0计数的值作为频率值进行显示。每定时1ms产生一个中断,中断子程序可以进行数码管动态扫描显示,故频率的显示是实时进行的,信号的频率变换,显示的频率值也马上变化,每1s测量一次。(2)相关知识补充a.单片机的定时器工作在计数状态时,外部信号输入一个下降沿,定时器就计数一次,而单片机要判断出一个下降沿,需要2个机器周期,所以定时器在进行计数的时候,输入信号的频率最大不超过fosc/24,对于11.0592MHz的晶振来说,其计数的最高频率为460.8KHz。实际在测量的时候,应该还要稍小一些。b.单片机在测量频率时,主要的误差来自晶振频率,我们一般通过修改定时器初值或者定时中断的次数来进行修正,以提高精度。3.电路分析与设计单片机电路分析标准文档 实用文案CD4518与CD4051电路设计(左为CD4518右为CD4051)标准文档 实用文案电路分析CD4518的16引脚接上5V电源,7、8引脚接地。因为CD4518是由两个独立的10分频的分频器组成,为了得到100分频的分频器,将CD4518的6引脚和9引脚串联起来得到100分频。由CD4518的14引脚与CD4051的14引脚相连,把单片机的P1^0与P1^2和CD4051的11引脚与10引脚相连,当P1^0=0,P1^2=1时启用100分频;把CD4518的6引脚与CD4051的15引脚连接起来,当P1^0=1,P1^2=0时启用10分频;把CD4518的1引脚与CD4051的12引脚相连,当P1^0=1,P1^2=1时启用原频。分频以后由CD4051的3引脚与单片机的P3^4相连,把分频信号传输给单片机,由单片机读数,数码管8位显示。这样基本完成了0—2MHZ的频率测试的硬件设施,精度问题由程序解决,电路当中无精度解决方案。标准文档 实用文案4.程序流程图主程序流程图标准文档 实用文案三.程序标准文档实用文案#includeunsignedcharcodedisptab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharcodetablew[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};标准文档 实用文案unsignedcharcodetabled[]={0xf7,0xbf,0xfe};sbitA=P1^0;sbitC=P1^1;unsignedintcount;unsignedcharnum=0,m=1;unsignedlongintfreq=0;unsignedintn=0;voiddelay(unsignedcharz){chari=112;while(z--)while(i--);}voiddisp(){num++;num=(num%8);标准文档 实用文案P2=0xff;//数码管消隐P0=0xff;P2=tablew[num];switch(num){case1:P0=disptab[freq%10];break;case2:P0=disptab[freq/10%10];break;case3:P0=disptab[freq/100%10];break;case4:P0=disptab[freq/1000%10];break;case5:P0=disptab[freq/10000%10];break;case6:P0=disptab[freq/100000%10];break;case7:P0=disptab[freq/1000000%10];break;case0:P0=tabled[m];break;default:;}}voiddinshi0()interrupt1标准文档 实用文案{n++;}voiddings1()interrupt3{TH1=0xfc;TL1=0x90;count++;if(count>=1000){unsignedlonga=0;count=0;a=n*65536+TH0*256+TL0;while(a){if(a>200000){m++;if(m==1){A=0;C=1;}//10分频if(m==2){A=1;C=0;}//100分频标准文档 实用文案break;}if((m>0)&&(a<=20000)){m--;if(m==1){A=0;C=1;}if(m==0){A=1;C=1;}break;}freq=a;break;}TL0=0;TH0=0;n=0;TH1=0xeb;TL1=0xb0;}}voidmain(void){TMOD=0x15;TL0=0;标准文档 实用文案TH0=0;TH1=0xfc;TL1=0x6c;ET0=1;ET1=1;EA=1;TR0=1;TR1=1;A=1;C=1;while(1){disp();delay(1);}}四.元件清单原件名称原件数量(个)CD45181CD40511标准文档 实用文案五.安装与调试标准文档 实用文案电路板焊接完成测试标准文档 实用文案六.项目总结通过,这次的0~1兆分频计项目,我们得到了更好的收获,不管是知识上,还是团队意识上,都有很大的提升,在我们的讨论和上网查资料中,我们的计划和程序得到了进一步的完善。经过老师对我们进行了分组,我们组接到0~1兆这个项目,我们组各个成员都积极参加我组的工作,积极配合组长分配的个项工作,因为有着上一个项目的经验,我们条例有序的做着组长分配的工作,虽然有个别开小差,但是我们还是很好的完成的任务,老师通过分组,让我们人人都有事做,培养我们的团队里的合作与协调,让我们在团队中怎样去磨合组里的各个成员的性格差异,对于我们即将进入单位做好了铺垫,让我们更快,更好的去适应上岗的角色。首先,我们通过老师给的资料,我们首先对这些资料进行了讨论和分析,使我们知道了原理图和程序是整个项目中最难的,所以,我们先弄原理图,我们了解CD4501和CD4518的内部原理, 通过对这两个原件的了解和上网查资料,绘制了电路图,看到了电路图,让我们知道了这个原件是一个怎样运作的,知道了CD4501和CD4518的运作后我编好了程序,进入最后的调试了,最后完成这个项目的全部工作了。然后我们组员一起讨论,加强对这个项目知识的了解,分频计在我们实际生活中也可以应用。标准文档'