单片机工程化考试 温光采集时钟控制系统.docx

上传人:b****8 文档编号:8923871 上传时间:2023-02-02 格式:DOCX 页数:41 大小:512.88KB
下载 相关 举报
单片机工程化考试 温光采集时钟控制系统.docx_第1页
第1页 / 共41页
单片机工程化考试 温光采集时钟控制系统.docx_第2页
第2页 / 共41页
单片机工程化考试 温光采集时钟控制系统.docx_第3页
第3页 / 共41页
单片机工程化考试 温光采集时钟控制系统.docx_第4页
第4页 / 共41页
单片机工程化考试 温光采集时钟控制系统.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

单片机工程化考试 温光采集时钟控制系统.docx

《单片机工程化考试 温光采集时钟控制系统.docx》由会员分享,可在线阅读,更多相关《单片机工程化考试 温光采集时钟控制系统.docx(41页珍藏版)》请在冰豆网上搜索。

单片机工程化考试 温光采集时钟控制系统.docx

单片机工程化考试温光采集时钟控制系统

(一)系统设计的框架.................................(4)

(三)单片机的选型...................................(5)

(八)4*4键盘...................................(13)

(九)步进电机、直流电机、蜂鸣器、继电器.............(13)

源程序..........................................(16)

开发板实物演示图片...............................(38)

开发板使用说明...................................(39)

摘要:

 

本系统是基于PLB-HOT51-01单片机实验系统上的MCS—51单片机而设计的系统。

是利用单片机中的定时器、IO接口、中断系统以及开发板实验平台上的数码管和1602液晶显示屏、温度传感器DS18B20、继电器、蜂鸣器以及必要的芯片等资源而设计。

一、引言

(一)课题设计背景

随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温、光采集与控制系统的研发与应用在很大程度上提高了生产生活中对其的控制水平。

本设计就是基于单片机STC89C52控制系统的设计,通过本次课程实践,我们更加的明确了单片机的广泛用途和使用方法,以及其工作的原理。

(二)课题设计的目的和意义

随着社会的发展,温、光的测量及控制变得越来越重要。

本文采用单片机STC89C52设计了温、光度实时测量及相应的控制系统。

单片机STC89C52能够根据温度传感器DS18B20所采集的温度在液晶屏上实时显示,通过控制从而把温度控制在设定的范围之内,超过或者低于此温度就会报警或采取相应的控制。

光度控制也是如此。

所有数据均通过液晶显示器LCD显示出来。

系统可以根据时钟存储相关的数据。

通过该课程的学习使我们对单片机控制系统有一个全面的了解、进一步锻炼我们在单片机应用方面的实际工作能力。

二、电路设计

(一)系统设计的框架

本课题设计的是一种以STC89C52单片机为主控制单元的温光控制系统。

该控制系统可以实时存储相关的温度数据并记录当前的时间。

其主要包括:

温度采集模块、光照采集模块、按键处理模块、实时时钟模块、LCD显示模块、步进电机和继电器模块以及单片机最小系统。

系统图如下

DS18B20采集温度的数据,并显示在液晶显示屏上,当温度低于或超过设定值时,进行相应的加温或降温控制。

光敏传感器采集光照数据,通过A/D及D/A转换显示在液晶屏上,当光照低于或超过设定值时,进行相应的控制。

也可以显示时间以及其简单的控制。

这些都是通过外围设备如继电器、蜂鸣器、步进电机等来进行的。

第I条

(二)单片机最小系统

(三)单片机的选型

本课题设计的温度控制系统主控制芯片选型为STC89C52单片机,其特点如下:

1.STC89C52单片机简介

目前,51系列单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。

STC89C52单片机是深圳宏晶科技有限公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。

每一个单片机包括:

一个8位的微型处理器CPU;一个512K的片内数据存储器RAM;4K片内程序存储器;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。

最高允许振荡频率是12MHZ。

以上各个部分通过内部总线相连接。

2.STC89C52单片机时序

STC89C52单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2个震荡周期,分为P1和P2两个节拍。

这样,一个机器周期由12个振荡周期组成。

若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为1/6us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。

对于单周期指令,当指令操作码读人指令寄存器时,使从S1P2开始执行指令。

如果是双字节指令,则在同一机器周期的s4读人第二字节。

若为单字节指令,则在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。

在加结束时完成指令操作。

多数STC89C52指令周期为1—2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。

对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。

3.STC89C52单片机引脚介绍

STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。

下面按引脚功能分为4个部分叙述个引脚的功能。

(1)电源引脚Vcc和Vss

Vcc(40脚):

接+5V电源正端;

Vss(20脚):

接+5V电源正端。

(2)外接晶振引脚XTAL1和XTAL2

XTAL1(19脚):

接外部石英晶体的一端。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):

接外部晶体的另一端。

在单片机内部,接至片内振荡器的反相放大器的输出端。

当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。

对于CHMOS芯片,该引脚悬空不接。

(3)控制信号或与其它电源复用引脚

控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

(A).RST/VPD(9脚):

RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。

当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。

当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。

(B).ALE/P(30脚):

当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低

(C).PSEN(29脚):

片外程序存储器读选通输出端,低电平有效。

当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。

当访问外部数据存储器期间,PESN信号将不出现。

(D).EA/Vpp(31脚):

EA为访问外部程序储器控制信号,低电平有效。

当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。

若超出该范围时,自动转去执行外部程序存储器的程序。

当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。

对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。

(4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口

(A).P0口(39脚~22脚):

P0.0~P0.7统称为P0口。

当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。

当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。

它分时提供8位双向数据总线。

对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。

(B).P1口(1脚~8脚):

P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。

对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:

P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。

对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。

(C).P2口(21脚~28脚):

P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。

当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。

对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。

(D).P3口(10脚~17脚):

P3.0~P3.7统称为P3口。

它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。

综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:

1).单片机功能多,引脚数少,因而许多引脚具有第2功能;

2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。

(四)AD转换

pcf8591说明:

描述:

PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。

PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。

PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。

在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。

功能:

PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。

PCF8591的最大转化速率由I2C总线的最大速率决定。

特性:

【1】单独供电  

【2】PCF8591的操作电压范围2.5V-6V  

【3】低待机电流  

【4】通过I2C总线串行输入/输出  

【5】PCF8591通过3个硬件地址引脚寻址  

【6】PCF8591的采样率由I2C总线速率决定  

【7】4个模拟输入可编程为单端型或差分输入  

【8】自动增量频道选择  

【9】PCF8591的模拟电压范围从VSS到VDD  

【10】PCF8591内置跟踪保持电路  

【11】8-bit逐次逼近A/D转换器  

【12】通过1路模拟输出实现DAC增益

原理图及引脚信息:

 

AIN0~AIN3:

模拟信号输入端。

 

A0~A2:

引脚地址端。

VDD、VSS:

电源端。

(2.5~6V)  SDA、SCL:

I2C总线的数据线、时钟线。

OSC:

外部时钟输入端,内部时钟输出端。

EXT:

内部、外部时钟选择线,使用内部时钟时EXT接地。

AGND:

模拟信号地。

AOUT:

D/A转换输出端。

VREF:

基准电源端

(五)1302时钟

DS1302的结构及工作原理:

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

引脚功能及结构:

DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc>2.0V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数

据输入输出端(双向),后面有详细说明。

SCLK为时钟输入端。

DS1302的控制字节:

DS1302的控制字如图2所示。

控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

数据输入输出(I/O):

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

DS1302与CPU的连接:

实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可。

只是选择晶振时,不同的晶振,误差也较大。

另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。

只要占用CPU一个口线即可。

LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。

功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。

(六)18B20温度传感

DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。

该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。

本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因:

(1)系统的特性:

测温范围为-55℃~+125℃,测温精度为士0.5℃;温度转换精度9~12位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。

(2)系统成本:

由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。

一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。

(3)系统复杂度:

由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。

(4)系统的调试和维护:

由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。

同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。

DS18B20温度传感器只有三根外引线:

单线数据传输总线端口DQ,外供电源线VDD,共用地线GND。

DS18B20有两种供电方式:

一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。

这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。

另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。

在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路如图所示

(七)1602液晶显示

本课题设计的温度控制系统是采用液晶屏作为显示模块,其原理图如下

(八)4*4键盘

(九)步进电机,直流电机,蜂鸣器,继电器

三、总体安排及进度计划落实情况

小组成员运用自己所学知识,再参照了大量相关的资料相结合写出论文给指导老师并作出实物,将实物调试给指导老师看后交出实物及照片。

(一)计划及流程:

1、时间安排:

2011年12月2日开题报告;

2011年12月8日程序进行调试,完善;

2011年12月中旬结题报告,实物进行展示;

2、所需条件及措施:

PLB-HOT51-01单片机已具备

电路板自己购买

电烙铁已具备

其他电子元件自己购买

(二)实验结论及参考资料:

1、实验结论:

以上为所设计的基于PLB-HOT51-01单片机实验系统上的MCS—51单片机而设计的系统,它经过多次修改和整理,基本已满足设计的基本要求。

它利用单片机中的定时器、IO接口、中断系统以及开发板实验平台上的数码管和1602液晶显示屏、温度传感器DS18B20、继电器、蜂鸣器以及必要的芯片等资源设计。

通过此次课程设计的制作,我们不仅学到知识,也使动手动脑的能力方面得到了提高。

2、参考文献:

【1】《C程序设计》(第三版)谭浩强编著清华大学出版社2005

【2】《感测技术》李科杰编著机械工业出版社2007

【3】《AltiumDesigner(Protel)原理图与PCB设计教程》江思敏编著机械工业出版社2010

【4】《数字电路与逻辑设计》陈利勇编著中国铁道出版社2007

【5】《实用模拟电子技术》施智雄编著电子科技大学出版社2006

四、附录

源程序:

//定义头文件

#include

#include

#definePCF85910x90//PCF8591地

#defineucharunsignedchar

#defineuintunsignedint

sbitPWM=P1^4;//直流电动机引脚定义

sbitjdq=P3^7;//继电器引脚定义

unsignedcharcodeF_Rotation[4]={0x01,0x02,0x04,0x08};//正转表格

unsignedcharcodeB_Rotation[4]={0x08,0x04,0x02,0x01};//反转表格

unsignedcharcodeDisp_Tab[]={0,1,2,3,4,5,6,7,8,9};

unsignedcharAD_CHANNEL;

unsignedlongxdataLedOut[8];

unsignedintD[32];

uintm;

voidDelay4(unsignedinti)//延时函数

{

while(--i);

}

/*************************此部分为I2C总线的驱动程序*************************************/

#include

#include

#include

#defineNOP()_nop_()/*定义空指令*/

#define_Nop()_nop_()/*定义空指令*/

sbitSCL=P1^5;//I2C时钟

sbitSDA=P3^6;//I2C数据

bitack;/*应答标志位*/

/*******************************************************************

起动总线函数

函数原型:

voidStart_I2c();

功能:

启动I2C总线,即发送I2C起始条件.

********************************************************************/

voidStart_I2c()

{

SDA=1;/*发送起始条件的数据信号*/

_Nop();

SCL=1;

_Nop();/*起始条件建立时间大于4.7us,延时*/

_Nop();

_Nop();

_Nop();

_Nop();

SDA=0;/*发送起始信号*/

_Nop();/*起始条件锁定时间大于4μs*/

_Nop();

_Nop();

_Nop();

_Nop();

SCL=0;/*钳住I2C总线,准备发送或接收数据*/

_Nop();

_Nop();

}

/*******************************************************************

结束总线函数

函数原型:

voidStop_I2c();

功能:

结束I2C总线,即发送I2C结束条件.

********************************************************************/

voidStop_I2c()

{

SDA=0;/*发送结束条件的数据信号*/

_Nop();/*发送结束条件的时钟信号*/

SCL=1;/*结束条件建立时间大于4μs*/

_Nop();

_Nop();

_Nop();

_Nop();

_Nop();

SDA=1;/*发送I2C总线结束信号*/

_Nop();

_Nop();

_Nop();

_Nop();

}

/*******************************************************************

字节数据发送函数

函数原型:

voidSendByte(UCHARc);

功能:

将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对

此状态位进行操作.(不应答或非应答都使ack=0)

发送数据正常,ack=1;ack=0表示被控器无应答或损坏。

********************************************************************/

voidSendByte(unsignedcharc)

{

unsignedcharBitCnt;

for(BitCnt=0;BitCnt<8;BitCnt++)/*要传送的数据长度为8位*/

{

if((c<

elseSDA=0;

_Nop();

SCL=1;/*置时钟线为高,通知被控器开始接收数据位*/

_Nop();

_Nop();/*保证时钟高电平周期大于4μs*/

_Nop();

_Nop();

_Nop();

SC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1