1、多级中断处理系统,16 位定时器/计数器。片内ROM,R乃初容量加大,且寻址范围可达64K字节, 11 河南理工大学毕业设计(论文)说明书 有的片内还带有A/D转换器接口。这类单片机有INTEL公司的MCS一51, MOTOROLA公司的6801和ZILOG公司的28等。其中MCS一51系列产品,由于 其优良的性能价格比,特别适合我国的国情,MCS一51系列单片机有可能 稳定相当一段时期。现在,国内的MCS一51热正在升温,随着我国经济建 设步伐的加大,MCS一51系列单片机必将在各个领域大显身手。第四阶段 (1983一现在),8位单片机巩固发展及16位单片机推出阶段。此阶段主要 特征是一方面
2、发展16位单片机及专用单片机:另一方面不断完善高档8位 单片机,改善其结构,以满足不同用户的需要。 MCS一5王系列属高档单片机,近年来,工NTEL公司在提高该系列产 品性能方面作了不少工作,相继推出了不少新产品:8052/8752/8032、低 功耗的CHMOS工艺芯片SOC51/87C51/80C31、具有高级语言编程的芯片 8052AH一BASIC、高性能的C252系列等。在本次设计中我们采用了MCS一 51系列中的89C51来完成产品种的CPU的功能。 在单片机的应用领域中按照单片机的特点,单片机可分为单机引用 和多机应用。单机应用领域有:测控系统、智能仪表、机电一体化产品、 智能接口
3、等。多机应用领域有:功能集散系统、并行多机控制系统、局部 网络系统等。我们所设计的太阳能供热控制系统属于单机应用领域的测 控系统,即利用单片机完成对温度的采集、比较、控制等功能。 2.2 关于单片机的一些基本概 随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中, 单片机的内容比较抽象,相对已熟悉的模拟电路、数字电路,单片机中 有一些新的概念必须要理解,下面就对这些最基本概念作一说明。 一、总线:一个电路总是由元器件通过电线连接而成的,在模拟电 路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件 之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心, 各器件都要与微
4、处理器相连,各器件之间的工作必须相互协调,所以就 需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器 12 河南理工大学毕业设计(论文)说明书 件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线 的概念,各个器件共同享用连线,所有器件的 8 根数据线全部接到 8 根 公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两 个器件同时送出数据,一个为 0,一个为 1,那么,接收方接收到的究竟 是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件 分时工作, 任何时候只能有一个器件发送数据 (能有多个器件同时接收) 。 器件的数据线也就被称为数据总线,器件
5、所有的控制线被称为控制总线。 在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元 要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的, 由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为 地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者 的本质都是一样的数字,或者说都是一串0和1组成的序列。 换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的 一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能 由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、 输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不
6、可更 改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定 要有的。数据:这是由微处理机处理的对象,在各种不一样的应用电路 中各不相同,一般而言,被处理的数据可能有这么几种情况: 103f1地址(如 MOV DPTR,#1000H),即地址 1000H 送入 DPTR。 2方式字或控制字(如 MOV TMOD,#3),3 即是控制字。 3常数(如 MOV TH0,#10H)10H 即定时常数。 4实际输出值(如 P1 口接彩灯,要灯全亮,则执行指令:MOV P1, #0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里 0FFH 和 00H 都是 实际输出值。 三、P0 口、
7、P2 口和 P3 的第二功能使用办法,各端口的第二功能完全 是自动的,不需要用指令来转换。如 P3.6、P3.7 分别是 WR、RD 信号, 13 河南理工大学毕业设计(论文)说明书 当微片理机外接 RAM 或有外部 I/O 口时,它们被用作第二功能,不能作 为通用 I/O 口使用,只要一微处理机一执行到 MOVX 指令,就会有对应的 信号从 P3.6 或 P3.7 送出,不需要事先用指令说明。事实上不能作为 通用 I/O 口使用也并不是不能而是(使用者)不会将其作为 通用 I/O 口使用。你完全能在指令中按排一条 SETB P3.7 的指令,并且 当单片机执行到这条指令时,也会使 P3.7
8、变为高电平,但使用者不会这 么去做,因为这常常这会导致系统的崩溃(即死机)。 四、程序的执行过程 单片机在通电复位后 8051 内的程序计数器 (PC)中的值为0000,所以程序总是从0000单元开始执行,也 就是说: 在系统的 ROM 中一定要存在0000这个单元, 并且在0000 单元中存放的一定是一条指令。 五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有 任何特殊之处,就是内部 RAM 的一部份,特殊的是它存放和取用数据的 方式,即所谓的先进后出,后进先出,并且堆栈有特殊的数据传输 指令,即PUSH和POP,有一个特殊的专为其服务的单元,即堆栈 指针 SP,每当执一次 PU
9、SH 指令时,SP 就(在原来值的基础上)自动加 1, 每当执行一次 POP 指令,SP 就(在原来值的基础上)自动减 1。由于 SP 中的值能用指令加以改变,所以只要在程序开始阶段更改了 SP 的值,就 能把堆栈设置在规定的内存单元中,如在程序开始时,用一条 MOV SP, #5FH 指令,就时把堆栈设置在从内存单元 60H 开始的单元中。一般程序 的开头总有这么一条设置堆栈指针的指令,因为开机时,SP 的初始值为 07H, 这样就使堆栈从 08H 单元开始往后, 08H 到 1FH 这个区域正是 8031 而 的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。 当设置好堆栈区后
10、,并不意味着该区域成为一种专用内存,它还是能象 普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存 用了。 六、 单片机的开发过程 这里所说的开发过程并不是一般书中所说的 从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的 14 河南理工大学毕业设计(论文)说明书 工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、 地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计 好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也 就被确定了。然后用文本编缉器(如 EDIT、CCED 等)编写软件,编写好 后,用编译器对源程序文件编译,查错,直到
11、没有语法错误,除了极简 单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。 运行正确后,就能写片(将程序固化在 EPROM 中)。在源程序被编译后, 生成了扩展名为 HEX 的目标文件,一般编程器能够识别这种格式的文件, 只要将此文件调入即可写片。 七、仿真、仿真机 仿真是单片机开发过程中非常重要的一个环节, 除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主 要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一 块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电 路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份, 对应用电路部份进
12、行测试、调试。仿真有 CPU 仿真和 ROM 仿真两种,所 谓 CPU 仿真是指用仿真机代替目标机的 CPU, 由仿真机向目标机的应用电 路部份供给各种信号、数据,进行调试的办法。这种仿真能通过单步运 行、连续运行等多种办法来运行程序,并能观察到单片机内部的变化, 便于改正程序中的错误。 所谓 ROM 仿真, 就是用仿真机代替目标机的 ROM, 目标机的 CPU 工作时,从仿真机中读取程序,并执行。这种仿真其实就 是将仿真机当成一片 EPROM,只是省去了擦片、写片的麻烦,并没有多少 调试手段可言。常常这是二种不一样类型的仿真机,也就是说,一台仿 真机不能既做 CPU 仿真,又做 ROM 仿真
13、。可能的情况下,当然以 CPU 仿 真好。 2.3 2.3 芯片简介 2.3.1 MSC-51 芯片简介 MCS-51 单片机内部结构 15 河南理工大学毕业设计(论文)说明书 89C51 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型 进行系统的讲解。 89C51 单片机包含中央处理器、程序存储器(ROM)、数据存储器 (RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数 据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器: 中央处理器(CPU)是整个单片机的核心部件, 8 位数据宽度的处理 是 器,能处理 8 位二进制数据103f或代码
14、,CPU 负责控制、指挥和调度整个单元 系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM) 89C51 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单 元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户 只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。 图 2-3-1 89C51 内部结构 程序存储器(ROM): 89C51 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或 表格。89C51 定时/计数器(ROM): 89C51 有两个
15、 16 位的可编程定时/计数器,以实现定时或计数产生 16 河南理工大学毕业设计(论文)说明书 中断用于控制程序转向。 并行输入输出(I/O)口: 89C51 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的 传输。 全双工串行口: 89C51 内置一个全双工串行通信口,用于与其它设备间的串行数据 传送,该串行口既可以用作异步通信收发器,也可以当同步移位器 使用。 中断系统: 中断系统: 中断系统 89C51 具备较完善的中断功能,有两个外中断、两个定时/计数器中 断和一个串行中断,可满足不同的控制要求,并具有 2 级的优先级 别选择。 时钟电路: 时钟电路:
16、 时钟电路 89C51 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运 行的脉冲时序,但 89C51 单片机需外置振荡电容。 单片机的结构有两种类型, 一种是程序存储器和数据存储器分开的形 式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存 储器与数据存储器合二为一的结构, 即普林斯顿(Princeton)结构。 INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。 下图是 MCS-51 系列单片机的内部结构示意图 2-3-2。 17 河南理工大学毕业设计(论文)说明书 图 2-
17、3-2 MCS-51 系列单片机的内部结构示意图 2.3.2 MCS-51 的引脚说明: MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双 列直接 DIP 结构,右图是它们的引脚配置,40 个引脚中,正电源和地线 两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口 线与 P3 口线复用。现在我们对这些引脚的功能加以说明:如图 2-3-3 Pin9:RESET/Vpd 复位信号复用脚,当 89C51 通电,时钟电路开始工作, 在 RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初 始化后,程序计数器
18、PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈 指针写入 07H,其它专用寄存器被清“0”。RESET 由高电平下降为低电 平后,系统即从 0000H 地址开始执行程序。然而,初始复位不改变 RAM (包括工作寄存器 R0-R7)的状态,89C51 的初始态。 89C51 的复位方式可以是自动复位,也可以是手动复位。此外, 18 河南理工大学毕业设计(论文)说明书 RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可接上备用电源,以保证单 片机内部 RAM 的数据不丢失。 Pin30:ALE/ 当访问外部程序器时, ALE(地址锁存)的输出用于锁 存地址的低位字节。而访问内
19、部程序存储器时,ALE 端将有一个 1/6 时钟 频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当 作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE 会跳 过一个脉冲。 如果单片机是 EPROM,在编程其间, Pin29: 将用于输入编程脉冲。 当访问外部程序存储器时,此脚输出负脉冲选通信号, PC 的 16 位地址数据将出现在 P0 和 P2 口上, 外部程序存储器则把指令数 据放到 P0 口上,由 CPU 读入并执行。 Pin31:EA/Vpp 程序存储器的内外部选通线,8051 和 8751 单片机, 内置有 4kB 的程序存储器,当 EA 为高电平并且程序地
20、址小于 4kB 时,读 取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然, 对内部无程序存储器的 8031,EA 端必须接地。 在编程时,EA/Vpp 脚还需加上 21V 的编程电压。 19 河南理工大学毕业设计(论文)说明书 图 2-3-3 AT89C51 引脚分布图 20 河南理工大学毕业设计(论文)说明书 3 传感器的特点及应用 3.1 温度传感器及其应用 温度传感器是通过物体随温度变化而改变某种特性来间接测量的。 不少材料、元件的特性都随温度的变化而变化,所以能做温度传感器的 材料相当多。温度传感器防
21、温度变化而引起物理参数变化的有:膨胀、电 阻、电容、热电动势、磁性能七频率、光学特性及热噪声等等。随着生 产的发展,新型温度传感器还会不断地涌现。 由于工业生产中温度测量的范围极宽,从零下几百度到零上几千度, 而各种材料做成的温度传感器只能在一定的温度范围内使用。常用的测 温传感器的种类与测温范围如表2一2所示。温度传感器与被测介质的接 触方式分为两大类:接触式与非接触式。接触式温度传感器需要与被测介 质保持热接触,使两者进行充分的热交换而达到同一温度。这一类传感 器主要有电阻式、热电偶、PN结温103f度传感器等。非接触式温度传感器无 需与被测介质接触而是通过被测介质的热辐射或对流传到温度传
22、感器, 以达到测温的目的。 3.2 3.2 数字温度传感器 DS18B20 数字温度传感器 DS18B20 其外形如小功率三极管。 因每一个 DS18B20 都有一个自己特有的 64 位芯片 ID 序列号,可以在一条信号线上挂接任 意多个数字式传感器。表 1 为分辨率 0.0625C 时温度/数字量关系表。 2.1DS18B20 特点 (1)独有的 1-Wire 接口,只需一个端口管脚进行通信; (2)可简单构成分布式多分支温度测量应用系统; (3)不需要任何外围元件; (4)可通过数据线进行寄生电源供电; (5)测温范围为-55+125; (6)测量精度在-10+85测温范围内时为 0.5;
23、 21 河南理工大学毕业设计(论文)说明书 (7)可编程 912 位数字温度计,相应分辨率为 0.50.芈芄蒁袆肀膀蒀罿袃薈芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄