八路温度采集显示系统设计(6)

2019-01-18 18:50

八路温度采集与显示系统设计

图3.10 AT89C51单片机的三总线引脚结构

①地址总线(AB)

地址总线由P0口提供低8位A0~A7,P2口提供高8位A8~A15。 由于P0口还要用作数据总线口,只能分时用作地址线,故P0口输出的低8位地址数据必须用锁存器锁存。锁存器的锁存控制信号为引脚ALE输出的控制信号。在ALE的下降沿将P0口输出的地址数据锁存。

P2口具有输出锁存功能,故不需外加锁存器。P0、P2口在系统扩展中用作地

址线后便不能作为一般I/O口使用。地址总线宽度为16位,故可寻址范围为

216=64KB。

②数据总线(DB)

数据总线由P0口提供,其宽度为8位。

P0口为三态双向口,是应用系统中使用最频繁的通道。所有单片机与外部交换

的数据、指令、信息,除少数可直接通过P1口外,全部通过P0口传送。

数据总线要连到多个连接的外围芯片上,而在同一时间里,只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,由地址线控制各个芯片的片选线来选择。

③控制总线(CB)

控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。

系统扩展用控制线有ALE、错误!未找到引用源。、错误!未找到引用源。、错误!未找到引用源。和错误!未找到引用源。。

(2)单片机的系统并行扩展能力

由于地址总线宽度为16位,在片外可扩展的存储器最大容量为64KB,地址为

0000H~FFFFH。片外数据存储器与程序存储器的操作使用不同的指令和控制信

号,允许二者地址重复,故片外可扩展的数据存储器与程序存储器分别为64KB。

片外数据存储器与片内数据存储器的操作指令不同(片外RAM只能用MOVX指令),二者地址允许重复,亦即外部扩展数据存储器地址可从0000H开始。

为了配置外围设备而需要扩展的I/O口,可与片外数据存储器统一编制,不再另外提供地址线。

因此,在应用系统要大量配置外围设备以及扩展较多I/O口时,要占去大量的

RAM地址。

3.6.2 扩展片外程序存储器的总线功能和操作时序

23

八路温度采集与显示系统设计

错误!未找到引用源。是片外、片内程序存储器选择信号,为输入引脚,低电平有效。当错误!未找到引用源。=0时,单片机从片外取指;当错误!未找到

引用源。=1时,从片内取指,正常运行时,该引脚不能浮空。根据错误!未找到

引用源。连接电平的不同,单片机有两种取指过程:

(1)当错误!未找到引用源。=1时,AT89C51单片机所有片内程序存储器有效。

当程序计数器PC运行于片内程序存储器的寻址范围内(对AT89C51为

0000H~0FFFFH)时,P0口、P2口及错误!未找到引用源。线没有信号输出;

当程序计数器PC的值超出上述范围时,才有信号输出。

[39]

(2)当错误!未找到引用源。=0时,AT89C51单片机所有片内程序存储器无效,只能访问片外程序存储器。伴随着单片机复位,P0口、P2口及错误!未找到引用源。线均有信号输出。

AT89C51单片机访问片外程序存储器时,使用如下信号: P0口:输出程序存储器的低8位地址和8位数据。

ALE线:输出线,在ALE的下降沿时,P0上出现稳定的程序存储器的低8

位地址输出,因而可用ALE信号锁存这低8位地址。

P2口:在整个取指周期中,输出稳定的程序存储器的高8位地址。由于P2口

本身已具有锁存功能,因而无需再加锁存器。

错误!未找到引用源。线:输出线,低电平有效。在ALE的下降沿之后,错误!未找到引用源。由高变为低,此时片外程序存储器的内容(指令字)送到P0口(数据总线),然后在错误!未找到引用源。的上升沿将指令字送入指令寄存器。因此,错误!未找到引用源。信号作为片外程序存储器的读选通信号。

单片机片外程序存储器读取指操作的时序,如图3.11所示。

24

八路温度采集与显示系统设计

S1XTAL1ALES2S3S4S5S6S1S2S3S4S5S6PSENP2PCHPCLPCLP0PCL指令PCL指令PCL指令PCL图3.11 区指操作时序(无片外存储器时)

3.6.3 扩展片外程序存储器的硬件电路

根据图3.11所示的取指操作时序,本系统采用的芯片为8K×8位的2764,其容量足够以后扩展功能时用。作为低8位地址锁存用的地址锁存器,从时序上看,应该是在ALE的下降沿或者在低电平时锁存P0口来的地址,本系统采用8D锁存器74HC373。AT89C51单片机的扩展片外程序存储器的硬件电路如图3.12所示[1]。

U10P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7347813141718111D0D1D2D3D4D5D6D7OELE74HC373Q0Q1Q2Q3Q4Q5Q6Q7256912151619QA0QA1QA2QA3QA4QA5QA6QA7U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.718XTAL2ALE9RSTU11QA010QA19QA28QA37QA46QA55QA64QA732524212322022271A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPP2764D0D1D2D3D4D5D6D71112131516171819P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALE293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图3.12 扩展片外程序存储器的硬件

25

八路温度采集与显示系统设计

4 八路温度采集显示系统软件设计

本系统在Keil中用C语言进行编程,来控制单片机对数据进行处理,控制液晶显用四行来显示八路温度,每一行显示两路,显示温度值精确到小数点后一位,并用程序将数据传送到上位机,当温度值超限时,控制单片机报警端口的高低电平变换,其总的程序流程图如图4.1所示。

26

八路温度采集与显示系统设计

开始定义各端口功能及全局变量初始化LM041L跳过对ROM编码的搜索向上位机发送作者信息初始化DS18B20启动温度转换匹配64位ROM地址读出温度值液晶显示器匹配八路温度值向上位机发送八路温度值温度值是否超限?NY报警灯闪亮蜂鸣器鸣响温度值是否超限?YN返回

图4.1 总的系统程序流程图

4.1 温度采集模块软件设计

4.1.1 DS18B20ROM操作指令

一旦总线控制器探测到一个存在的脉冲,它就可以发出5个ROM命令中的任一个。所有ROM操作指令都是8位长度。ROM的操作命令如表4.1所示[2]。

27


八路温度采集显示系统设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:杭州市建设委员会关于印发杭州市建筑施工企业项目经理管理办法

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

马上注册会员

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