第1章 硬件设计
1.1 AT89C51单片机介绍
AT89C51 是美国ATMEL公司生产的低功耗,高性能CMOS型8位单片机,片内含4Kbytes 的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。它集Flash ROM程序存储器,并支持可在线编程(ISP)功能;另一方面,由于价格低、因而被广泛应用于许多高性价比的场合,如工业控制、消费电子等各种控制领域,对于简单的测温系统而言,它已经足够。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。设计中采用89C51单片机。 其主要特性如下:
与MCS-51产品指令系统完全兼容;
4K字节可编程闪烁存储器;
1000擦写周期;
4.0~5.5V工作电压范围;
全静态工作:0Hz-33MHz;
程序存储器具有3级加密保护;
128*8位内部RAM;
32可编程I/O线;
两个16位定时器/计数器;
6个中断源和2个优先级;
可编程全双工串行通道;
低功耗的闲置和掉电模式;
具有JTAG接口,可方便地在线编程或在系统编程。
AT89C51 单片机为40引脚双列直插式封装。其引脚排列和逻辑符号如图1.1 所示。
各引脚功能简单介绍如下: 图1.1 89C51引脚图
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
中古汉语人民检察院民事行政抗诉案件办案规则P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输口);P3.1TXD(串行输出口) ;P3.2 INT0(外部中断0);P3.3 INT1
(外部中断1) ;P3.4 T0(定时器0外部输入);P3.5 T1(定时器1外部输入);P3.6 WR (外部数据存储器写选通);P3.7 RD (外部数据存储器读选通)。同时P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RE
SET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
黄磷行业准入条件XTAL2:来自反向振荡器的输出。
DS18B20是美国DALLAS半导体公司推出的一款智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75~750ms内完成9~12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需一根线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无须额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。它在测温精度、转换时间、传输距离、分辨率等方面都给用户的使用带来了方便,效果也令人满意。
其主要特点如下:
独特的单线接口方式:DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
可用数据线供电,电压范围:+3.0~+5.5V。
测温范围:-55℃~+125℃,固有测温分辨率为0.5℃。
通过编程可实现9~12位的数字读书方式。
用户可自设非易失性的报警上下限值。
支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作.
DS18B20的管脚排列、各种封装形式如图 1.2 所示:
图1.2 DS18B20的外形及管脚排列
各引脚功能简单介绍如下:
GND:地信号。
DQ:数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。
VDD:可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。
1.3 液晶显示器LCD1602介绍
案例分析法
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下图是1602的内部显址。
LCD
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 中国人民外交学会4D | 4E | 4F |
| | | | | | | | | | | | | | | |
16字X2行
2章 软件设计
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序显示子程序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。读出温度子程序可以读出RAM中的9字节,然后通过温度转换命令子程序发出温度转换开始命令,计算温度子程序进行BCD码的转换运算,并进行温度值正负的判定,最后显示数据刷新子程序对显示数据进行刷新。
2.1 主程序
中国人民解放军档案馆