PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言。它很像PASCAL,是一种结构化语言,但它使用关键词去定义结构。PL/M编译器好像汇编器一样可产生紧凑代码。PL/M总的来说是“高级汇编语言”,可详细控制着代码的生成。但对51系列,PL/M不支持复杂的算术运算、浮点变量而无丰富的库函数支持。学习PL/M无异于学习一种新语言。
C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号{ }而不是子和特殊符号的语言。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的内存结构有初步了解寄存器分配、不同内存的寻址及数据类型等细节可由 编译器管理程序有规范的结构,可分为不同的函数。这种方式可使程序结构化将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性编程及程序调试时间显著缩短,从而提高效率提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术 C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本 身并不依赖于机器硬件系统,基本上不做修改就可根据单片机不同较快地移植过来。
51的汇编语言非常像其它汇编语言。指令系统比第一代微处理器要强一些。51的不同存储区域使得其复杂一些。尽管懂得汇编语言不是你的目的,看懂一些可帮助你了解影响任何语言效率的51特殊规定。例如,懂得汇编语言指令就可以使用在片内RAM作变量的优势,因为片外变量需要几条指令才能设置累加器和数据指针进行存取。要求使用浮点和启用函数时只有具备汇编编程经验才能
避免生成庞大的、效率低的程序,这需要考虑简单的算术运算或先算好的查表法。
最好的单片机编程者应是由汇编转用C而不是原来用过标准C语言的人。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。 3.1.3 系统选择
本系统以MCS-51单片机成员中的AT89C51为控制核心。AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序内存,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序内存既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,它灵活应用于各种控制领域。
主要性能参数:
(1)与MCS-51产品指令系统完全兼容 (2)4K字节在系统编程(ISP)Flash闪速内存 (3)1000次擦写周期
(4)4.0-5.5V的工作电压范围 (5)全静态工作模式:0Hz—33MHz (6)三级程序加密锁 (7)256?8字体内部RAM (8)32个可编程I/O口线 (9)3个16位定时/计数器 (10)5个中断源
(11)全双工串行UART通道 (12)低功耗空闲和掉电模式 (13)中断可从空闲模唤醒系统 (14)看门狗(WDT)及双数据指针 (15)掉电标识和快速编程特性
(16)灵活的在系统编程(ISP—字节或页写模式) 其内部结构结构如图3.1所示:
图3.1 单片机内部结构图
3.1.4 AT89C51引脚功能介绍 1.电源引脚Vcc和GND
Vcc:电源电压,GND(10脚):接地端。 2.时钟电路引脚XTALl和XTAL2
XTAL2(18脚):接外部晶体和微调电容的一端。在内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体的固有频率。要检查单片机的振荡电路是否正确工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL 1(19脚):接外部晶体的微调电容的另一端。在片内它是振荡电路反相放大器的输入端。若需采用外部时钟电路时,该引脚输入外部时钟脉冲如图3.2,3.3所示。
3.控制信号引脚RST
RES(8脚)“RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,可以完成复位操作。 4.I/O(输入/输出) P0、 P1、 P2和 P3
标准51单片机,如8051、8031、AT89C51、AT89S51、P89C51等有4个I/O(输入/输出)口,分别为:
P0口(39—32脚):P0口是一个漏极开路的8位双向埠。作为漏极八路的输出端口,每次能驱动8个Ls型TTL负载。当P0口作为输入口使用时,其先向锁存器(地址80H)写入全1,此时P0口的全部引脚悬空,叫作为高阻抗输入。
P1口(1—8脚):P1口是一个带上拉电阻的8位准双向I/O端口每一位能驱动(吸收成输出电流)4个LS型TTL负载。
在P1口作为输入口使用时,应先向P1口锁存器(地址90H)写入全1,上拉电阻接成高电平。
P2口(21—28脚):P2口是一个带内部上接电阻的8位准双向埠。P2口的每一位能驱动4个LS型TTL负载。
P3口(21—28脚):P3口是一个带内部上接电阻的8位准双向埠。P3口的每一位能驱动(吸收或输出电流)4个LS型TTL负载。P3口与其它的I/O埠有很大区别,它除作为—般准双向I/O口外,每个引脚还具有专门的功能,见表3-1。
图3.2 AT89S51单片机晶振接法 图3.3 外部时钟电路
表3-1 端口引脚功能
P1口也是一个准双向口,作通用I/O口使用。其电路结构见图3.4。
输出驱动部分内部有上拉负载电阻与电源相连。实质上拉电阻是两个场效应管(FET)并在一起,—个FET为负载管,其电阻固定;另一个FET可工作在导通或截止两种状态,使其总电阻值变化近为0或阻值很大两种情况。当阻值近似为0时,可将引脚快速上拉至全高电平,当阻值很大时,P1口为高阻输入状态。
当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。在埠用作输入时,也必须先向对应的锁存器写入“1”,使FET截止。由于片内负载电阻较大,约20k—40k,所以不会对输入的数据产生影响。
3.2 温度传感器DS18B20
集成式数字温度传感器DS1820的出现开辟了温度传感器技术的新领域,它利用单总线的特点可以方便的实现多点温度的测量。而可组网数字温度传感器DS18B20则是DS1820的更新产品,它在电压、特性及封装方面都更具有优势,给了用户更多的选择,让用户可以更方便的构建适合自己的测温系统。DS18B20充分利用了单总线的独特特点,可以轻松的组建传感器网络,提供系统的抗干扰性,使系统设计更灵活、方便、而且适合于在恶劣的环境下进行现场温度测量。 3.2.1 DS18B20简介
DS18B20是美国DALLAS公司最新推出的一种可组网数字式温度传感器,与DS1820相同,DS18B20也能够直接读取被测物体的温度值,但是与DS1820相比,DS18B20的功能更强大些。它体积小,电压使用范围宽(3V-5V),用户还可以通过编程实现9-12位的温度读数,即具有可调的温度分辨率,因此它的实用性和可靠性比同类产品更高。另外,DS18B20有多种封装可选,如TO-92、SOIC及CSP封装。图3.5即为DS18B20的管脚排列图。
由图3.5可见,DS18B20只是一个数据输入/输出口,属于单总线专用芯片之一。
图3.5 DS18B20的管脚排列图