矿大 硬件课程设计 可编程频率计概述Word文档格式.docx
- 文档编号:17006248
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:25
- 大小:506.75KB
矿大 硬件课程设计 可编程频率计概述Word文档格式.docx
《矿大 硬件课程设计 可编程频率计概述Word文档格式.docx》由会员分享,可在线阅读,更多相关《矿大 硬件课程设计 可编程频率计概述Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
8.1实验线路图及结果……………………………………………………………………………21
8.2实验结论………………………………………………………………………………………21
8.3实验体会………………………………………………………………………………………21
九、参考资料…………………………………………………………………………………..…21
摘要
可编程频率计是一个生活中常用到的简单器件,也是数字电路的一个典型应用。
现实中,它一般与其他器件一起混合使用,会产生一定延时,造成一定误差,频率计是直接用来显示被测信号频率的一种测量装置。
可以测量出信号的周期性规律。
经过改装,可以测量脉冲宽度,做成脉宽测量仪;
可以测量电容做成电容测量仪;
在电路中增加传感器,还可以做成脉搏仪、计价器等。
因此数字频率计在测量物理量方面应用广泛。
本设计可以灵敏的测量出方波的频率。
若经过原理的移植,能对其他多种物理量进行测量。
具有体积小、可靠性高、功耗低的特点。
频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。
整个系统由8253及8255构成,整个系统非常精简,而且具有灵活的现场可更改性。
在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。
该频率计具有高速、精确、可靠和现场可编程等优点。
关键词:
可编程82538255可编程并行接口
1.1设计背景
作为计算机专业必须开展计算机硬件课程设计,对于提高同学们的汇编能力,计算机动手实践能力是很有必要的,该门课程的学习有助于加强同学们对计算机底层的硬件构造的理解,汇编语言的使用相对于我们以后要长期使用的高级语言有着自己的优势,它的效率更高,当应用在一些小的移动设备上的时候,汇编能体现其效率的优势,而我们以后要用的比如java、c++语言,其内部经编译后同样会产生跟汇编等价的结构形式。
1.2设计概要
本系统通过键盘控制8253输入信号,然后,通过8255A芯片,使数字量显示指示灯上,并循环这个过程,以反映输入信号的变化。
2.1实验目的
1)复习8255芯片、8253芯片工作原理及使用方法;
2)锻炼小规模电路设计能力;
3)提高分析、解决问题的能力
2.2具体需求
本温度控制系统要求能将8253产生的输出频率以闪烁的形式在指示灯上显示出来。
并通过三个按键控制不同的频率输出,实现不同的闪烁。
主要硬件:
8253芯片、8255芯片、LED显示灯
2.3硬件需求
8253芯片:
实现频率的产生及输出。
8255芯片:
控制将数据显示出来。
LED灯:
实时显示闪烁(即频率)。
3、硬件框图与说明
3.1可编程外围接口芯片8255A
图3-18255的引脚
图3-28255的内部结构
8255A是一种通用的可编程并行I/O接口芯片,它是为Intel系列微处理器设计配套电路,也可用于其他微处理器系统中。
通过对它编程,芯片可工作于不同的工作方式。
在微型计算机系统中,用8255A做接口时,通常不需要附加外部逻辑电路就可直接为CPU与外设之间提供数据通道,因此得到了极为广泛的应用。
其外部引脚图和内部结构如上图所示。
8255是并行的I/0接口芯片,内部有三个相互独立的8位数据端口。
8255实现了外设与8086之间的数据传输。
8255的A口工作于方式0,作为输出口,其PA0~PA7分别与LCD液晶显示屏端口相连,PC5~PC7接相应端口,工作在并行模式。
3.1.1功能分析
1)8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
方式0、方式1和方式2;
B口可以工作在方式0或方式1下;
C口通常作为联络信号使用。
8255的工作只有当片选CS有效时才能进行工作,而控制逻辑端口实现对其他端口的控制。
当8255工作在方式0时,即基本输入输出方式时,可将三个数据端口划分为四个独立的部分:
A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位的输入输出口,各个端口都可独立地用作输入或输出。
2)数据总线缓冲器是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的,它可与系统的DB直接相连,实现CPU和8255A之间的信息传送;
读写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方向。
3)8255引脚:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'
A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1.A1=1时,控制寄存器被选择.
3.1.2基本工作方式
(1)工作方式0:
这是8255A中各端口的基本输入/输出方式。
它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。
(2)工作方式1:
被称作选通输入/输出方式。
在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。
(3)工作方式2:
被称作带选通的双向传送方式。
8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。
其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。
3.28253芯片
图3-38253芯片引脚图
8253是可编程计数器/定时器,内部有三个计数器,分别为计数器0、计数器1和计数器2,一个时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器。
8253的通道:
8253有3个通道,分别为通道0、通道1和通道2。
8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。
8253的各种工作方式如下:
(1)方式0:
计数结束则中断
工作方式0被称为计数结束中断方式。
当任一通道被定义为工作方式0时,OUT输出为低电平;
若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUT仍保持低电平,然后计数器开始减“1”计数,直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT端输出的高电平一直维持到下次再写入计数值为止。
在工作方式0情况下,门控信号GATE用来控制减“1”计数操作是否进行。
当GATE=1时,允许减“1”计数;
GATE=0时,禁止减“1”计数;
计数值将保持GATE有效时的数值不变,待GATE重新有效后,减“1”计数继续进行。
显然,利用工作方式0既可完成计数功能,也可完成定时功能。
当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLK端输入,由它对计数器进行减“1”计数,直到计数值为0,此刻OUT输出正跳变,表示计数次数到。
当用作定时器时,应把根据要求定时的时间和CLK的周期计算出定时系数,预置到计数器中。
从CLK,输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数,定时时间从写入计数值开始,到计数值计到“0”为止,这时OUT输出正跳变,表示定时时间到。
有一点需要说明,任一通道工作在方式0情况下,计数器初值一次有效,经过一次计数或定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值。
(2)方式1:
单脉冲发生器
工作方式1被称作可编程单脉冲发生器。
进入这种工作方式,CPU装入计数值n后OUT输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。
与此同时,OUT输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。
如果在减“1”计数过程中,GATE由高电平跳变为低电乎,这并不影响计数过程,仍继续计数;
但若重新遇到GATE的上升沿,则从初值开始重新计数,其效果会使输出的单脉冲加宽,如教材图9-22(b)中的第2个单脉冲。
这种工作方式下,计数值也是一次有效,每输入一次计数值,只产生一个负极性单脉冲。
(3)方式2:
速率波发生器
工作方式2被称作速率波发生器。
进入这种工作方式,OUT输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT保持为高电平不变;
待计数值减到“1”和“0”之间,OUT将输出宽度为一个CLK周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLK周期,重复周期为CLK周期的n倍。
如果在减“1”计数过程中,GATE变为无效(输入0电平),则暂停减“1”计数,待GATE恢复有效后,从初值n开始重新计数。
这样会改变输出脉冲的速率。
如果在操作过程中要求改变输出脉冲的速率,CPU可在任何时候,重新写人新的计数值,它不会影响正在进行的减“1”计数过程,而是从下一个计数操作用期开始按新的计数值改变输出脉冲的速率。
(4)方式3:
方波发生器
工作方式3被称作方波发生器。
任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:
1的方波。
进入工作方式3,OUT输出低电平,装入计数值后,OUT立即跳变为高电平。
如果当GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。
这时OUT端输出的周期为n×
CLK周期,占空比为1:
1的方波序列;
若n为奇数,则OUT端输出周期为n×
CLK周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。
如果在操作过程中,GATE变为无效,则暂停减“1”计数过程,直到GATE再次有效,重新从初值n开始减“l”计数。
如果要求改变输出方波的速率,则CPU可在任何时候重新装入新的计数初值n,并从下一个计数操作周期开始改变输出方波的速率。
(5)方式4:
软件触发方式计数
工作方式4被称作软件触发方式。
进入工作方式4,OUT输出高电平。
装入计数值n后,如果GATE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUT输出宽度为一个CLK周期的负脉冲。
由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。
如果在操作的过程中,GATE变为无效,则停止减“1”计数,到GATE再次有效时,重新从初值开始减“1”计数。
这种工作方式下,当计数值计到“0”后,系统将自动重新装入计数值n,但并不开始计数,一定要等到由GATE端引入的正跳沿,才会开始进行减“1”计数,因此这是一种完全由GATE端引入的触发信号控制下的计数或定时功能。
如果由CLK输入的是一定频率的时钟脉冲,那么可完成定时功能,定时时间从GATE上升沿开始,到OUT端输出负脉冲结束。
如果从CLK端输入的是要求计数的事件,则可完成计数功能,计数过程从GATE上升沿开始,到OUT输出负脉冲结束。
GATE可由外部电路或控制现场产生,故硬件触发方式由此而得名。
如果需要改变计数初值,CPU可在任何时候用输出指令装入新的计数初值m,它将不影响正在进行的操作过程,而是到下一个计数操作周期才会按新的计数值进行操作。
从上述各工作方式可看出,GATE作为各通道的门控信号,对于各种不同的工作方式,它所起的作用各不相同。
在8253的应用中,必须正确使用GATE信号,才能保证各通道的正常操作。
图3-48253的控制字:
4.1原理简介
可编程频率计的设计,首先要有频率产生的问题,由此引入8253,由不同的初值,可以模拟产生几种简单的方波频率,再以键盘连接8255控制器输出不同的频率实现灯的不同周期的闪烁。
4.2流程设计
1)系统程序模块:
主程序——8253赋初值子程序,键盘程序
2)系统流程图:
图4-1一个频率闪烁实现的过程
图4-2小键盘的值
4.3电路原理图
5.1模块流程图
六、源程序清单与注释
A8255EQU288H
C8255EQU28AH
K8255EQU28BH
IO8253AEQU280H
IO8253BEQU281H
IO8253CEQU283H
IO_ADDRESSEQU280H
DATASEGMENT
TABLEDB077H,07BH,07DH,07EH,0B7H,OBBH,0BDH,0BEH,0D7H,0DBH
DB0DDH,0DEH,0E7H,0EBH,0EDH,0EEH
HZ_TANDW0A3B0H,0A3B1H,0A3B2H,0A3B3H,0A3B4H,0A3B5H,0A3B6H
DW0A3B7H,0A3B8H,0A3B9H,0A3CBH,0A3CDH,0A3C8H,0A3FAH
HZ_ADRDB?
KEY_INDB0H
DATAENDS
STACKSEGMENTSTACK
DW50DUP(0)
TOP_STACLABELWORD
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVDX,283H
MOVAL,10000010B
OUTDX,AL
CALLSHIXIAN1
CALLCLEAR
SHIXIAN1PROC
MOVDX,IO8253C
MOVAL,36H
MOVAX,50
MOVDX,IO8253A
MOVAL,AH
MOVAL,76H
OUTDX,AL
MOVDX,IO8253B
MOVAH,4CH
RET
SHIXIAN1ENDP
START1:
CALLKEY
ADDBX,BX
MOVBYTEPTRHZ_ADR,90H
CALLLCD_DISP
A:
CALLKEY
CMPBX,000FH
JZB
ADDBX,BX
JMPA
B:
CALLCLEAR
JMPSTART1
MOVDX,K8255
MOVAL,83H
KEYPROC
MAIN_KEY:
MOVAL,00H
MOVDX,A8255
OUTDX,AL
KEY_LOOP:
MOVDX,C8255
MOVAL,0FH
OUTDX,AL
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZKEY_LOOP
PUSHAX
MOVAX,A8255
CALLSHIXIAN2
MOVAH,AL
MOVDX,K8255
MOVAL,8AH
MOVDX,C8255
MOVAL,AH
ORAL,0F0H
INAL,DX:
读列扫描值
ANDAL,0F0H
CMPAL,0F0H
JZKEY_LOOP;
未发现有键按下则转
PUSHAX
MOVAX,A8255
CALLSHIXIAN2
MOVSI,OFFSETTABLE1;
键盘扫描码表首址
MOVCX,0
KEY_TONEXT:
CMPAX,[SI];
(COL,ROW)每个字比较
JZKEY_FINDKEY
INCCX
JZKEY_LOOP;
未找到对应扫描码
ADDSI,2
JMPKEY_TONEXT
KEY_FINDKEY:
MOVBYTEPTRKEY_IN,DL
KEY_WAITUP:
MOVDX,K8255
MOVAL,83H
MOVDX,C8255
MOVAL,0FH
INAL,DX;
读行扫描值
JNZKEY_WAITUP;
按键未抬起
MOVAX,A8255
CALLSHIXIAN2
MOVAL,10000000B
MOVBX,0
Y1:
CMPBX,CX
JZY3
INCBX
RORAL,1
JMPY1
Y3
MOVDX,288H
MOVDX,1000H
MOVBX,0
T0:
JZT1
ADDDX,1000H
JMPT0
T1:
MOVBX,DX
ALARM:
MOVDX,283H
MOVAL,00110111B
MOVDX,280H
MOVAX,BX
MOVAL,AH
MOVAL,01110001B
MOVDX,281H
MOVAL,20H
MOVDX,289H
E3:
ANDAL,80H
CMPAL,80H
JNEE3
JMPMAIN_KEY
KEYENDP
SHIXIAN2PROC
MOVAX,1000
POPAX
SHIXIAN2ENDP
CLEARPROC
MOVAL,01H
MOVDX,280H
CALLCMD_SETUP
MOVAL,0CH
OU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矿大 硬件课程设计 可编程频率计概述 硬件 课程设计 可编程 频率计 概述