77范文网 - 专业文章范例文档资料分享平台

基于51的温度报警器设计 - 图文(4)

来源:网络收集 时间:2020-04-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

6总结

经过一周多的努力,终于完成了单片机课程设计,我们小组的题目是基于89C51的温度报警器设计,在经过大量的资料查阅后,我经过比较论证,进行了以AT89C51单片机为微控制器的温度报警器设计。该设计围绕单片机附加了矩阵键盘电路,可以对温度上下限进行设定,增强了该设计的适应性;附加了温度检测模块,液晶模块,蜂鸣器电路分别对温度进行检测和显示,并在温度超出设定值时发声报警。

由于基础和时间有限,在设计过程中存在一些考虑不周的地方,例如在选择显示模块时,只考虑到和数码管相比,液晶具有显示内容丰富,低功耗的特性,在价格上考虑较少,此外,由于程序较复杂,还存在一些可以简化的地方。

总之,通过一个完整的课程设计,让我对所学的单片机知识有了更加深刻的理解和掌握,了解了用C语言对单片机进行编程的方法,此外使我复习了protel画电路图,visio画流程图,从而为以后的毕业设计打下了坚实的基础。

参考文献

[1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006

[ 4] 郭天祥. 新概念51单片机C语言教程.北京:电子工业出版社,2009

16

附录1 系统原理图

S1S9S5S12S1S0S6S23S1S1S7S34033CC23310.2KRPP1RYESE1S1S1S8S451T12V1KRCCMHZ222C3uFVCC161791819311415121387654321UWRRXXP1P1P1P1P1P11RDESE21EAT0T143210T/VPINTINTP1P176501AT89C51PSAENLE/PTXRP2P2P2P2P2P2P2P2P0P0P0P0P0P0P0P0DXD765432107654321029301110282726252423222132333435363738391DU1JUS18222MPERJP1B2GDV0NDATACC1KR3321VCCR44.7K10R5KVVCCCCPNQ1PBUZVZER2019CC15654321QUC1BBPSERRVVG3286LKLAB/WSoCCND4B17

~2TR20VT1ANS1~9V431BRIDGED121-D40.33C4uF1UUVinA74GND2805+5V3V0.1uCCC5F附录2 程序清单

#include

#include //包含 _nop_()的定义

#define uint unsigned int //对无符号整型数据类型进行宏定义 #define uchar unsigned char //对无符号字符型数据类型进行宏定义 sbit P03=P0^3; //对P0口的相关引脚进行位定义 sbit P04=P0^4; sbit P05=P0^5; sbit P06=P0^6; sbit P07=P0^7;

#define rs_1 P03=1 #define rs_0 P03=0 #define rw_1 P04=1 #define rw_0 P04=0 #define en_1 P05=1 #define en_0 P05=0 #define DS_0 P06=0 #define DS_1 P06=1 #define DS_H DS_1 #define DS_L DS_0 uint TEMP_Result,te; uchar table[]={\温度显示\ uint i,a[3],b[3],c[3],l=100,h=300 uchar temp_low,temp_high,num; uchar key,temp;

void delay_us(uint x) { for(i=0;i

_nop_();

}

//宏定义 rs_1表示寄存数据 //宏定义 rs_0表示寄存指令 // 宏定义 rw_1表示读操作 // 宏定义 rw_0表示写操作 // 宏定义 en_1 表示使能 // 宏定义 en_0 表示禁止 // 设P0.6引脚为低电平 //设P0.6引脚为高电平 //设P0.6引脚为输入 //设P0.6引脚为输出 // 定义整型变量

// 定义无符号字符型数组

// 定义无符号整型变量和数组 //定义无符号字符型变量 //定义us级延时函数 18

uchar keyscan() //定义键盘扫描函数 {

/* 扫描第一行 */

P1=0xfe; //将第一行设为低电平,扫描第一行 temp=P1; //读取P1口电平 temp=temp&0xf0; //获取列线电平状态 while(temp!=0xf0) //当有键按下时 {

delay_us(5000); //延时5ms消抖 temp=P1; //读取P1口电平 temp=temp&0xf0; //获取列线电平状态 while(temp!=0xf0) //当有键按下时 { }

19

temp=P1; //读取P1口电平 switch(temp) //switch语句获取键值 { }

while(temp!=0xf0) //松手检测 { }

temp=P1; temp=temp&0xf0;

case 0xee: key=1;//若P1口电平为0xee,则得到键值1 break;

case 0xde: key=2;//若P1口电平为0xde,则得到键值2 break;

case 0xbe: key=3;//若P1口电平为0xbe,则得到键值3 break;

case 0x7e: key=4;//若P1口电平为0x7e,则得到键值4 break;

}

/* 扫描第二行 */ P1=0xfd; temp=P1; temp=temp&0xf0; while(temp!=0xf0) { delay_us(5000); temp=P1; temp=temp&0xf0; while(temp!=0xf0) { temp=P1; switch(temp) {

case 0xed: key=5; break; case 0xdd: key=6; break; case 0xbd: key=7; break; case 0x7d: key=8; break; }

while(temp!=0xf0) { temp=P1; temp=temp&0xf0;

}

}

}

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于51的温度报警器设计 - 图文(4)在线全文阅读。

基于51的温度报警器设计 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/986761.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: