测控系统综合设计参考题目(5)

2019-08-30 21:56

d_Next1:

MOV DjCount,#11110111B d_Next2: MOV A,DjCount RL A

MOV DjCount,A ;回存 ANL P1,A POP PSW POP ACC RETI

DjH: DB 76,82,89,95,100,106,110,115,119,123,12…… DjL: DB 0,236,86,73,212,0,214,96,163,165 ……

DISP: ;显示程序 POP PSW POP ACC …… RETI

BitTab: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH

DISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH END 3).程序分析

本程序主要由键盘程序、显示器程序、步进电机驱动程序三部份组成,主程序首先初始化各变量,将显示器的高3位消隐,步进电机驱动的各引脚均输出高电平,然后调用键盘程序,并作判断,如果有键按下,则调用键盘处理程序,否则直接转下一步。下一步是将当前的转速值转换为BCD码,送入显示缓冲区;接着判断StartEnd这个位变量,是“1”还是“0”,如果是“1”,则开启定时器T1,否则关闭定时器T1,为防止关闭时某一相线圈长期通电,因此,在关闭定时器T1时,将P1.0~P1.3均置高。至此,主程序的工作即结束。这里为简便起见,这里没有做高位“0”消隐的工作,即如果速度为10转/分,则显示值“010”,读者可

20

以自行加入相关的代码来处理这一工作。

步进电机的驱动工作是在定时器T1的中断服务程序中实现的,由前述分析,每次的定时时间到达以后,需要将P1.0~P1.3依次接通,程度中用了一个变量DjCntr来实现这一功能,在主程序初始化时,该变量被赋予初值11110111B,进入到定时中断以后,将该变量取出送ACC累加器,并在累加器中进行左移,这样,该数值就变为1110 1111,然后将该数与P1相“与”,此时,P1.4即输出低电平,第二次进入中断时,先将该数取反,成为 0001 0000,然后将该数与P1相“或”,这样,P1.4即输出高电平,关断了相应的线圈,然后将该数重新取出,并作左移,即 1110,1111右移成为1101 1111,将该数与P1相“与”,这样P1.5即输出低电平,依次类推,P1.7~P1.4即循环输出低电平。当这一数据变为0111 1111后,需要作适当的改动,将数据重新变回 1111 0111,进行第二次循环,相关代码,请读者自行分析。

定时时间又是如何确定的呢?这里用的是查表的方法,首先用Excel计算得出在每一种转速下的TH值和TL值,然后,分别放入DjH和DjL表中,在进入T1中断程序之后,将速度值变量Speed送入累加器ACC,然后减去基数25,使其基数从0开始计数,然后分别查表,送入TH1和TL1,实现重置定时初值的目的。

课题八 使用单片机制作多路输入电压表

在工业控制和智能化仪表中,常由单片机进行实时控制及实时数据处理。单片机所加工的信息都是数字量,而被控制或测量对象的有关参量往往是连续变化的模拟量,如温度、速度、压力等等,与此对应的电信号是模拟电信号。单片机要处理这种信号,首先必须将模拟量转换成数字量,这一转换过程就是模—数转换,实现模/数转换的设备称为A/D转

换器或ADC。

AD转换器是单片机应用中常见的接口,从事单片机开发的人员通常都会遇到使用AD

的要求,本文通过一个典型的例子来学习一种常用AD转换器的用法。

1、模数转换简介

A/D转换电路种类很多,在选择模/数转换器时,主要考虑以下的一些技术指标:转换时间和转换频率、量化误差与分辨率、转换精度、接口形式等。目前,较为流行的 AD转

21

换器件有很多都采用了串行接口,这使得这类芯片与单片机的硬件连接非常简单,而软件编程相对要复杂一些,下面,我们以TI公司的TLC1543为例,制作一个多路输入的电压

表,了解一下这类芯片的使用特点。

2、TLC1543特性简介

TLC1543是由TI公司开发的开关电容式AD转换器,该芯片具有如下的一些特点: 10位精度、11通道、三种内建的自测模式、提供EOC(转换完成)信号等。该芯片

与单片机的接口采用串行接口方式,引线很少,与单片机连接简单。

图1是TLC1543的引脚示意图,其中A0~A10是11路输入,Vcc和GND分别是电源引脚,REF+和REF-分别是参考电源的正负引脚,使用时一般将REF-接到系统的地,达到一点接地的要求,以减少干扰。其余的引脚是TLC1543与CPU的接口,其中CS为片选端,如不需选片,可直接接地。I/O Clock是芯片的时钟端,Adress是地址选择端,Data Out是数据输出端,这三根引脚分别接到CPU的三个I/O端即可。EOC用于指示一次AD转换已完成,CPU可以读取数据,该引脚是低电平有效,根据需要,该引脚可接入CPU的中断引脚,一旦数据转换完成,向CPU提出中断请求;此外,也可将该引脚接入一个普通的I/O引脚,CPU通过查询该引脚的状态来了解当前的状态,甚至该引脚也可以不接,

在CPU向TLC1543发出转换命令后,过一段固定的时间去读取数据即可。

3、单片机与TLC1543芯片的接口

图2使用TLC1543制作的多路输入电压表的电路图,从图中可以看出,这里使用了TLC1543作为基准电压源,将REF-直接接地,P1.0、P1.1、P1.2、P1.3和P1.4分别与EOC、时钟、地址、数据、片选端分别相连。制作时,请参考表1进制连线。注意电容E1和C1一定要用,E1可用10u/16V电解,C1可用0.1u CBB电容,安装时尽量接近20脚和第

10脚。输入端可根所需要,接入相应的信号。

22

编程的要求是在六位数码管的后四位数码管上轮流显示TLC1543各通道的测量值,

同时用十六进制表示的通道号显示在第1位数码管上。

图2 用单片机制作多路输入电压表

4、TLC1543驱动程序编写

由于采用串行接口,在硬件电路简单的同时,带来了软件编制的复杂性,初学单片机的入门者很难掌握这类芯片的编程方法,这给此类芯片的应用带来一定的限制。为解决这一问题,我们在实际应用该芯片的基础上写出了该芯片的驱动程序,有了驱动程序,使用者不必再关心TLC1543数据手册中的时序图之类不易懂的部份,只要了解清楚驱动程序的用法,即可使用该芯片。

TLC1543共有11条输入通道,这11条通道的编号从0~10,读取时,根据编号来获得想应通道的数据,此外,内部还有三条用于测试的通道,分别是接: 、 和 其通道编号分别是11、12和13. 1).驱动程序 ;以下定义各引脚

ADCLK EQU P1.1 ;时钟 ADaddr EQU P1.2 ;地址引脚 ADDout EQU P1.3 ;数据端 ADCS EQU P1.4 ;片选端 命令:ADConver

23

参数:r2 通道号,转换前存入 转换结后数据在r0r1中,高位在前 资源占用:r0,r1,r7,A ADConver: CLR ADClk CLR ADCS MOV A,R2 RLC A ;送出地址信号 MOV R7,#4 C_L1: RLC A

MOV ADAddr,C SETB ADClk NOP NOP NOP NOP CLR ADClk DJNZ R7,C_L1 ;补6个脉冲 MOV R7,#6 C_L2: SETB ADClk NOP NOP NOP NOP CLR ADClk DJNZ R7,C_L2

24


测控系统综合设计参考题目(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:概率论与数理统计期末试卷及答案(最新6)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: