基于单片机的数字电压表的设计_第1页
基于单片机的数字电压表的设计_第2页
基于单片机的数字电压表的设计_第3页
基于单片机的数字电压表的设计_第4页
基于单片机的数字电压表的设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、毕毕 业业 论论 文文题目:基于单片机的数字电压表的设计基于单片机的数字电压表的设计 专 业 学 号 学 生 姓 名 指 导 教 师 论论 文文 完完 成成 日日 期期 年年 月月基于单片机的数字电压表的设计基于单片机的数字电压表的设计摘摘 要要本设计主要研究的是以 at89c51 单片机为核心的电压测量系统,该系统能够在单片机的控制下完成对电压信号采集,能够根据采样值进行量程自动转换,并且测量结果可通过四个数码管显示出来。整个系统的设计完成了硬件电路的设计及软件程序的编写,通过最终硬件电路的调试及软件程序的仿真,使该系统能够在要求的条件下达到正常的测量及显示功能。在整个系统的设计过程中,主要

2、采用了模块化的设计方法。关键词:关键词: at89c51 单片机;数字电压表;模块化designdesign ofof thethe digitaldigital voltmetervoltmeter basedbased onon thethe mcumcuabstractabstract this paper introduces an achievement of a voltage measure system based on the at89c51 mcu. this system can accomplish the signal sampling of voltage, and

3、 change range automatically according to the signal sampled. the result can be displayed through numeral rube of four places.in this design, the hardware circuit and software programming are both realized at the judge of hardware circuit and imitation of software program. this system can fulfill the

4、 function of measure and displaying under the demanded conditions. over the designing of the whole system, the method of modularity is used.key words: at89c51 mcu; digital voltmeter; modularity 目目 录录绪论绪论.1第一篇第一篇 硬件部分的设计硬件部分的设计.11. 数据采集部分的设计.21.1 交流信号和直流信号的采样.22. 量程自动转换电路的设计.43. 模数转换单元的设计.54. 控制电路的设计

5、.74.1总体概况.7一.主要功能.7二.内部结构框图.8三.外部引脚说明.94.2 单片机在系统中的应用.115. 显示部分的设计.125.1键盘显示8279芯片.125.2 8279的组成和基本工作原理.135.3 8279引脚及功能.155.4 8279的工作方式及命令字格式.17第二篇第二篇 软件系统的设计软件系统的设计.231. mcs-51 单片机汇编语言.232. 主程序的设计.233. 子程序的设计.253.1采样程序的设计.253.2 量程处理程序的设计.263.21 采样及其处理程序.263.22 计算部分的设计.283.23 显示部分的软件设计.293.3 超量程处理.2

6、94. 系统程序清单.29设计总结设计总结.41参考文献参考文献.41绪论绪论在电气测量中,电压是一个很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测试仪器,很多电量或非电量经变化后都用可数字电压表完成测试。因此,数字电压表被广泛地应用于科研和生产测试中。本文将介绍一种以单片机为核心的电压测量仪表,它能够测量电压量,能够自动进行量程选择,并且测量结果能够通过数码管显示,从而具有一定的智能性。本文将就这一系统的硬件电路部分和软件程序部分分别作以介绍。在硬件部分,本文就系统的各个组成模块的原理作了详细的介绍。另外,在每一模块电路中

7、都对元器件的选择作了简单的介绍,其中包括有关数值的计算和分析。在软件部分,详细阐述了各个模块电路的软件设计方法和设计中的细节。第一第一篇篇 硬件硬件部分的设计部分的设计分析本设计,可以看出其主要任务就是对电压信号能够自动选择合适的量程进行测量并显示。本设计要求采用单片机进行控制,由于单片机的有效输入输出信号均为数字信号,而对于整个系统的前向通道有效信号均应为模拟信号,所以在设计过程中必然包括模拟量转换为数字量单元的设计。根据要求本设计中采用的是 v/f 转换电路。对于 v/f 转换电路,要使其转换具有良好的线性度和精度必须使其输入电压变化范围较小。而本系统中要求测量的电压范围是 0500v,无

8、法满足 v/f 转换的要求。所以,前向模拟通道的设计要包括量程转换部分,即对大信号进行分压变小,对小信号进行放大,显然,这样不仅能满足 v/f转换电路的要求,而且也能有效的防止超量程测量。另外,前向通道的设计还应包括对模拟信号的采集部分。本设计框图如图 1-1 所示:图图1-11-1 设计总框图设计总框图在以后的各节中,将分别介绍各个部分的设计。1.1. 数据采集部分的设计数据采集部分的设计根据本系统的要求所采集的信号应为电压信号,同时电压信号还应有交流和直流之分。所以在设计中应该具有相应的处理电路,使最终的信号得以统一。对于交流信号可以采用交/直流变换的方法变为直流,这样最终进入模/数转换单

9、元(即 v/f 转换单元)的模拟信号就应该为直流电压信号。对于信号变换部分应该注意的是所采样的信号种类应能够通知控制部分(单片机) ,以使控制部分做出相应的计算处理,只有这样才能保证最终的显示结果的正确性。1.11.1 交流信号和直流信交流信号和直流信号的采样号的采样本设计中所采用的交直流转换电路如图 1-2 所示:分析此电路,可以看出此电路集精密全波整流、量程切换、信号过零比较于一体。cd4053 是三组单刀双掷集成模拟开关,开关 x 承担了全波整流的任务,其控制端 a 受控于比较器的输出电平。图中 u10 工作于同相放大状态,运放 u11 工作于反相放大状态,比较器的输入引自 u10 的放

10、大输出信号,这有利于提高比较器对信号的灵敏度。电路输入交流信号的正半波时,同相连接的比较器 u9 输出高电平,模拟开关 x 接通运放 u10 输出信号送后续的模拟信号与数字信号的转换单元;电路输入交流信号的负半波时,比较器 u9 输出低电平,模拟开关 x 接通反相器 u11 的输出信号送后续的模拟信号与数字信号的转换单 v/f mcu 元。由此完成了由 u9 过零跃变的准数字量控制的全波整流过程。这个准数字信号就可以用来通知控制部分所进行测量的是交流信号还是直流信号,以使控制部分进行相应的计算和显示。cd4053 的另两组模拟开关 y 和 z 承担了三个量程的切换任务,它们的控制端 b 和 c

11、通过来自单片机的量程切换命令。23765184u9lm31132184u11ane553232184u10ane5532p1.2p1.3p1.4r300.5kr176kr205kvccr1610k-vccgndvccr310.5kx012x113y02y11z05z13inh6a11b10c9vee7x14y15z4cd4053r185kr101kr91kr195k500r71ufc71krvcc500r8gnd99kr69kr5q0e5ve5图图 1-21-2 交直流转换电路交直流转换电路另外,图 1-2 电路能同样有效地用于直流信号的前置处理。电路的输入端无论接入的是直流正信号还是直流负信

12、号,输出的幅值都是 0 伏以上的直流正信号,这对于后续电路的设计尤其适用,而此时可以从比较器输出的电平高低获知是正输入还是负输入。特别重要的示,直流信号和交流信号具有同样的传输增益,给交直流参数的测量软件同一处理提供了极大的方便。显然,此电路满足本设计的要求,而且它集量程转换于一体,为量程转换部分的设计提供了方便,节省了硬件资源。2.2. 量程自动转换电路的设计量程自动转换电路的设计在仪表的设计过程中,量程转换的设计是相当重要的。所设计的系统应该具有自动转换量程的功能,并且能够自动判断是否超量程测量。这样才能够为后续的模数转换单元提供适当的输入电压,使其转换具有良好的精度和线性度。在本设计中模

13、数转换单元选择的是电压/频率转换电路,对于 v/f 转换电路,其输入电压选择 05v。这样,经过量程转换后的电压范围就应该为 05v。因为本系统的输入电压范围是 0500v,故我们可以选择1/100 作为其最大电压的量程档,500v 经过 1/100 分压后降为 5v,恰好可以满足 v/f 转换的要求。在本设计中,对于电压信号设置了五个量程,即 1/100 档,1/10 档,1 档,10 档,100 档。1/100 档和 1/10 档由分压电路来完成,它们是用来测量较大电压的。而1 档,10 档,100 档则是应用放大电路来完成的,它们则是用来测量较小的电压的。在本设计中,1 档,10 档,1

14、00 档可由交直流转换部分的电路来实现,见图 1-4。此电路中的多路选择开关 cd4053 可以用来选择放大倍数,在该电路中分别设置了1,10 和100 的放大倍数。具体选择多大的放大倍数可以通过单片机的引脚 p1.3 和 p1.4 电平来控制。本设计中 cd4053 各个开关的导通与单片机引脚的关系见表 1-1 所示。表表 1-11-1:cd4053cd4053 与单片机引脚的关系与单片机引脚的关系 c(p1.4) b(p1.3)y 选通情况 z 选通情况 0 0 yy0 0 1 yy1 zz0 1 0 yy0 1 1 yy1 zz1本设计中 1/100 和 1/10 分压比的选择也由单片机

15、引脚控制多路选择开关来实现。由于本系统要求的电压测量范围是 0500v,所以多路开关的选择应特别注意其耐压值。在本设计中采用的是 max4602,因为它的耐压值可达到两千伏左右,故可以应用在本系统中。分压比的选择由单片机的 p1.0 和 p1.1 来控制。电路图见图 1-3。900kr390kr210kr1x013x114x215x312x41x55x62x74inh6a11b10c9vee7x3max4602gndin(v)gndp1.0p1.1图图 1-3 量程转换部分的分压电路量程转换部分的分压电路由上述分析可知量程的转换由两部分(即分压和放大)共同完成,所以在量程的选择时需注意两部分的

16、关系,即选用分压时放大电路的放大倍数要选为 1,选用放大时信号要直接进来而不经过分压。3.3. 模数转换模数转换单元的设计单元的设计单片机对模拟信号的读取通常是采用 a/d 转换方式,这一方法对输出阻抗低,惰性强,变化缓慢,传输距离长的信号,采用 a/d 转换的抗干扰性能就比较差。对于不需要较快检测速度的信号,如果采用 v/f 变换器代替原有的 a/d 转换器,把电压信号转换成与之对应的频率信号(f=kv),由单片机 cpu 计数器在采样周期内对频率脉冲进行计数,采样时,cpu 发出计数指令,定时时间一到,计数停止,从读到的计数值乘以一定的系数,就可以得到相应电压值。本设计中,采用的是 lm3

17、31 转换芯片(v/f)将模拟信号转变为相应的频率信号,具体电路如图 1-4 所示:图图 1-41-4 v/fv/f 转换电路转换电路lm331 是单片集成芯片,在 v/f 转换器中,它是 lm31 系列中的一种,它作为一种简单廉价的电路很适用于模/数转换。它使用了新的温度补偿能隙基准电路,在整个工作温度范围内和低到 4.0v 电源电压下都有较高的精度,最大线性度达 0.01%,6 个数量级的动态范围,即满量程的频率范围为 1hz 100khz。其数字脉冲重复率正比于模拟输入电压的幅值。这类器件的高精度,高线性度,低温移及单调性的组合所提供的性能是其它技术难以实现的。逐次近似 a/d 转换器定

18、期进行“抽样” ,因此易受噪声尖峰的影响,而电压频率转换器的输出端一直在进行积分,因此能对噪声或变化的输入信号进行平滑,特别适合于噪声工作环境。对 v/f 变换,整个电路都是线性放大。对 lm331,根据 v/f 变换的原理,其输出频率与输入电压的关系满足下面的公式:f=(v/2.09)(r/r )(1/r )(1/c ) (1-3)insltt由公式 1-3 可以看出输出频率 f 与输入电压 v成正比。in对 v/f 转换,满度频率 f 大,闸门周期短,转换快,分辨率高,但同时线性度下降。因此在选择参数 r、r 、r 、c 时格外要注意。本设计中的输入电压 vi 在 05v(即量sltt程转

19、换后的电压均为 05v)内变化,输出 f 选择在 010khz 内变化,既可满足转换率又可满足分辨率的要求。在本设计中,为了消除干扰,在输入信号端加一个低通滤波器,c=1uf,r=100k,低通滤波的截止频率为:in7rc5ref2gnd4vcc8out1thr6freq3lm311lm311out6+v8gnd5c3nc1nc4a2en76n1376n137r2710kr2810kr45kr3562kr2662kr2222kr232kr215.1kt0c61ufr311k-vccvccvccgndc50.05ufc80.01ufgndr43100kq3q0vddr305kr2412kvccf

20、=1/(2rc)1.59hz图 1-4 中,选择 r (r26)为 62k,r (r22)为 5.1k,c (c5)为 0.01uf,r 为 r24+r30,ltts仔细调节 r30 即可满足输入为 5v 时,输出 f 为 10khz。lm331 由 7 脚输入电压,由 5 脚输入偏置电流,5 脚最大保持电压为 7vs,2 脚的参考电压为 1.9v。流入 c6 的 iaver=i(1.1 r c )f。f 输出期间(t=1.1 r c ),c14 充电到ttttv ,此后,i=0,f 无输出,c14 从 v 放电到 v,而后比较器工作,开始另一个循环,整个xxin过程始终保持电荷平衡。lm33

21、1 的输出接光电耦合器 6n137,6n137 采用射极输出,不改变输出相位,集电极开路,内部有脉冲整形电路,其输出可直接接单片机的引脚,而不会改变信号的频率输出。使用光电耦合器,一方面可以抑制较大的随机干扰信号进入单片机, (6n137 最大可抑制 3000v 的噪声干扰) ,减少进入单片机的干扰信号修改单片机内部寄存器的数值或发生死机的现象;另一方面可以避免数字电路,模拟电路的共地,因而能有效的抑制由于数字电路,模拟电路的共地带来的地电位脉冲引起的数据抖动现象。4.4. 控制电路控制电路的设计的设计4.14.1 总体概况总体概况一一. .主要功主要功能能mcs-51 系列单片机是美国 in

22、tel 公司在 1980 年推出的高性能 8 位单片微型计算机,比原来的 mcs-48 系列结构更为先进,功能增强,它包括 51 和 52 两个子系列。在 51 子系列中,主要有 8031、8051、8751 三种机型,他们的指令系统与芯片引脚完全兼容,仅片内 rom 有所不同。51 子系列的主要功能为: 8 位 cpu。 片内带振荡器,振荡频率 fosc 范围为 1.212mhz;可有时钟输出。 128 个字节的片内数据存储器。 4k 字节的片内程序存储器(8031 无) 。 程序存储器的寻址范围为 64k 字节。 片外数据存储器的寻址范围为 64k 字节。 21 个字节专用寄存器。 4 个

23、 8 位并行 i/o 接口:p0、p1、p2、p3。 1 个全双工串行 i/o 接口,可多机通信。 2 个 16 位定时器/计数器。 中断系统有 5 个中断源,可编程为两个优先级。 111 条指令,含乘法指令和除法指令。 有强的位寻址、位处理能力。 片内采用单总线结构。 用单一+5v 电源。二二. .内部结构框图内部结构框图mcs-51 系列单片机的内部结构框图如下图 1-5 所示:图图通道0驱动器通道2驱动器ram地址锁存器ram通道0锁存器通道2锁存器romb寄存器程序地址寄存器缓冲器pc递增器程序计数器dptr指针vccgndp1.0p1.7堆栈指针spacctmp2psw通道3锁存器通

24、道1锁存器通道1驱动器通道3驱动器tmp1中断、串行口和定时器逻辑振荡器p3.0p3.7rsteaalepsenxtal2xtal1alu(+5v)指令寄存定时逻辑指令译码1-51-5 mcs-51mcs-51 系列单片机的内部结构框图系列单片机的内部结构框图 由图可大致看到:它含运算器、控制器、片内存储器、4 个 i/o接口、串行接口、定时器/计数器、中断系统、振荡器等功能部件。图中 sp 是堆栈指针寄存器,栈区占用了片内 ram 的部分单元;未见通用寄存器(工作寄存器) ,因单片机片内有存储器,与访问工作寄存器一样方便,所以就把一定数量的片内 ram 字节划作工作寄存器区;psw 是程序状

25、态字寄存器,简称程序状态字,相当于其他计算机的标志寄存器;dptr 是数据指针寄存器,在访问片外 ram、片外 rom、甚至扩展 i/o 接口时特别有用;b 寄存器又称乘法寄存器,它与累加器 a 协同工作,可进行乘法操作和除法操作。三三. .外部引脚说明外部引脚说明mcs-51 系列单片机芯片有 40 个引脚。用 hmos 工艺制造的芯片采用双列直插式封装,见下图 1-6。低功耗的、采用 chmos 工艺制造的机型(在型号中间加一“c”字作为识别,如 80c31、80c51、87c51)也有用方封装结构的。p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7rst vrxd p3.

26、0txd p3.1int0 p3.2int1 p3.3t0 p3.4t1 p3.5wr p3.6rd p3.7xtalxtalvpd21ssvccp0.0p0.1p0.2p0.3p0.4p0.5p0.6p0.7ea/vale/progpsenp2.7p2.5p2.4p2.3p2.2p2.1p2.0ddp2.6mcs51系列 单片机12345678910111213141516171819204039383736353433323130292827262524232221(8031)(8051)图图 1-6 mcs-51 系列单片机芯片引脚图系列单片机芯片引脚图现将各引脚分别说明如下:1.主电源

27、引脚vcc:接+5v 电源正端。vss:接+5v 电源地端。2.外接晶体引脚xtal1:片内反相放大器输入端。xtal2:片内反相放大器输出端。外接晶体时,xtal1 与 xtal2 各接晶体的一端,借外接晶体与片内反相放大器构成振荡器。3.输入/输出引脚p0.0p0.7:p0 口的 8 个引脚。在不接片外存储器与不扩展 i/o 接口时,可作为准双向输入/输出接口。在接有片外存储器或扩展 i/o 接口时,p0 口分时复用为低 8 位地址总线和双向数据总线。p1.0p1.7:p1 口的 8 个引脚。可作为准双向 i/o 接口使用。p2.0p2.7:p2 口的 8 个引脚。一般可作为准双向 i/o

28、 接口;在接有片外存储器或扩展 i/o 接口且寻址范围超过 256 个字节时,p2 口用为高 8 位地址总线。p3.0p3.7:p3 口的 8 个引脚。除作为准双向 i/o 接口使用外,还具有第二功能,见表 2-2。表表 2-2: 输入输入/输出引脚输出引脚引脚第二功能p3.0rxd (串行输入口)p3.1txd (串行输出口)p3.2 (外部中断 0 请求输入端)int0p3.3 (外部中断 1 请求输入端)int1p3.4t0 (定时器/计数器 0 计数脉冲输入端)p3.5t1 (定时器/计数器 1 计数脉冲输入端)p3.6 (片外数据存储器写选通信号输入端)wrp3.7 (片外数据存储器

29、读选通信号输入端)rd4.控制端ale/:地址锁存有效信号输出端。在访问片外程序存储器期间,每机器周期prog该信号出现两次,其下降沿用于控制锁存 p0 口输出的低 8 位地址。:片外程序存储器读选通信号输出端,或称片外取指信号输出端。在向片外程psen序存储器读取指令或常数期间,每个机器周期该信号两次有效(低电平) ,以通过数据总线p0 口读回指令或常数。在访问片外数据存储器期间,信号将不出现。psenrst/vpd:ret 写全是 reset,是复位端。单片机的振荡器工作时,该引脚上出现持续两个机器周期的高电平就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,

30、该引脚上高电平必须持续 10ms 以上才能保证有效复位。vcc 掉电期间,该引脚如接备用电源 vpd(+5v0.5v),可用于保存片内 ram 中的数据。当 vcc 下降到某规定值以下,vpd 便向片内 ram 供电。/vdd:片外程序存储器选用端。该引脚有效(低电平)时只选用片外程序存储器,ea否则计算机上电或复位后先选用片内程序存储器。综上所述,对 mcs-51 系列单片机的引脚可归纳出下列两点:单片机功能多,引脚少,许多引脚都具有第二功能。单片机对外呈三总线形式。由 p2、p0 组成 16 位地址总线;由 p0 分时复用为数据总线;由 ale、rst、与 p3 口中的、t0、t1、pse

31、neaint0int1wr共 10 个引脚组成控制总线。因是 16 位地址线,使片外存储器的寻址范围达到 64k 字rd节。4.24.2 单片机单片机在系统中的应用在系统中的应用在整个系统中,单片机的控制功能为:采用 t0 口对 v/f 转换之后的频率进行计数,采用 t1 口进行定时,采用 p1.0、p1.1、p1.3 和 p1.4 进行量程选择,采用 p1.2 口判断所测信号是交流信号还是直流信号,采用 p0.0 口作为显示电路的清零端,采用串行输入端 rxd作为移位寄存器的输入端,采用串行输出端 txd 作为移位脉冲,电路如图 1-7 所示:ea/vpp31xtal119xtal218rs

32、t9p3.7(rd)17p3.6(wr)16p3.2(int0)12p3.3(int1)13p3.4(t0)14p3.5(t1)15p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78(ad0)p0.039(ad1)p0.138(ad2)p0.237(ad3)p0.336(ad4)p0.435(ad5)p0.534(ad6)p0.633(ad7)p0.732(a8)p2.021(a9)p2.122(a10)p2.223(a11)p2.324(a12)p2.425(a13)p2.526(a14)p2.627(a15)p2.728psen29ale/prog30(txd

33、)p3.111(rxd)p3.010gnd20vcc40at89c51p0p1p2p3p4p5t0txdrxdp0.0dp1dp2dp3510kr1510kr2510kr3p0.0dp1dp2dp33kr73kr63kr53kr4vdd10kr2922ufc3vdd33pfc233pfc1y112mat89c51p1.3图图 1-71-7 控制部分电路图控制部分电路图系统的控制过程为:t1 口定时,t0 口采样,定时时间到,采样结束,通过单片机进行计算并选择适当的量程,然后再进行采样、计算、显示。5.5. 显示显示部分部分的设计的设计5.15.1 键盘显示键盘显示 82798279 芯片芯片图

34、图 1-81-8 显示电路显示电路8279 是一种可编程的键盘/显示器接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279 内部有键盘 fifo(先进先出堆栈)/传感器,双重功能的 8864bram,键盘控制部分可控制 8864 个按键或控制 88 阵列方式的传感器。该芯片能自动消除键抖动并具有双键锁定保护功能。显示 ram 容量为 168,即显示器最大配置可达 16 位 led 数码显示。5.25.2 82798279 的组成和基本工作原理的组成和基本工作原理图 1-9 为 8279 内部结构框图。数据缓冲器i/o 控制fifo/传感器 ram的状态寄存器键

35、盘去抖动与控制88fifo/传感器 ram控制与定时寄存器显示地址寄存器168 显示 ram显示寄存器定时与控制扫描计数器回复outa03 outb03 bdsl03rl07时钟复位d0d7a0rdwrcsirq图图 1-9 8279 内部结构框图内部结构框图由图可知,8279 由下列电路组成:1)数据缓冲器和 i/o 控制 数据缓存器为双向缓冲器,连接内、外总线,用于传送cpu 和 8279 之间的命令或数据。i/o 控制线用于 cpu 对 8279 内部各种寄存器、缓冲器读写数据和读写状态命令的控制。是片选信号,=0 时 8279 被选通,cpu 才能对其进行读、写操作;、cscsrd是来

36、自 cpu 的读、写控制信号;a0 用于区别信息的特性,a01,表示数据线输入的wr是指令,输出的是状态字;a00,表示输入输出的是数据。2)控制与定时寄存器及定时控制 控制与定时寄存器用来寄存键盘和显示器的工作方式,以及由 cpu 编程的其他操作方式。这些寄存器一旦接收并锁存 cpu 送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。定时控制包含基本的计数链,首级计数器是一个可编程的 n 分频计数器。n 可以在cntl/stbshift231 之间由软件编程,以便从外部时钟 clk 分频得到内部所需要的 100khz 时钟。然后再经过分频,为键盘扫描提供适当的逐行扫描频率和显示时

37、间。3)扫描计数器 扫描计数器由两种工作方式:编码方式和译码方式。编码工作方式时,计数器作二进制计数,4 位计数状态从扫描线 sl0sl3 输出。外接4/16 译码器,能提供 16 位 led 的字位控制;外接 3/8 译码器,能为行列式键盘提供 8 列扫描信号,与 rl0rl7 构成 88 键盘的行列扫描。译码方式工作时,扫描计数器的最低二位被译码后,从 sl0sl3 输出一位低电平,可接 4 位 led 或 48 键盘。4)回复缓冲器、键盘去抖动及控制、回复缓冲器用来接收并锁存来自回复线rl0rl7 的 8 个回复信号。(1)在键盘工作方式中,回复线为行列式键盘的行(列)输入线。在逐行逐列

38、扫描时,回复线用来搜寻每一行(列)中闭合的键。当某一键闭合时,去抖电路被置位,延时 10ms后,再检验该键是否继续闭合,并将该键的地址和附加的移位、控制状态一起形成键盘数据,送入 8279 内部 fifo ram(先入先出存储器) 。键盘数据格式如表 3-3 所示:表表 3-33-3 键盘数据格式键盘数据格式d7d6d5d4d3d2d1d0控制移位扫描回复控制(d7)和移位(d6)的状态由 cntl、shift 端外接的两个附加按键决定;扫描(d5、d4、d3)来自扫描计数器,是闭合键所在列的编号,由 sl0sl3 确定;回复(d2、d1、d0)是闭合键所在行的编号,由 rl0rl7 确定。(

39、2)在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器 ram(即fifo 存储器) 。(3)在选通输入方式工作时,回复线的内容在 cntl/stb 信号的脉冲上升沿被送入fifo ram。5)fifo/传感器 ram 及其状态寄存器 fifo/传感器 ram 是一个双重功能的 88 位ram。在键盘或选通方式工作时,它是 fifo ram,其写入或读出遵循先入先出的原则。fifo状态寄存器用来存放 fifo ram 的状态,如 ram 是满还是空,其中存有多少数据,是否操作出错等。若 fifo ram 不空,例如已存有闭合键的键值,状态逻辑将产生 irq=1 信号,向cpu 申请

40、中断。在传感器矩阵方式工作时,这个存储器又是传感器存储器,它存放着传感器矩阵中的每一个传感器状态。在此方式中,若检索出传感器的变化,irq 信号变为高电平,向 cpu申请中断。6)显示 ram 和显示地址寄存器 显示 ram 用来存储显示数据,容量为 168 位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为 a、b 两组,outa30 和 outb30 可以单独送数,也可以组成一个 8 位的字。显示寄存器的输出与显示扫描配合,不断从显示 ram 中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存 cpu

41、读/写显示 ram 的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。5.35.3 82798279 引脚及功能引脚及功能8279 是具有 40 个引脚的双列直插式封装的芯片,其引脚及功能如图 1-10 所示。下面介绍各引脚功能。1)数据线d0d7 是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送 cpu 与8279 之间的数据和命令。2)地址线0 选中 8279,当 a01 为命令字及状态字地址。csa00 为片内数据地址,故 8279 芯片占用两个端口地址。3)控制线8279 有较多的控制线。(1)clk:时钟输入线8279 所需时钟频率为 100khz,该频

42、率通常由 8051 单片机 ale 端分频得来。ale 的频率为单片机系统主频的 1/6,再由指令送入分频系数,从而得到 100khz 的 8279 时钟频率。(2)irq:中断请求输出线,高电平有效。 vccrl1rl0cntl/stbshiftsl3sl2sl1sl0outb0outb1outb2outb3outa0outa1outa2outa3bdcsa0rl2rl3clkirqrl4rl5rl6rl7resetrdwrd0d1d2d3d4d5d6d7gnd8279irqd0d7rd wrcsa0resetclkrl7rl0shiftcntl/stbsl3sl10outa30outb30

43、bd884441 402 393 384 375 366 357 348 339 32 3110 8279 3011 29 2812 2713 2614 2515 2416 17 2318 2219 20 21cpu 接口键盘数据数据显示图图 1-10 8279 引脚及功能引脚及功能 (a)管脚配置管脚配置; (b)引脚功能引脚功能(a)(b) (3)、:读、写输入控制线。rdwr(4)sl0sl3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。(5)rl0rl7:回复输入线,它们是键盘或传感器矩阵的信号输入线。(6)shift:来自外部键盘或传感器矩阵的输入信号,它是 8279

44、键盘数据的次高位即d6 位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。(7)cntl/stb:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(d7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把rl0rl7 的数据存入 fifo ram 中。(8)outa0outa3:通常作为显示信号的高 4 位输出线。(9)outb0outb3:通常作为显示信号的低 4 位输出线。(10):显示熄灭输出线,低电平有效。当0 时将显示全熄灭。bdbd5.45.4 82798279 的工作方式及的工作方式及命令字格式命令字格式一、8279 的工

45、作方式8279 有三种工作方式:键盘方式、显示方式和传感器方式。1)键盘工作方式8279 在键盘方式工作时可设置为双键互锁方式和 n 键巡回方式。双键互锁方式:若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入 fifo ram 中。n 键巡回方式:一次按下任意个键均可被识别,以按键被扫描顺序把键值存入 fifo ram 中。2)显示方式8279 的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示 ram 则可由显示器显示出来,因此显示数据写入 ram 的顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端 1 位(最高位)开始,以

46、后显示的字符逐个向右顺序排列。右端入口方式即显示位置从显示器最右端 1 位(最低位)开始,以后显示的字符逐个向左顺序排列。3)传感器方式传感器方式是把传感器的开关状态送入传感器 ram 中。当 cpu 对传感器矩阵扫描时,一旦发现传感器状态发生变化就发出中断请求(irq 置“1” ) ,中断响应后转入中断处理程序。二、8279 的命令字及其格式8279 的各种工作方式都要通过对命令寄存器的设置来实现。8279 共有 8 种命令,通过这些命令设置工作寄存器,来选择各种工作方式。命令寄存器共 8 位,其格式如下:d7 d6 d5d4 d3 d2 d1 d0 命令特征位(3 位) 有关命令内容(5

47、位)8279 的一条命令由两大部分组成,一部分为命令特征,代表某一类命令,由命令寄存器高 3 位 d7d5 决定。d7d5 三位的状态可组合出 8 种形式,分别对应 8 种命令,故称为命令特征位。另一部分为命令的具体内容,由 d4d0 决定。每一种特征所代表的命令如表 1-4 所示。表表 1-4:1-4: 82798279 命令特征表命令特征表d7 d6 d5代表的命令种类0 0 0键盘/显示命令0 0 1时钟编程命令0 1 0读 fifo/传感器 ram 命令0 1 1读显示器 ram 命令1 0 0写显示命令1 0 1显示禁止/熄灭命令1 1 0消除命令1 1 1结束中断/出错方式设置命令

48、下面详细说明各种命令中,d4d0 各位的设置方法,以便确定各种命令字。1)键盘/显示命令特征位 d7d5000d4,d3 两位用来设定 4 种显示方式,d2d0 三位用以设定 8 种键盘/显示扫描方式,分别如表 1-5 和表 1-6 所示。由于显示是硬件扫描显示,因此显示方式种规定了扫描显示的位数(8 位、16 位)和第 1 个显示的字符位置(最左端或最右端) 。表表 1-5:1-5: 显示方式显示方式d4 d3显示方式0 08 个字符显示,左端入口方式0 116 个字符显示,左端入口方式1 08 个字符显示,右端入口方式1 116 个字符显示,右端入口方式表表 1-6:1-6: 键盘键盘/

49、/显示扫描方式显示扫描方式d2 d1 d0键盘/显示扫描方式0 0 0编码扫描键盘,双键锁定0 0 1译码扫描键盘,双键锁定0 1 0编码扫描键盘,n 键轮回0 1 1译码扫描键盘,n 键轮回1 0 0编码扫描传感器矩阵1 0 1译码扫描传感器矩阵1 1 0选通输入,编码显示扫描1 1 1选通输入,译码显示扫描表 1-6 中所谓编码扫描指扫描代码直接由扫描线 sl0sl3 输出,每次只有 1 位是低电平(4 选 1) 。所谓译码扫描,扫描代码经 sl0sl3 外接译码器输出。由于键盘最大 8864 个键,由 sl0sl2 接 38 译码器,译码器的 8 位输出作为键盘扫描输出线(列线) ,rl

50、0rl7为输入线(行线) 。8279 最多驱动 16 位显示器,故可由 sl0sl3 接一个 416 译码器,译码器 16 位输出为显示扫描输出线(16 选 1) ,决定第几位显示。显示字段码由outa0outa3 和 outb0outb3 输出。以上表 1-4、表 1-5、表 1-6 三个表相互组合可得到各种键盘/显示命令。2)时钟编程命令一般单片机的 ale 端接 8279 的 clk 端,但 ale 端输出的脉冲是主机频率的 1/6,而8279 工作只需 100khz 的时钟脉冲,利用分频系数可把 clk 端输入脉冲再分频以达到产生100khz 脉冲之目的。分频系数是由时钟编程命令输入。

51、由表 1-4 可见时钟编程命令特征位 d7d5001。d4d0 用来设定分频系数。3)读 fifo/传感器 ram 命令特征位 d7d5010。d2d0 为 8279 中 fifo 及传感器 ram 的首地址。d3 无用。d4 控制 ram 地址自动加 1 位:d41 时 cpu 读完一个数据,ram 地址自动加 1,准备读下一个单元数据;d40 时 cpu 读完一个数据后,地址不变。4)读显示 ram 命令此命令用来读显示器 ram,其格式如下:特征位 d7d5011。d41ram 地址自动加 1,d40 不加 1。d3d0 为显示 ram 中的地址。5)写显示 ram 命令特征位 d7d5

52、100。d4 是地址自动加 1 控制,d41 地址自动加 1,d40 地址不加1。d3d0 是欲写入的 ram 地址,若连续写入则表示 ram 首地址。命令格式同读显示 ram。6)显示器禁止写入/熄灭命令特征位 d7d5101。d4 为无用位,可设为“1”或“0” 。d3 为禁止 a 组显示 ram 写入,d31 禁止。d2 为禁止 b 组显示 ram 写入,d21 禁止。d1 为 a 组显示熄灭控制,d11 时熄灭,d10 恢复显示。d0 为 b 组显示熄灭控制,d01 时熄灭,d00 恢复显示。利用该命令可以控制 a、b 两组显示器,哪组继续显示,哪组被熄灭。7)清除命令此命令用以清除显

53、示 ram 和 fifo 中的内容。特征位 d7d5110。d0 为总清除特征位,d01 把显示 ram 和 fifo 全可清除。d1=1清除 fifo 状态,使中断输出线复位,传感器 ram 的读出地址清 0。d4d2 设定清除显示ram 的方式,如表 1-7 所示。表表 1-7:1-7: 清除显示清除显示 ramram 方式方式d4d3 d2消除方式0 将全部显示 ram 清为 01 0将显示 ram 置为 20h(a 组0010 b 组0000)11 1将显示 ram 置为 ffh0d00 不清除d11 仍按上述方式清除8)结束中断/出错方式设置命令特征位 d7d5111。d41 时(其

54、 d3d0 位任意)有两种不同作用。(1)在传感器方式,用此命令结束传感器 ram 的中断请求。因为在传感器工作方式时,每当传感器状态发生变化,扫描电路自动将传感器状态写入传感器 ram,同时发出中断申请即将 irq 置高电平,并禁止再写入传感器 ram。中断响应后,从传感器 ram 读走数据进行中断处理,但中断标志 irq 的撤除分两种情况。若读 ram地址自动加 1 标志位为“0” ,中断响应后 irq 自动变低,撤销中断申请;若读 ram 地址自动加 1 标志位为“1” ,中断响应后 irq 不能自动变低,必须通过结束中断命令来撤销中断请求。(2)在设定为键盘扫描 n 键轮回方式时作为特

55、定错误方式设置命令。在键盘扫描 n 键轮回工作方式,又给 8279 写入结束中断/错误方式命令,则 8279 将以一种特定的错误方式工作,即在 8279 消颤周期内,如果发现多个按键同时按下,则将fifo 状态字中错误特征位置“1” ,并发出中断请求阻止写入 fifo ram。根据上述 8 种命令可以确定 8279 的工作方式。在 8279 初始化时把各种命令送入命令地址口,根据其特征位可以把命令存入相应的命令寄存器,执行程序时 8279 能自动寻址相应的命令寄存器。三、8279 的状态字及其格式状态字显示出 8279 的工作状态。状态字和 8 种命令字共用 1 个地址口。当 a01 时,从

56、8279 命令/状态口地址读出的是状态字。状态字格式如表 1-8 所示:表表 1-81-8 状态字格式状态字格式d7d71 表示显示无效,此时不能对显示 ram 写入d6d61 表示至少有 1 个键闭合;在特殊错误方式时有多键同时按下错误d5d51 表示 fiforam 已满,再输入 1 个字则溢出d4d41 表示 fifo 中已空,无数据可读d3d31 表示 fiforam 中数据已满d2d0fifo ram 中数据个数状态字主要用于键盘和选通工作方式,以指示 fiforam 中的字符数及有无错误发生。四、8279 数据输入输出格式对 8279 输入/输出数据不仅要先确定数据地址口,而且数据

57、存放也要按一定格式,其格式在键盘和传感器方式有所不同。1) 键盘扫描方式数据输入格式键盘的行号、列号及控制键位置如表 1-9 所示:表表 1-9:1-9: 键盘的行号、列号及控制键位置键盘的行号、列号及控制键位置d7控制键 cntl 状态d6控制键 shift 状态d5d3被按键所在列号(由 sl0sl2 状态确定)d2d0被按键所在行号(由 rl0rl7 状态确定)2) 传感器方式及选通方式数据输入格式此种方式 8 位输入数据为 rl0rl7 的状态。格式如表 1-10 所示:表表 1-10: 传感器方式及选通方式数据输入格式传感器方式及选通方式数据输入格式d7d6d5d4d3d2d1d0r

58、l7rl6rl5rl4rl3rl2rl1rl0五、8279 内部译码和外部译码方式8279 的内、外译码由键盘/显示命令字的最低位 d0 选择决定。d01 选择内部译码,也称为编码方式,该方式 sl0sl3 每时刻只能有一位为低电平。8279 只能接 4 位显示器和 48 矩阵式键盘。d00 选择外部译码方式,sl0sl3 为计数分频式波形输出,显示方式可外接 416 译码器驱动 16 位显示器。键盘方式按 38 译码器,构成 88 矩阵式键盘。第二篇第二篇 软件软件系统的设计系统的设计硬件电路和软件程序是组成一个系统不可缺少的两部分,二者的正确与否将直接影响整个程序的可实现性。在上一章中已经

59、将整个系统的硬件部分作了介绍,在这一章中将就系统的软件部分加以分析说明1.1. mcs-51mcs-51 单片机单片机汇编语言汇编语言由于本系统所需要完成的软件程序不是很大,并且数据的计算也不是很繁琐,因此本系统软件将采用汇编语言进行设计。 2.2. 主程序的设计主程序的设计分析本设计,可知其软件所要完成的功能是:对 v/f 转换后的频率信号进行采样,并通过计算比较选择适当的量程,然后再次进行采样,通过 f/v 转换使其转换为最初模拟信号的值,最后显示,以后将再次进行采样比较重复上述操作。 10ms 10ms 1/10 100ms 9 1 10010ms 100ms 9 100ms 9100

60、yn.1/10 1/100 ynnyny图图 2-12-1 主程序流程图主程序流程图: :由上述分析可知,主程序的功能应为选择量程并进行量程的处理。本设计的主程序流程图如图 2-1 所示。本设计中通过 10ms 的采样值进行量程比较,由于本设计中采用的 v/f 转换为010khz,所以 10ms 对应的最大采样值应为 100hz。设计中单片机引脚与量程选择以及电压范围的关系见表 2-1。从表 2-1 中可以看出,每一量程下限对应的频率均应为 10hz,在系统的设计中,为了使量程转换的临界值得以测量准确,可选择下限频率为 9hz。表表 2-1:2-1: 量程与控制引脚的电平关系量程与控制引脚的电

温馨提示

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

评论

0/150

提交评论