1引言 (1)1.1 单片机的应用背景 (1)2 总体设计方案 (2)2.1 功能简介 (2)2.2 设计思路 (2)2.3 芯片器材 (3)3 硬件设计 (3)3.1 AT89C51 (3)3.1.1 AT98C51引脚图 (3)3.1.2 AT89C51结构特点 (5)3.2 温度获取 (5) (7)3.3 时钟电路 (8)3.4 温度显示电路 (8)3.5报警电路 (10) (10)4 程序设计 (10)4.1 程序流程图 (11)4.2 初始化子程序 (11)4.3 读子程序 (12)4.4 写子程序 (13)4.5 数据处理子程序 (13)4.6 显示子程序 (15)4.7报警子程序 (17)5 实验仿真 (18) (18)6 总结 (19)参考文献 (20)附录 (21)1引言1.1 单片机的应用背景目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通信与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表、医疗机械了。
世面上主要的单片机类型有Motorola 单片机、Microchip 单片机、东芝单片机、8051单片机、Atmel 单片机等。
此次课设中用到的是ATMEL公司,下面着重介绍一下ATMEL公司的单片机。
ATMEL 公司是世界上著名的高性能低功耗非易失性存储器和数字集成电路的一流半导体制造公司。
ATMEL 公司最令人注目的是它的EEPROM 电可擦除技术闪速存储器技术和质量高可靠性的生产技术。
在CMOS 器件生产领域中,ATMEL 的先进设计水平优秀的生产工艺及封装技术一直处于世界的领先地位。
这些技术用于单片机生产,使单片机也具有优秀的品质在结构性能和功能等方面都有明显的优势,ATMEL 公司的单片机是目前世界上一种独具特色。
而性能卓越的单片机它在计算机外部设备通讯设备自动化工业控制宇航设备仪器仪表和各种消费类产品中都有着广泛的应用前景。
其生产的AT90系列是增强型RISC内载FLASH单片机,通常称为A VR系列。
AT91M系列是基于ARM7TDMI 嵌入式处理器的ATMEL 16/32 微处理器系列中的一个新成员,该处理器用高密度的16 位指令集实现了高效的32 位RISC 结构且功耗很低。
另外ATMAL的增强型51系列单片机目前在市场上仍然十分流行,其中AT89S51十分活跃。
当今社会,人们在追求高质量的生活,所以生活中离不开单片机,根据国家权威统计显示,目前我国的单片机容量达3亿片,且每年以大约20%的速度增长,但在世界市场我国的占有率还不到1%。
沿海地区尤其像电子产品高度发达的深圳大部分单片机应用更是广泛,这种发展趋势也不断向内地辐射,因此,学好单片机有很重要的意义。
2 总体设计方案2.1 功能简介8位LED数码管直接显示DS18B20所测量的温度,超出-50~110℃范围时喇叭报警,并且对应的发光二极管开始闪烁,在温度范围内时喇叭停止报警并且数码管显示其温度,测量精度为0.5℃。
2.2 设计思路AT89C51作为数字温度计的核心器件,是一种带4K字节FLASH存储器,具有低电压、高性能特性的8位微处理器。
该器件是INTEL公司生产的MCS-5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,属于标准的MCS-51产品。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O 接口等计算机所需的基本功能部件。
时钟信号用来控制单片机内各种微操作的时间基准,通常有两种形式得到,即内部震荡方式和外部震荡方式。
内部震荡方式所得的信号比较稳定,故设计数字温度计的时钟信号选用内部震荡方式,晶振选用12MHZ。
温度传感器选用单线数字温度传感芯片DS18B20,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,造成信号传输的不稳定。
电压范围为3.0 V至5.5 V 无需备用电源。
其测温范围是-55~128℃。
显示部分使用8位LED数码管来作为温度的直接输出,当温度超出-50~110℃时,喇叭报警和发光二极管闪烁来提示。
采用C语言设计温度计的程序,对DS18B20进行初始化、读、写,读取温度,数据的转换,温度显示和报警处理等等。
2.3 芯片器材主机:单片机AT89C51一片;温度传感器:DS18B20一片,显示电路:74LS245,8位LED数码管;时钟电路:电容两个,晶振片一个;报警电路:发光二极管两个,喇叭一个;其他导线若干,+5V电源等等。
3 硬件设计3.1 AT89C513.1.1 AT98C51引脚图XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51LS1图1 AT89C51引脚图本次设计需要注意的几个端口:P0口(32—39):是一组8位漏极开路行双向I/O 口,也既地址/数据总线复用口。
可作为输出口使用时,每位可吸收电流的方式驱动8个TTL 逻辑电路,对端口写“1”可作为高阻抗输入输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,PO 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。
P1口(1—8):是一个内部提供上拉电阻的8位双向I/O 口,P1口缓冲器能接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
P2口(21—28):是一个内部上拉电阻的8位双向I/O 口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。
P3口(10—17):是一组带有内部上拉电阻的8位双向I/O 口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。
作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除可作为一般的I/O 口线外,更重要的用途是它的第二功能,如图2所示:图2 端口引脚P3EA/Vpp(31):内部和外部程序存储器选择线。
EA=0时访问外部ROM 0000H—FFFFH;EA=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH 空间访问外部ROM。
本次设计EA接高电平。
XTAL1(19)和XTAL2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
RST/VPD(9):复位信号输入端。
AT89S51接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。
第二功能是VPD,即备用电源输入端。
当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。
/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现./EA/VPP。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/E.端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
3.1.2 AT89C51结构特点8位CPU,片内振荡器和时钟电路,32根I/O线,外部存贮器寻址范围ROM、RAM64K,16位的定时器/计数器,5个中断源,两个中断优先级,全双工串行口,布尔处理器。
3.2 温度获取使用美国Dallas半导体公司的数字化温度传感器DSB1820,支持“一线总线”接口的温度传感器,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
“一线总线”独特而且经济的特点,DS18B20体积小、经济、灵活,使你可以充分发挥“一线总线”的优点。
DS18B20支持“一线总线”接口,测量温度范围为-55°C ~+125°C ,在-10~+85°C 范围内,精度为±0.5°C 。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
支持3V ~5.5V 的电压范围,使系统设计更灵活、方便。
DS18B20产品的特点 :(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55。
C 到+125。
C 之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
DS18B20内部结构如图3所示:图3 DS18B20内部结构DS18B20功能命令如表1所示:表1 DS18B20功能命令表命令 功能描述 代码 CONVERT 启动温度转换 44H READ SCRA TCHPAD读取温度寄存器BEH存储和控制逻辑高速暂存器温度传感器高温触发器TH 低温触发器TL 配置寄存器8位CRC 生成器 64位R O M 和一线供电方式READ ROM 读DS18B20的序列号33H WRITE SCRA TPAD 将数据写入暂存器的第2、3字节中4EH MATCH ROM 匹配ROM 55H SEARCH ROM 搜索ROM F0H ALARM SEARCH报警搜索 ECH SKIP ROM 跳过读序列号的操作CCH READ POWER SUPPL Y读电源供给方式,0寄生,1外部电源B4H其连线使用如图4所示(2接P3.6):R24.7k109.0DQ 2VCC 3GND 1U2DS18B20图4 DS18B20连线图由于DS18B20单线通信功能是分时完成的,所以有严格的时隙概念,读写时序很重要。