微机原理-计数器_第1页
微机原理-计数器_第2页
微机原理-计数器_第3页
微机原理-计数器_第4页
微机原理-计数器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1•计数器的发展、应用及前景1.1概述计数器是一种基础测量仪器,到目前为止已有30多年的发展史。早期,设计师们追求的目标主要是扩展测量范围,再加上提高测量精度、稳定度等,这些也是人们衡量电子计算器的技术水平,决定电子计数器价格高低的主要依据。目前这些基本技术臻完善,成熟。应用现代技术可以轻松地将电子计数器的测频上限扩展到微波频段。1・2基础知识简介电子计数器是一种多功能的电子测量仪器。它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。通常电子计数器按照它的功能可分为以下三类:(1) 通用计数器是利用数字电路技术数出给定时间内所通过的脉冲数并显示计数结果的数字化仪器。通用计数器是其他数字化仪器的基础。在它的输入通道接入各种模-数变换器,再利用相应的换能器便可制成各种数字化仪器。通用计数器特点:测量精度高、量程宽、功能多、操作简单、测量速度快、直接显示数字,而且易于实现测量过程自动化。通用计数器按功能可分3类:1、频率计数器:专门用于测量高频和微波频率的计数器。2、计算计数器:具有计算功能的计数器,可进行数学运算,可用程序控制进行测量计算和显示等全部工作过程3、微波计数器:是以通用计数器和频率计数器为主配以测频扩展器而组成的微波频率计。应用领域:通用计数器在工业生产和科学实验中得到广泛应用。(2) 频率计数器电子工程师经常需要测量频率、时间间隔、相位和对事件计数,精确的测量离不开频率计数器或它的同类产品,如电子计数器和时间间隔分析仪。这些仪器为研发提供高精度和分析能力,为大批量生产提供高效率并为维修提供低成本和便携性。最早的电子计数器是为了对诸如原子现象之类的事情进行计数而设计出来的。在发明计数器之前,频率的测量都是用频率计(一种精度很低的协调装置)完成。频率计数器是以数字方式对信号参数进行精密测量的首批仪器之一。衡量频率计数器主要指标是测量范围、测量功能、精度和稳定性,这些也是决定价格高低的主要依据。随着电子测试技术的发展,频率计数器日趋成熟。目前,频率计数器已经能轻松测量射频、微波频段信号。除频率测量外,大多数频率计数器还综合了以下功能:频率比、时间间隔、周期、上升/下降时间、相位、占空比、正/负脉冲宽度、总和、峰值电压以及时间间隔平均等。频率计功能延伸的最高境界就是综合了调制域分析仪的功能。(3) 计算计数器一种带微处理器的具有计算功能的计数器,除了具有通用计数器的功能之外,能进行数学运算,求解比较复杂的方程式,可靠程序控制进行测量计算和显示等全部工作。频率计数器以通用计数器或频率计数器为主体,配以测频扩展器而组成的微波频率计。它的测频上限已进入毫米波段,有手动、半自动、全自动三类。系列化微波计数器是电子计数器发展的一个重要方向。频率扩展技术将微波测频转换为较低的测频,按其原理主要有置换法、取样法和变频法等。各种方法的主要性能评定项目包括测量速度、准确度、灵敏度、动态范围、允许信噪比、允许调频量、允许调幅量和幅度甄别等。置换法:利用零拍原理,用与被测频率f有一定关系的低频f0来置换f,用计数X 0 x器测出f0,从而求出fx。这种方法灵敏度高、动态范围大、允许调幅量大、幅度甄别显示最强分量,测量上限频率达26吉赫。取样法:以取样技术为基础,应用锁相原理将微波频率转换为低频来测量。它兼具置换法和变频法的优点,但测量频率上限受微波取样技术的限制。变频法:利用变频技术,将微波频率与频标谐波差频变换成低频,测量低频而算出被测频率。变频法的优点是允许信噪比高,允许调频量大,幅度甄别显示最弱分量等。设计要求利用8253定时/计数器和8255接口电路,设计一个十进制计数器,对外部事件进行计数,计满100即清0,并在八个发光二极管或七段led•显示器上显示计数值。按下开关K0开始对外部事件计数,按下开关K1停止计数,按下开关K2显示器清零.2.1设计目的2.1.1进一步撑握8255可编程并行接口芯片的工作原理及控制LED显示电路的编程方法。2.1.2进一步撑握8253定时器\计数器的工作原理和编程方法。2.2设计意义课程设计是计算机应用、电子类专业较重要的一个实践性环节。其目的和作用是使学生能将已学过的模拟电路、数字电路、微机原理与接口技术、EDA等知识综合运用于电子系统的设计中,从而培养学生对电子系统的设计能力,这是在所有实践性课程中最具活力,最能培养学生的自主学习、实践能力,最能培养学生创新思维的实践课程之一。同时课程设计是对学生的一种基本素质训练较好方式。通过课程设计,使学生能运用已学过的计算机软件硬件知识来进行微机接口应用系统开发和调试。了解微机接口应用开发的全过程:分析需求,设计原理图,选用元器件,布线,编程,调试,撰写报告等。培养学生的动手能力和解决实际问题的能力,为今后从事微机接口应用和开发方面的工作打下坚实的基础硬件设计3.1设计方案3.1.1系统框图及其描述(1)系统框图如图1所示

系统框图图1(2)系统框图描述8086通过地址译码器选中8253>8255芯片,通过数据总线DO〜D7对8253及8255进行数据的读写。8253的定时器0工作在方式3,CLK1接外部事件(单脉冲),GATE0接开关K0,控制计数器的开始和暂停。OUTO接PBO。8255的PA、PB、PC三个端口均工作于方式0,PA、PC作为输出口,PB作为输入口。PC口通过3-8译码器选中对应的数码管,PBO接OUT0的输出,检测电平的跳变从而实行计数,PB1接开关K1,对清零信号进行检测。PA0~PA7接数码管的LED-A〜LED-DP,控制数码管数字的显示。3.1.2方案实现原理设定计时器0工作在方式3,计数器初值设定为2,外部事件脉冲通过计数器0CLK0输入,将OUT0接到PB0,外部事件每触发一次,则在OUTO上发生一次电平的跳变,8086通过检测PB0口累计电平的跳变的次数,将值存放在寄存器CL中,每当CL中的值等于10,将CH中的值加1,实现十进制的进位,最后通过查表,将CL和CH的值显示到对应的数码管中。开关K0通过GATE0控制计数器的工作状态,实现开始和暂停的功能,开关K1通过控制PB1端口的电平实现清零的功能。3・2硬件原理3.2.1硬件原理图KDSOLEN-^IQ~N\!IIKIKTEST>-3JCSHZTAT-Z5AE<i■^TAT■:AT44~^nADS2CVIDGATEi■IKlkamGATE]■ua*csp低■curGATE:.■Ucue*30ITTi-I!-:-X5KDSOLEN-^IQ~N\!IIKIKTEST>-3JCSHZTAT-Z5AE<i■^TAT■:AT44~^nADS2CVIDGATEi■IKlkamGATE]■ua*csp低■curGATE:.■Ucue*30ITTi-I!-:-X59】ii52丘 i]AE4g肛厂1~社力 討ICED:IER芳伍?"^:Z5E.l:5功功IrrED4rED6b51ZE-B2ire-?]1TE-D+3lrc-Ei7lxr-n41ZE-A1TE-A]1TE-B21ZE-D41TE-E:liDJ1~S'lZL-j'1ZMFm1ZE-A]1£1>521ZE-D41ZC-E:1ZMF11FTT刃YI绘掘斟匹翱十ABCizIEZ疋F2»】斗F3:C33砂]]30FZi9-KE迅T硬件原理图图23.2.2硬件原理图描述外部连线8086通过地址总线A3〜A7接地址译码器输入端,Yl(F210H)接8253片选,Y3(F218H)接8255片选。8253计数器OCLKO接单脉冲触发器(外部事件),OUTO接8255PB0,PB1接开关K1,GATE0接开关K0, 8255PC3〜PC5分另I」接LED-SA〜LED-SC,8255PA0〜PA7分别接LED-A〜LED-DP。原理图描述8086的地址线低位接在地址译码器74LS138上,8253、8255的片选端都接在地址译码器的输出上,从而决定了8253、8255的各端口地址。从图上可以看出8253的片选地址是F210H,8255的片选地址是F218H。8086的数据总线与8255、8253的数据端接起来,对8253及8255进行数据读写。8086将运算结果送到PA端口上,实现计数第4页共16页器的功能。3・3模块电路的介绍及分析3.3.18253芯片(1) 8253的引脚及其功能8253是双列直插式24脚芯片,标准封装为DIP24,引脚如图(2) 8253的内部结构Intel8253芯片由数据总线缓冲器(8位)、读/写控制逻辑电路、控制字寄存器和3个结构完全相同的计数器组成。数据总线缓冲器用于将8253与系统数据总线相连,CPU读写8253的所有数据都经过这个缓冲器,包括CPU写入方式控制字、CPU写入计数值和CPU读出计数值。读/写控制逻辑电路接收来自系统总线的输入信号,将其转换成8253内部的操作和控制信号,选择读写操作对象,决定内部总线上数据的传送方向。控制字寄存器接收来自CPU的方式控制字,控制相应计数器的工作方式。三个独立的计数器通道计数器0、计数器1和计数器2都是16位减1计数器,减1操作由每个计数器/定时器的时钟输入脉冲下降沿触发启动。与16位减1计数器对应的还有一个16位预置寄存器和输出锁存器。预置寄存器存放计数初值,输出锁存器用于写入锁存命令时锁定当前计数值。每个计数器在CLK输入频率一定的情况下,可编程GATE的控制方式和OUT的输出方式生成6种信号发生器:基本计数器,可重复触发的单稳态触发器,分频器,方波发生器,软件触发的选通信号发生器,硬件触发的选通信号发生器。1 <JD724232221208253 19181716151413VCCD6WRD5RDD4CSA1D3D2A0D1CLK2OUT2D0CLK0GATE2OUT0CLK1GATE0GATE1GNDOUT18253引脚图

图3引唧名祢引脚姑im属性功能说明VCC24Power曲'电源GND12Power屯源地K8I/O数揺总线CLK09]辽时器"1•数器0时钟執入OUTO100址时器/讣数罄。输出GATEOII1CLKJ151定时謂几十数器」时钟输入OUT114D宦时器/■讣数黯1输出GATEI13I定时器/计数壽1flMAUI.K?卅1宦时幣/■计数罂2时恤入OUT2170宦时器■数器2输出(3ATE2161定时器/计数器;J门控输入Al-AO142。1地址线输人cs21]JillKD22]读佶号WR23]W号8253引脚功能图图4(3)8253方式控制字8253的控制字包括4项不同的编程信息:D7D6D5D4D3D2D1D0SC1SC0RW1RW0M2M1M0BCD厂ry计数器选择 读写格式 工作方式选择 数制计数器选择:00为计数器0,01为计数器1,10为计数器2,11为非法。读写格式:00为计数器锁存命令,01为只读写低字节,10为只读写高字节,11为先读写低字节,再读写高字节。工作方式选择:由3位确定6种工作方式。000为方式0,001为方式1,x10为方式2,x11为方式3,100为方式4,101为方式5。数制:0为二进制计数,1为BCD计数。3.3.28255芯片(1) 8255的引脚及其功能8255是双列直插式40脚芯片,标准封装为DIP40,引脚如图(2) 8255的内部结构8255A由数据总线缓冲器、读/写控制逻辑电路、A组和B组控制电路以及数据端口A、B和C组成。数据总线缓冲器是8255A与系统数据总线的接口,CPU输入输出的数据、CPU输出的控制字和外设的状态信息都是通过这个缓冲器传送的。读/写控制逻辑电路把CPU的控制命令或输出数据送至相应的端口,把外设的状态信息或输入数据通过相应的端口送至CPU。数据端口PA和PB都包含一个8位输出锁存器/缓冲器和一个8位输入锁存器,PC

口包含一个8位输出锁存器/缓冲器和一个8位输入缓冲器(不锁存输入信号)。在工作方式1或方式2下,PC口分成高4位和低4位两个输入口作为PA和PB的控制信号输出或状态信号输入。cs、A厂a0、RD和wr决定端口的地址。PA2PALPAflRD点AlPA2PALPAflRD点AlAuPC7

卩DiPCf.KiPCOFCLPC2pen卩RiiI'HlI'Kj阳鶉37刖H $57 3410 31]]3012291328142715筋16251724231922218255A 駝I'MPA5PAfiPA7WRESETIX)1)DD2DtTIH

阳IfcD7妝PB7PDA卩閒l'H4l'H38255引脚图图5引脚名称屮脚号I/Q属性功能说叩VCC26Howef+刖电淋止GND7Power电源地PA3-PAO14J/0端l」A低4位P/V7PA437-10i/0端口嵋4位卩I42iI/O财L」R抵4位PB7-PB422-24I/O端口喊‘位叱心14-17I/O端「垃低4位PC7-PC410-13I/O躺口确购RD51鮒号WR361CS6I片选Al-A0It地址统D7-D027-^34I/ORESET351复位仁号8255引脚功能图图6(3)8255方式控制字①方式控制字方式控制字决定端口A、B和C的工作方式。D7D6 D5D4D3D2D1D01A组方式A口I/OC口高4位I/OB组方式B口I/OC口低4位I/O、 “ *、 * 」' M J ‘k . ‘k一> "00=方式00=OUT 0=OUT 0=方式00=OUT 0=OUT01=方式11=IN 1=IN 1=方式11=IN 1=IN1X=方式2②按位操作控制字端口C的任一位可用这个控制字来置位或复位。D7D6D5,D4,D3D2D1,D0D7X6X5D4D3口位选择D1位置估0/复0XXXC口位选择000=PC0位位置位/复位'1=选中位-0O0=PC0 0=选中位置0111=PC7 1=选中位置1 0=选中位置0111=PC3.3.374LS138译码器74LS138是3—8译码器,本设计中利用它来做地址译码以及数码管的位选。通过它选中8253和8255的片选端以及应该显示字符的数码管1.1.18086芯片8086通过数据总线、地址总线、控制总线完成对8253和8255的读写工作,与接口部件实现数据传送,让接口部件实现预计的功能4•软件设计4・1程序流程图4.1.1主程序流程图如图74.1.2脉冲累计模块如图84.1.3显示模块如图94.2框图描述4.2.1主程序框图描述8253及8255的初始化,将00010110B写入8253控制字,设置定时器0工作在方式3,将10000010B写入8288控制字,设置PA、PC口为输出口,PB口为输入口。判断清零开关K0是否为高电平,若是,则清零;若否,则继续。判断暂停开关K1是否为低电平,若是,则暂停;若否,则继续。累积外部事件触发的次数,将个位值存储在CL中,将十位值存储在CH中。通过查表,将CL和CH中的值显示到数码管中。4.2.2脉冲累计模块程序框图描述检测PB.0端口是否有电平跳变,如有,将CL中的值加1,然后判断CH中的值是否为10,若是,将CL中的值清零,同时将CH中的值加1,再判断CH中的值是否为10,若是,将CH中的值清零,最后通过查表,将CL和CH中的值显示到数码管中。4.2.3显示模块程序框图描述通过PC.3〜PC.5选择数码管1,通过查表将CL中的值显示到数码管1中,调用延时程序,再选择数码管你2,通过查表将CH中的值显示到数码管2中。开始主程序流程图第9页共16页显示模块流程图图9显示模块流程图图9脉冲累计模块流程图图84.3源程序4.3.1程序代码;FOREAT598;82538255电子计数器(0〜99)P53_CTLTIMER0MODE03P55_CTLP8255AP53_CTLTIMER0MODE03P55_CTLP8255AP8255BP8255CEQU213HEQU210HEQU00010110BEQU21BHEQU218HEQU219HEQU21AH;8253的控制端口地址;8253的计数器0端口地址;8253的计数器0工作方式3;8255的控制端口地址;8255的A口地址;8255的B口地址;8255的C口地址; 8253和8255端口初始化 DATASEGMENTSAVEDB01HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,0MOVCX,0FFHMOVAX,DATAMOVDS,AXCLIMOVDX,P53_CTLMOVAL,MODE03 ;定时器0工作于方式3OUTDX,ALMOVDX,TIMER0MOVAL,02HOUTDX,ALMOVDX,P55_CTLMOVAL,82H ;设定8255的工作方式0,B口输入,A,C口输出OUTDX,AL; 判定清零开关是否按下 KS:MOVDX,P8255B ;读取PB.1端口,判定是否清零INAL,DX

ANDAL,02HCMPAL,02HJNZTJMOVCX,0CALLDISPJMPKS 累计外部事件 TJ:MOVDX,P8255B;检测是否有脉冲是否有跳变INAL,DXANDAL,01HCMPSAVE,ALMOVSAVE,ALJEDISPLAYINCCL;脉冲下降沿,CL加1CMPCL,10;到十回零,同时向高位进位JNZDISPLAYMOVCL,0INCCHCMPCH,10JNZDISPLAYMOVCH,0DISPLAY:CALLDISPJMPKS; 数码管显示 DISPPROCPUSHCSPOPDSMOVAL,00H;选择第一个数码管MOVDX,P8255COUTDX,ALMOVAL,CLLEABX,LEDXLATMOVDX,P8255AOUTDX,ALCALLDELAYMOVAL,08H ;选择第二个数码管MOVDX,P8255COUTDX,ALMOVAL,CHLEABX,LEDXLATMOVDX,P8255AOUTDX,ALCALLDELAYRETDISPENDP; 延迟程序 DELAYPROCPUSHCXMOVCX,1000HLOOP$POPCXRETDELAYENDP; 查表 LED:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管显示所要查的表CODEENDSENDSTART4.3.2子程序入口参数和出口参数说明(1) 显示子程序中,个位数和十位数的入口参数分别是CL和CH(2) 延时子程序中,循环的次数的入口参数CX5.系统调试及分析5.1硬件调试5.118253的调试将CLK0接150HZ的频率源,OUTO接CLK1,OUT1接CLK2。CLK0,OUTO,OUT1,OUT2分别接L1,L2,L3,L4,观测这四个LED灯亮灭情况,如果8253运行正常的话,L2灯亮灭的频率是1HZ,每当L1亮灭10后,L3灯灭一次,每当L1亮灭100次后(L2灯亮灭10次)。5.128255的调试通过初始化8255控制字,设定C口高4位为输入口,C口低4位为输出口,将C口低4位接到开关K0〜K3,C口高四位接到二极管L1〜L3,运行后观察L1〜L4灯的情况。5.13数码管的调试将数码管的七个输入接口LED-A〜LED-DP接到开关K0~K7,LED-SA〜LED-SB接地,选择第一个数码管,将K0~K7分别置为00111111,观察数码管的显示情况。5・2软件调试在ADEK88平台上调试已经编好的程序,检查语法错误,再通过单步调试检查程序的逻辑错误。5・3运行结果及分析检查好通讯口后,运行程序。将K1置为高电平,开始累积外部事件,计数器从0开始计数,当将K1置为低电平后,外部事件触发无效,暂停计数。当将K0置为高电平后,数码管置零。将K0置为低电平后,清零无效,计数器继续计数。数码管运行正常,从0开始计数到99后,计数器自动清零。5.4故障原因分析5.4.1査表错误(1) 程序通过查表给数码管赋值,在没有写PUSHCS,POPDS之前,试用XLAT查表时,经常出现错误。(2) 在使用存储单元暂存脉冲个数时,当需要查表时,使用MOVAL,SAVE时,值会改变,造成查表错误。5.4.2数码管显示有余辉由于是通过3-8译码器选择数码管,每次只能显示一个数码管,没有加延时程序时,数码管会显示会出现余辉,看不清楚。5.4.3进位错误(1) 由于方案一采用定时器1和定时器2来计数,初始化设定定时器1和2工作在方式0,每当定时器1的计数值减到0时,OUT1产生一个脉冲,定时器2的计数值减一,当个位数码管显示9时,十位数码管进位加1,造成错误。比如当数码管为08时,当下一个外部事件触发时,数码管为19,再一个外部事件时,数码管为10。(2) 由于定时器工作在方式0,每次计数器从初值9减为0时,需要从新装入初值,需要两个脉冲,所以每次当个位数码管为0时,都需要两次外部事件触发,计数器才能计数。6•心得体会微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论