1、1单片机最小系统实验报告基于 DS18b20 的温度测量和秒表设计2目录单片机最小系统实验报告 .1一、单片机 .31.单片机简介 .32.最小系统 .33. AT89C51 单片机引脚说明 .4二、18B20 介绍 .5三、最小系统硬件设计 .81、设计结构框图 .82、系统时钟电路 .83、复位电路 .8四、实验具体内容 .91、实现 LED 显示器的选通并显示字符 .92、基于 DS18b20 的温度测量和秒表设计 .16五、总结 .293一、单片机1.单片机简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit) ,常用英文字母的缩写 MCU 表
2、示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域AT89C51 提供以下标准功能:8K 字节 Falsh 闪速存储器,256 字节内部RAM,32 个 I/O 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通信口,
3、片内震荡器及时钟电路,同时 AT89C51 可降至 0HZ 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,时/计数器,串行通信口及中断系统持续工作。掉电方式保存 RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。AT89C51 单片机主要功能特性: 兼容 MCS51 指令系统 4k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 8 个中断源 三个 16 位可编程定时/计数器 2.7-6.V 的宽工作电压范围 时钟频率 0-24MHz 128x8bit 内部 RAM 五个外部中断源 两个串行中断
4、可直接驱动 LED 两级加密位 低功耗睡眠功能 内置一个模拟比较放大器 可编程 UARL 通道 软件设置睡眠和唤醒功能2.最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对 51 系列单片机来说,单片机+ 晶振电路+复位电路,便组成了4一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。3. AT89C51 单片机引脚说明VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,内部无上拉电阻每脚可吸收8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0
5、能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。P3 口:P
6、3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流,这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和
7、编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器
8、在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当5/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。二、1
9、8B20 介绍DS18B20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874 等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20 可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。(1)DS18B20(a)通过单线总线端口访问 DS1820 的协议如下: 初始化void Init_DS18B20() uchar x=0;DQ = 1; /DQ复
10、位delay_18B20(8); /稍做延时DQ = 0; /单片机将DQ拉低delay_18B20(80); /精确延时 大于 480usDQ = 1; /拉高总线delay_18B20(14);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay_18B20(20); ROM 操作命令int ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-)DQ = 0; / 给脉冲信号dat=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;delay_18B20(4);return(dat);6 存
11、储器操作命令WriteOneChar(uchar dat)uchar i=0;for (i=8; i0; i-)DQ = 0;DQ = datdelay_18B20(5);DQ = 1;dat=1; 执行/数据ReadTemperature(void)uchar a=0;uchar b=0;uint t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(100);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOn
12、eChar(0xBE); /读取温度寄存器等(共可读 9 个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();/传感器返回值除 16 得实际温度值/为了得到 2 位小数位,先乘 100,再除 16,考虑整型数据长度,/技巧处理后先乘 25,再除 4,除 4 用右移实现b=8;t=a+b;return(t);DS1820 需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和 DS1820 间的任何通讯都需要以初始化序列开始,初始化序列见下图。一个复位脉
13、冲跟着一个存在脉冲表明 DS1820 已经准备好发送和接收数据(适当的 ROM 命令和存7储器操作命令)(b)当总线上只有一个器件时,DS18B20 读温度的流程为:复位发 0CCH SKIP ROM 命令发 44H 开始转换命令延时复位发0CCHSKIP ROM 命令发 0BEH 读存储器命令连续读出两个字节数据(即温度)结束。 Convert T 44h这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS1820 保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820 又忙于做时间转换的话,DS1820 将在总线上输出“0” ,若温度转换完成,则输出“1
14、” 。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。 Read Scratchpad BEh这个命令读取暂存器的内容。读取将从字节0 开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。(c)DS18b20 用 12 位存贮温值度最高位为符号位,下图为 18b20 的温度存储方式,负温度 S=1 正温度 S=0LSB:D7 D6 D5 D4 D3 D2 D1 D023 22 21 20 2-1 2-2 2-3 2-4MSB:D7 D6 D5 D4 D3 D2 D1 D0S S S S S
15、27 26 258三、最小系统硬件设计1、设计结构框图2、系统时钟电路 单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl 和 XTAL2 跨接石英晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图:3、复位电路 单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。9显示电路、键盘以及外部 RAM 的扩展根据具体电路的不同而不同四、实验具体内容1、实现 LED 显示器的选通并显示字符电路图的绘制(1)打开 PROTEUS 将所需元器
16、件加入到对象选择器窗口。Picking Components into the Schematic 单击对象选择器按钮 ,如图所示弹出“Pick Devices”页面,在“Keywords”输入 AT89C51,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如图所示。10在“Results”栏中的列表项中,双击“AT89C51” ,则可将“AT89C51”添加至对象选择器窗口。 (2)接着在“Keywords”栏中重新输入 7SEG,如图所示。双击“7SEG-MPX6-CA-BLUE”,则可将“7SEG-MPX6-CA-BLUE”(6 位共阳 7 段 LED 显示器)添加至对象选择器窗口。(3)最后,在“Keywords”栏中重新输入 RES,选中“Match Whole Words”,如图所示。在“Results”栏中获得与 RES 完全匹配的搜索结果。双击“RES” ,则可将“RES”(电阻)添加至对象选择器窗口。单击“OK”按钮,结束对象选择。