可预置的定时显示报警系统设计报告.docx
- 文档编号:23802016
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:17
- 大小:228.36KB
可预置的定时显示报警系统设计报告.docx
《可预置的定时显示报警系统设计报告.docx》由会员分享,可在线阅读,更多相关《可预置的定时显示报警系统设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
可预置的定时显示报警系统设计报告
可预置的定时显示报警系统设计报告
摘要:
本设计是一个可预置的定时显示报警系统。
应用AT89S52单片机进行中断计时定时,应用4×4键盘进行功能的切换和数据的设置,以及1602LCD显示。
根据需要,可对时间进行暂停与调整以及倒计时。
当设置的时间与实际的时间一致时,两个时间会进行精确的对比,一旦比对成功,系统将运行报警系统,进行报警。
设计中以Ateml公司研发的8位单片机51系列作为系统核心,将传统用硬件电路(例如74LS系列)实现的报警系统改为用单片机实现,成本大大降低,复杂程度也大大降低!
此外我们还增加了计数器的功能,比如说作为在球类运动中的计分器。
关键词:
AT89S52单片机4×4键盘监控LCD1602
1引言
1.1系统设计的目的
现如今报警器已被广泛使用,在不同的领域发挥着无可替代的作用!
如在各项比赛中对时间有着严格的控制,我们可以通过它来实现比赛的倒计时!
但是怎样才能做一个成本较低而又具有多功能的报警器呢?
基于这一想法而设计了一套可预置的定时显示报警系统,它能够准确的预置和清零,能对报警时间进行设置并能对报警持续时间进行设置(其中报警具有声和光报警的功能),并且我们也在其中加上了对时间的显示和设置!
在开发此系统的同时我们附加了计分器。
1.2系统的总体设想
1.中央控制模块:
采用89S52单片机对各部分进行控制;
2.输入模块:
采用4×4键盘进行输入;
显示模块:
采用液晶显示LCD1602
3.显示;
4.报警模块:
时间报警用发光二极管和蜂鸣器;
5.供电模块:
干电池。
1.3总体设计框图
图1.1系统总体设计框图
1.4系统功能说明
1.可预置30秒的显示报警,自动发出报警信号,并能准确的预置和清零;
2.能对报警时间和报警持续时间
3.增加时间显示和设置;
4.增加计分器;
1.5系统的优越性
1.可预置的定时显示报警系统的研制是基于单片机在报警器设计领域的新应用,与传统报警器相比它处于比较先进地位,加上它能对时间进行显示和时间报警的双重功能。
所以该作品有一定的创新性!
2.可预置的定时显示报警系统能为我们的生活服务,让我们告别传统报警器的种种不足,把我们的防盗和时间的监控同时问题解决了。
在各种比赛中,能进行倒计时,而且在某些对时间显示有要求的特殊工场,安装普通的报警器不能对时间进行显示,如果按装此系统能对时间显示和时间进行报警,避免了另买时间显示系统而节约了一笔不小的开支。
因而它具有很强的实用价值!
3.本系统采用了89S52单片机,它有快速的数据处理速度使其对数据信号能较容易和快速的处理,同时LCD对时间比起单纯的数码管能较容易的显示出来。
因而它具有一定的可行性!
总的来说可预置的定时显示报警系统不光在理论上是先进的而且在实际中也是可行的!
2系统的方案的选择和论证
2.1设计要求
2.1.1基本要求
1.设计一个可预置30秒的显示报警系统。
要求预置30秒减到0秒报警(也可预置0秒,计数到30秒时报警);每隔2秒显示一次时间(即30秒、28秒……2秒、0秒时显示);系统能准确地预置和清零;
2.组装、调试可预置的定时显示报警系统;
3.画出部分程序流程图和基本电路图,写出完整的总结报告。
2.1.2发挥部分
1.能够显示时间当作时钟使用并能对时间进行设置;
2.可任意设定报警时间;
3.可任意预置报警持续时间;
4.能够具有计分功能。
2.2系统的基本方案
根据题目要求,系统可规划为中央控制部分,输入模块,显示模块,报警模块,供电模块。
2.2.1各模块的方案的选择和比较
1.控制器模块
中央控制器事整个系统的核心,通过接受和分析外部信息,按照控制算法驱动执行机构。
对中央处理器的选择、是多种多样的,但我们熟练掌握51系列的单片机的控制原理和设计方法,所以我们选择c51系列作为控制器。
该单片机运算功能强,软件编程灵活,自由度大,并且功耗低,体积小,技术成熟,完全适合在本系统中应用;
2.输入模块
方案一键盘输入
采用优良4×4键盘,此方法操作简单节省单片机资源,且价格便宜。
方案二触摸屏输入
通过触摸检验部件的用户的触摸屏的位置,接受触摸信息后送到触摸控制器,触摸屏控制器将它转化为触点坐标送给CPU,它同时接受CPU发来的饿命令并加以执行。
此方法操作简单但是价格昂贵;
综上所述选择使用方案1。
3.显示模块
方案一:
采用传统的数码显示
数码管具有低压,寿命长,耐劳化,防潮,对环境要求的低,以及精确可靠,操作简单易于维护等特点,但显示信息量小。
方案二采用液晶显示lcd显示
液晶显示具有低耗电量,无辐射危险,以及影像不闪烁等优势,可视面积大,画面效果号分辨率,搞抗干扰能力强等特点,并能显示各种波形,菜单等,显示内容十分丰富且显示效果绚丽美观;
基于以上分析拟定方案2。
4.报警模块:
在报警方式上选择了用发光二级管和蜂鸣器进行声光报警;
5.电源模块:
干电池。
2.2.2系统各模块的最终方案图
以下是系统最终的设计详尽图,如图2.1
图2.1系统各部分使用器件详尽图
3系统的功能的简述
1.时间的显示:
所用仪器与材料为51系列单片机开发板外加一块液晶LCD1602显示屏,通过单片机本身的中断和定时功能完成时钟的精确制作,再将时钟数据参数传输给与单片机相连接的LCD显示屏,将时间准确无误的显示出来。
此过程在KeiluVision2的环境下编写程序对单片机进行驱动,完成时间的显示;
2.时间与调整:
基于上面已经完成时间的显示,在此过程中我们用到了4×4键盘,作为调整功能的切换以及对时间的精确设置;
3.倒计时间:
使用4×4键盘进行功能的使用,可任意输入有效的倒计时间和持续倒计时间;
4.报警系统工作:
当设置的报警时间变为0时,时间报警系统将工作,此时发光二极管由原来的暗变亮并且蜂鸣器发出滴滴声音,直至报警时间到事先设置的报警持续时间发光二极管又由亮变暗同时蜂鸣器停止发声;
5.预置报警持续时间和报警时间的设定:
利用4×4键盘对其中的持续时间和报警时间都可以进行设定,比如使用4×4键对报警时间进行设定;
6.计分器的使用:
采用复位键盘对分数进行设置手动加分,运用LCD1602进行显示;
7.以下是开始设想的基本电路图。
如图3.1
图3.1设想的基本电路图
4系统的测试与调试
4.1系统的测试与调试的项目与方法
项目:
所写软件,所焊硬件,蜂鸣器和二极管报警,报警持续时间。
方法:
利用仿真软件对所写的软件进行测试与改正,在此仿真软件上接上模拟仿真图就可以测试了!
再利用下载软件对所焊的硬件进行测试,将所写的软件下载到所连的实际电路中就可以测试与调试了!
4.2测试与调试所用的仪器与工具
序号
名称
数量
1
1.5V干电池
4
2
仿真软件
1
3
编程下载器
1
4
联想电脑
1
5
蜂鸣器
1
6
发光二极管
1
4.3测试的结果电路模拟图
图4.1测试的最终实现电路模拟图
5基本程序流程图
图5.1时钟流程图
图5.2报警流程图
6参考文献
[1]余锡存编《单片机原理及接口技术》.西安电子科技大学出版社
[2]雷思孝等编《单片机原理及实用技术》西安电子科技大学出版社
[3]赵亮编.《单片机C语言编程与实例》人民邮电出版社
[4]王雪文编《传感器原理及应用》北京航空航天大学出版社
[5]黄智伟主编《全国大学生电子设计竞赛训练教程》电子工业出版社
7致谢
感谢我们的指导老师丁龙,感谢合肥学院电子信息与电气工程系的王愿老师、顾牛刚老师、高先和老师等对我们的指导。
同时感谢我们系里为实验的进行提供的平台。
再次还要感谢所有在这期间对我们有帮助过的老师和同学!
附1:
使用主要元器件清单及价格
元件名称
参数
数量
备注
单价(元)
芯片
AT89S52
1
51单片机
7.00
键盘
1
设置器
8.00
排针
20
1.50
1602LCD
1
显示器
15.00
发光二极管
1
报警器
0.10
蜂鸣器
1
报警器
干电池
4
供电器
4.00
附2:
成本预算
根据“元器件清单及价格”表,我们计算了整个产品的成本为35.6元,如果批量生产的话,成本还会进一步的降低,据分析,批量生产的成本可降低到20元以内。
附3:
使用计算机工具软件清单:
KeiluVision3
C51编译软件
亿图V1.6.3
专业流程图软件
Word2003
文字编辑软件
附4:
部分程序
1.中断程序//初始化定时器
//TMODgatec/TM1M0
//
voidinit()
{
TMOD=0x11;//T0,T1都使用16位定时器,不受外部外部引脚电平控制
TH0=-(50000/256);
TL0=-(50000%256);
TH1=-(50000/256);
TL1=-(50000%256);
//定时50ms
//定时50ms
EA=1;ET0=1;TR0=1;ET1=1;TR1=1;}
voidtime()interrupt1
{
TH0=-(50000/256);
TL0=-(50000%256);
if(key1==0)
{Delay(5500);
if(key1==0)if(score1!
=0){score1=score1-1;}else{score1=0;}
Display();}
if(key2==0)
{Delay(5500);
if(key2==0)score1=score1+1;if(score1==100)score1=0;
Display();
}
if(key3==0)
{Delay(5500);
if(key3==0)if(score2!
=0){score2=score2-1;}else{score2=0;}Display();
}
if(key4==0){Delay(5500);
if(key4==0)score2=score2+1;if(score2==100)score2=0;Display();
}
TCount++;
if(TCount==20)
{
Lcd_DisplayString(12,0,"A:
");
Lcd_DisplayString(12,1,"B:
");
s=s+1;TCount=0;
if(s==60)
{
m=m+1;s=0;}
if(m==60)
{
h=h+1;m=0;}
if(h==24){h=0;}}}
voidtime1()interrupt3
{
TH1=-(50000/256);
TL1=-(50000%256);
TCount1++;
if(z==1)
{
TCount2++;
}
if(TCount1==20)
{
Lcd_DisplayOneChar(7,1,s%10+48);
Lcd_DisplayOneChar(6,1,s/10+48);
Lcd_DisplayOneChar(4,1,m%10+48);
Lcd_DisplayOneChar(3,1,m/10+48);
Lcd_DisplayOneChar(1,1,h%10+48);
Lcd_DisplayOneChar(0,1,h/10+48);
c=c-1;
TCount1=0;
if((c>=0)&&(c%2==0))
{
Lcd_DisplayOneChar(7,0,c%10+48);
Lcd_DisplayOneChar(6,0,c/10+48);
}
if((c>0)&&(c%2!
=0))
{
c=c+1;w=1;
Lcd_DisplayOneChar(7,0,c%10+48);
Lcd_DisplayOneChar(6,0,c/10+48);
c=c-1;
}
if((c<=0)&&(w==1)){
led=0;z=1;
}}}
Lcd_DisplayOneChar(10,0,c1%10+48);
Lcd_DisplayOneChar(9,0,c1/10+48);break;//关闭报警
}
2.//***************Lcd读状态函数**************//
voidLcd_ReadStatus(void)
{
Delay(100);
}
//******************************************//
//*************Lcd写数据程序****************//
voidLcd_WriteData(unsignedcharTempData)
{
Lcd_ReadStatus();
Lcd_Data=TempData;
Lcd_RS=1;
Lcd_RW=0;
Lcd_E=0;
Lcd_E=0;
Lcd_E=1;
}
//******************************************//
//***************Lcd写指令函数**************//
voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC)
{
if(BuysC)Lcd_ReadStatus();
Lcd_Data=TempData;
Lcd_RS=0;
Lcd_RW=0;
Lcd_E=0;
Lcd_E=0;
Lcd_E=1;
}
//******************************************//
//***************Lcd初始化函数**************//
voidLcd_Init(void)//LCM初始化
{
Lcd_Data=0;
Lcd_WriteCmd(0x38,0);//三次显示模式设置,不检测忙信号
Delay(6000);
Lcd_WriteCmd(0x38,0);
Delay(6000);
Lcd_WriteCmd(0x38,0);
Delay(6000);
Lcd_WriteCmd(0x38,1);//显示模式设置,开始要求每次检测忙信号
Lcd_WriteCmd(0x08,1);//关闭显示
Lcd_WriteCmd(0x01,1);//显示清屏
Lcd_WriteCmd(0x06,1);//显示光标移动设置
Lcd_WriteCmd(0x0C,1);//显示开及光标设置
}
//******************************************//
//*********Lcd按指定位置显示一个字符*******//
voidLcd_DisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)
{
Y&=0x1;
X&=0xF;//限制X不能大于15,Y不能大于1
if(Y)X|=0x40;//当要显示第二行时地址码+0x40;
X|=0x80;//算出指令码
Lcd_WriteCmd(X,0);//这里不检测忙信号,发送地址码
Lcd_WriteData(DData);
}
//******************************************//
//***按指定位置显示一串字符**************//
voidLcd_DisplayString(unsignedcharX,unsignedcharY,unsignedchar*DData)
{
unsignedcharListLength;
ListLength=0;
Y&=0x1;
X&=0xF;//限制X不能大于15,Y不能大于1
while(DData[ListLength]!
='\0')//若到达字串尾则退
{
if(X<=0xF)//X坐标应小于0xF
{
Lcd_DisplayOneChar(X,Y,DData[ListLength]);//显示单个字符
ListLength++;
X++;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 预置 定时 显示 报警 系统 设计 报告