基于PC的分频器设计与实现 下载本文

内容发布更新时间 : 2024/7/1 8:34:29星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于PC的分频器设计与实现

作者:许东生

来源:《电脑知识与技术·学术交流》2008年第14期

摘要:简要设计和实现了基于PC的分频器,从硬件的选配,软件的编写和调试。讨论了硬件的选择原则,并实现了最优化,从软件的编写角度考虑内存的应用情况,有助于大规模工程的实现。

关键词:PC;分频器;最优化

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)14-20950-02

1 分频器的设计和实现思路

分频器就是能够将输入频率通过器件的作用在输出时变为原来的N分之一。要想能够达到分频目的,需要一个能够将数值输入的接口,设计要求中需要的是从二进制逻辑开关;同时要考虑到硬件芯片接口问题,在这里我们用8255来完成。利用8253芯片在方式3下的工作特点完成硬件分频。

在整个分频过程中,同样要求有一个输出接口,设计要求中需要的是由LED完成。这个输出数值是分频器的分频系数。所以本设计中需要至少两个可编程接口芯片,输入频率需要产生,输出频率需要显示。 1.1 解决问题的方法及思路 1.1.1 硬件部分

首先用8253来实现分频器的作用。通过对计算机可编程芯片的学习,知道可编程定时器/计时器8253工作在方式3时,可以产生方波,用来计算分频的结果非常方便。

然后是输入和输出接口芯片的选择,我们采用8255来完成这个工作。8255是一种通用的可编程并行I/O接口芯片。8255既可以作为输入接口,同时也可以作为输出接口,这两种功能可以同时进行。

分频系数由二进制逻辑开关输入,通过逻辑开关的闭合状态表示“1”,“0”。然后将其作为二进制数来表示十六进制数。本设计中这个数值作为8253的分频系数值。

龙源期刊网 http://www.qikan.com.cn

分频系数的输出由LED显示器来完成显示,LED显示器在实验箱上有提供,为六位。本设计中只要有四位显示器即可,由单独的四位显示器芯片来完成工作。

8253需要一个频率发生器为之提供固定的脉冲频率从而进行分频工作。这个任务由频率发生器74LS16完成,它可以产生固定的脉冲频率,并可以改变发生脉冲频率的值。也就是说它可以将脉冲频率限制在2MHZ以内,这样就达到了本设计的第一个要求。 1.1.2 软件部分

对8253的8253的工作方式设定为方式3,用计数器0和计数器2进行工作。计数器0工作方式控制字为:36H。通道2用来控制二极管,所以初始化计数器2的工作方式控制字为:0b6h。

初始化8255,c口输入,a,b口输出,b口段选,a口位选。C口作为输入口,与逻辑开关相连,接收开关表示的数值输入。PA、PB口作为输出口,它们的分别于LED的位码和段选码相连,这样8255的方式选择控制字为:10001001B。

2 硬件设计

2.1 选择芯片8253A

8253A在本设计中起分频器的作用,即将固定频率分成其1/N输出。接受频率发生器发出的固有频率,将其按照输入的分频系数进行分频,把结果传到8255。

8253A是一种可编程的定时器/计数器芯片,它可用于事件计数、分频、方波脉冲发生、定时器等各个有用的方面。它分频工作的功能是这样的:CLK引脚获得初始频率,此时若GATE为高电平,十六位计数初值寄存器中的数据装入计数执行单元CE中,它对CLK脉冲计数,每出现一个CLK脉冲,计数对执行单元CE的值减小。当减为0时,通过OUT输出指示信号,表明计数执行单元已为0。这时OUT输入的信号频率是CLK频率的N分之一。这样就达到了分频的目的。8253A有5种工作方式:门脉冲控制时钟输入,用门脉冲重新启动计数器,用门脉冲停止计数器工作,单次计数,循环计数等。 2.2 LED显示器

LED在本设计中作为分频系数的输出观察,需要以段位码判断各位输入的二进制数,并且做相应输出,从而验证设计中的接口电路是否成功。

龙源期刊网 http://www.qikan.com.cn

LED是一种当处加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是由7段或8段(含有小数点,本实验中使用此种)笔画显示器组合一个字符而形成的。当段组合发亮时,便可以显示某一数码或字符。7段代码的各位用作a—g和DP的输入。LED分为共阴极和共阳极。两种情况下的字符编码不一样。 2.3 选择芯片8255A

8255A在本设计中起并行I/O传输接口,主要起到接受人为输入的分频系数并将其传至8253,待8253分频成功后再将分频频率传出,使得L1小灯作出相应闪烁;并且将输入的分频系数通过内部连接的74L244传给LED,使得分频系数在LED显示器上显示出来。采用8255A的方式0。C口作为输入口,与逻辑开关相连,接收开关表示的数值输入。PA、PB口作为输出口,它们的分别于LED的位码和段选码相连。

8255A是一种通用的可编程并行I/O接口芯片,又称“可编程外设接口芯片”。它是为8086/8088而设计的可以通过程序来改变其功能。本设计中8255A设置为方式0,在方式0下,CPU可以采用无条件读/写方式与8255A交换数据。C口作为输入口,与逻辑开关相连,接收开关表示的数值输入。PB口的八位作为LED的段选码,以显示是何数值输入。同时这个数据送给8253A作为其的分频系数。 2.4 逻辑开关

逻辑电平开关在本设计中作为输入器件,通过其输入的二进制数值来表示分频系数。它与8255A的PC口相连。由于需要输入16位二进制数,但是实验设备只有8位二进制逻辑开关,所谓16位二进制数的输入需要经过4次逐位输入才能完成,具体方法如下:当8位二进制开关1~8中的第8位为1时,允许输入当第7和第6为分别为00、01、10、11时各代表16位二进制数的低8位的低4位、低8位的高4位、高8位的低4位、高8位的高4位,这将当第8位为0第5为置1,就使得刚才输入数据打入8253,成为分频系数。

逻辑开关可作为数值的输入器件,也可以表示逻辑值。拨上时为+5V,拨下时为0V,分别代表“1”和“0”。其中5~8位需要做一些设定,简单的说第8位做输入控制,6和7位做位码选择,而第5位就做打入指令。 2.5 硬件总逻辑图及其说明

8255的D7—D0与8086的AD19—AD0通过数据总线收发器相连接,它的A1、A0与8086的A2、A1通过地址锁存器连接。由地址译码器的CS0连接其CS端。上述3位控制端作为8255的选择工作信号。8086的读/写控制信号也与8255的WR、RD相连接。8255的PA口八位与LED的8位段码相连,而位码则与PC的相连,273的片选与CS1相连。8255的PC口全部8位与8位二进制开关相连。8253的数据线、控制线、地址线、读/写控制线的连接与