厦门理工学院光电工程单片机课程设计报告书.docx

上传人:小飞机 文档编号:5078464 上传时间:2023-06-02 格式:DOCX 页数:18 大小:715.06KB
返回 下载 相关 举报
厦门理工学院光电工程单片机课程设计报告书.docx_第1页
第1页 / 共18页
厦门理工学院光电工程单片机课程设计报告书.docx_第2页
第2页 / 共18页
厦门理工学院光电工程单片机课程设计报告书.docx_第3页
第3页 / 共18页
厦门理工学院光电工程单片机课程设计报告书.docx_第4页
第4页 / 共18页
厦门理工学院光电工程单片机课程设计报告书.docx_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《厦门理工学院光电工程单片机课程设计报告书.docx》由会员分享,可在线阅读,更多相关《厦门理工学院光电工程单片机课程设计报告书.docx(18页珍藏版)》请在三一办公上搜索。

1、XIAMEN UNIVERSITY OF TECHNOLOGY光电工程实践单片机课程设计姓 名学 号专业班级指导老师日 期2015.6232015627摘要2一、实现功能2二、设计原理22.1系统软件工作流程22.2硬件电路原理52.2.1 STC89C52RC 最小系统52.2.2 DS18B2062.2.3 LCD160272.2.4 AT24C02与 PCF8591 82.2.5 按键92.2.6蜂鸣器9三、设计结果10四、心得体会13五、参考文献14附录主函数部分程序代码15摘要本作品是基于普中51单片机开发板编写可调温度范围的温控报警系统程序,采用开发 板上DS18B20、AT24C

2、02、PCF8591、LCD1602芯片构成的应用电路,将采集的温度、存读的 温度、采集的电压实时显示在LCD1602上,并在设定的温度范围实时监测并启动蜂鸣器报警。一、实现功能1. 能实时采集温度和电压值,显示在1602上;2. 能实时显示时钟并可手动修改,显示在1602上;3. 按键1按下,将当前的温度值保存到AT24C02;4. 按键2按下,可逐个显示之前采集到的温度值;5. 当温度超过设定值,则蜂鸣器报警;6. 能手动调整温度报警阈值。二、设计原理2.1系统软件工作流程一上电,程序首先进行初始化,在主程序的循环程序中首先调用DS18B20温度采集和 PCF8591电压采集程序,接着将调

3、用报警子程序,采集到的温度值与预设的温度报警阈值进 行比较,判断是否启动蜂鸣器报警,调用1602显示子程序显示时间采集的电压、温度、温 度阈值及预存储温度。若按键未按下,则一直执行上述命令。若按键按下,则转到相应的按 键检测程序执行,系统定义了7个按键功能,分别为左移键、右移键、加、减键、存储键、 提取键、释放键,实现时间和温度报警阈值的手动调整,调整过程会实时显示在LCD1602 上。按下存储键时,将调用AT24C02存储子程序,屏幕不会有任何提示;当按下提取键时, 将调用AT24C02提取子程序,并将所存的温度显出来;按下释放键时,程序退出提取模式, 屏幕会预存温度。时间显示程序完成秒的计

4、时及向分钟、小时的进位。图2.1软件设计流程图启动定时器TO分加1,秒清零,时加1,分清零H时清零图2.2时钟流程图2.2硬件电路原理图2.2系统方框图2.2.1 STC89C52RC 最小系统(1) 复位电路:t=RC1(tN10ms);(2) 时钟电路:C2=C3=(30土 10)pF(一般是 2030pF);(3) 存储器访问路经控制:EA/VPP=+5V时,先内后外中央控制器(CPU)上拉电阻i_ 4 P163Fl72 P32 l1 P33:bHP 743 艇72 P361 HFJPS0Pll2P123P134P14sP15a1P16r=。P17RSTyKXD10IMJiiR罪右引12

5、P皿四13朋L4临15P3&16P3717mISXT!匆SolPL 0CtPl. 1TO. 0FL 2ro. iPl. 3PO. 2Pl. 4TO. 3Fl. 5ro. 4Pl. 6PO. 5PL 7TO. 6RSTAPDro. 7mA叩paJAxD1A LE/P ROGPSENP3L3/M1P2. 7P2. 6P3.5ZT1P2. 5P2. 4P3.7/HDP2. 3X TA L2P2. 2m LIP2. 1P2. 038P01CnPQ2跖P03厂饕P04P05L.P06rP07ri31VCC如器LC1JE27RDI p26R25P24r24P23最P2222SCLL 21SIMc对 VQC

6、J-0J-11KT2P15ClC2HI j_ IIW 33PP17P16VCC gd 7 GDW上拉电阻图2.2.1 STC89C52RC最小系统图2.2.2 DS18B20DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度 传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的 编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位 的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口) 读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18

7、B20供电,而无需额 外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时 间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更 令人满意的效果。温度转换计算方法举例:例如当DS18B20采集到+125C的实际温度后,输出为07D0H, 则: 实际温度=07D0HX0.0625=2000X0.0625=1250C。例如当 DS18B20 采集到-55C 的实 际温度后,输出为FC90H,则应先将11位数据位取反加1得370H (符号位不变,也不作 为计算),则:实际温度=370HX0.0625=880X0.0625=550C温度检

8、测此电路的上拉电阻在中央 控制器(CPU)模块中DS18B20图 2.2.2 DS18B202.2.3 LCD1602LCD1602可以显示2行16个字符,有8位数据总线D0D7和RS、R/W、EN三个控制端口,工作电压为5V并且带有字符对比度调节和背光。LCD1602引脚说明如下表所示:LCD液晶显示器各引脚功能及结构编号符号引脚说明编号符号引浏说明1VSS电源地9 nD2双向数据口2VDD电源正极10D3双向数据口3VL对士度调节11D4双向数据口4RS数据?命令 选择12D5双向数据口5R/W读写选择13D6双向数据口6E模块使能端14D7取同数据口DO双同数据口15BLK背光源地8D1

9、双同数据口16BLA背光源E极表2.2.3 1LCD液晶显示器各引脚功能及结构VDD:电源正极,4.5V5.5V,通常使用5V电压;VL: LCD对比度调节端,电压调节范围为05V。接正极时对比度最弱,接地电源时对比度最高,但对比度过高会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度, 或者直接串接一个电阻到地;RS: MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要 写入数据时,使RS为高电平;R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;EN: LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0D7: 8为数据总线

10、,三态双向。如果MCU的I/O 口资源紧张的话,该模块也可以 只使用4位数据线D4D7接口传送数据。A: LED背光正极。需要背光时,A串接一个限流电阻接VDD,K接地。K: LED背光地端。VCCJ9 LCD 1602UNWqCO A拦ZUCI 岩CI Loqu MCI 2 mslcl 60ZSICI IT UCI CDoquVOC OHUH00:7502RT6( 1602)图2.2.3 LCD电路引脚图2.2.4 AT24C02 与 PCF8591AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST 公司的先进CMOS技术实质上减少了器件的功耗

11、。AT24C02有一个8字节页写缓冲器。该 器件通过IIC总线接口进行操作,有一个专门的写保护功能。PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1 和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的 硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以 串行的方式进行传输。(EEPROM)与(模数/数模转换)AINOAOUT:AINO-AIN3:模拟输入的电位器VGCVOC邮UT

12、VREFA W AIN1 AGNDAIN2 AIN3 EXT。室A0ASCLA2SDAGNDU715 AO UT11PCF8591PGND 1312ILSCL 10SDA 91 AIND 2Frr T A1N24 AM G- 56GNDADDA输出输入接口J4123456ADO502A INIADIeng CX8I卜U1E0VDDElWEE2SCL屈SLA6 SCL5SDASCL I2C的时钟连接P2. 0SDA 12C的数据连接P21图2.2.4 AT24C02与PCF8591引脚连线图2.2.5按键独立按键接口2.2.6蜂鸣器图2.2.5独立按键蜂鸣器的作用为温度在设定范围之外时产生报警声

13、,LED在温度在设定范围之外时时亮。蜂鸣器与单片机P3.5 口相连,LED灯与单片机P3.6 口相连。三、设计结果本次设计达到预期的目的,实现了要求的所有功能和几个简单的扩展,读取储存的效果 不明显,其他情况良好。显示部分,第一行为实时时间和采集的电压,第二行为实时温度和 报警温度上下限,预存温度,时间小时和分钟部分可调,温度范围也可调,报警反应灵敏, 效果图如下:图3.1上电初始状态“TOK.PTffj wn 陌f m rn 皿 m m x m * v上D1MT-la5U fm W1/3 IXf Uf A K日WE伽11 T2A H38 L29 M2A 11图3.2调节电位器采集到电压图3.

14、3手动调整时间图3.4提取出储存的温度1图3.6超过温度范围后报警LED亮起图3.7在报警阈值内LED熄灭四、心得体会本次单片机课程设计,从仿真电路的设计,源程序的书写,单片机课程设计报告和修改 以及程序下载和调试中都遇到了不少问题,但在我经过我的努力基本都解决了,并且从中学 到了不少知识。我在设计过程中还不断提出自己的疑点以及新的想法,联系实际应用,将课 本上学习的东西运用到实际中,这些都令我受益匪浅。课程设计需要很大的耐心,尤其是遇 到困难的时候,这也是对我的考验。在设计过程中,遇到问题不是感到急躁,而是耐心地寻 找解决的办法,与老师、同学进行交流讨论,寻求最佳的解决办法。总之,在此次的课

15、程设 计中,我不仅动手、动脑,也学会了不少东西,同时,谢谢对我的设计带来建议、意见和帮 助的同学们!谢谢!五、参考文献1 徐敏,刘建春,关键生单片机原理及应用.-北京:机械工业出版社,2012.2 马淑华.单片机原理与接口技术M,2版.北京:北京邮电大学出版社,2007.3 STC89C52RC、DS18B20、LCD1602、AT24C02、PCF8591 等芯片数据手册附录 主函数部分程序代码#include#include#include#include#include#include#include ”24C02.h”#define uint unsigned int#define u

16、char unsigned char#define PCF8591 0x90#define AT24C02 0xa0sbit RS=P2A6;sbit RW=P2A5;sbit EN=P2A7;sbit K0=P1A0;sbit K1=P1A1;sbit K2=P1A2;sbit K3=P1A3;sbit K4=P1A4;sbit K5=P1A5;sbit K6=P1A6;sbit K7=P1A7;sbit beep=P3A5;sbit LED=P3A6;uchar addr = 0x00,ret_addr = 0x00;uchar adc,showoff=0;uint M1,M2;long

17、Vin=0;extern char h1,h2,L1,L2;void baojing()if(M1(h1*10+h2)ll(M18; if(K5=0) delay(80); if(K5=0) ret_addr = addr; write_e2p(M1,addr); if(addr != 0xFF)addr+=2; else addr = 0x00; if(K6=0) delay(20); if(K6=0) while(!K6); showoff=1; M2=0; M2=read_e2p(ret_addr); if(ret_addr != 0x00)ret_addr-=2; if(K7=0) showoff=0;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号