单片机的防盗自动报警电子密码锁.docx
- 文档编号:25534195
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:12
- 大小:118.46KB
单片机的防盗自动报警电子密码锁.docx
《单片机的防盗自动报警电子密码锁.docx》由会员分享,可在线阅读,更多相关《单片机的防盗自动报警电子密码锁.docx(12页珍藏版)》请在冰豆网上搜索。
单片机的防盗自动报警电子密码锁
微处理器原理与接口课程设计
设计题目:
八路抢答器
学院:
电子工程学院
年级:
2013级
专业:
电子信息科学与技术
姓名:
任航
学号:
20135144
指导教师:
庄培栋、王积翔
2015年12月17日
目录
1绪论............................................................................................................................1
1.1背景资料...............................................................................................................1
1.2八路抢答器的设计要求及其框图........................................................................1
1.3方案设计...............................................................................................................1
2硬件电路的设计........................................................................................................2
2.1八路抢答器的接口电路.......................................................................................2
2.2单元电路设计.......................................................................................................2
3软件设计....................................................................................................................2
3.1系统的主程序设计...............................................................................................2
3.2相关程序...............................................................................................................3
4试验台连线................................................................................................................7
5结论..........................................................................................................................8
参考文献.....................................................................................................................9
1.绪论
1.1背景资料
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。
但抢答器的使用频率较低,要么制作复杂,要么可靠性低。
如果专门购置一台抢答器虽然在经济上可以承受,但是每年的使用次数极少,往往因长期存放使抢答器损坏,在购置的麻烦和及时性会影响活动的开展,因此设计了本抢答器。
1.2八路抢答器的设计要求及其框图
本项目利用按键及LED数码管实现由1名主持人和8个参赛队组成的8路抢答器系统。
具体功能:
当主持人按下抢答按键,参赛队在10秒钟内可以抢答。
如超过10秒则不能抢答。
如抢答成功,则显示抢答的队号。
如抢答成功必需在60秒内回答完成。
如超过时间则抢答无效,且显示无效指示。
如在60秒内回答完成(抢答队再次按下抢答按键表示回答完成)则抢答正确成功,且显示有效。
当主持人按下复位按键时,系统回到初始状态。
图1-1
1.3方案设计
该系统采用51单片机作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
MCS-51单片机特点如下:
(1)可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
(2)单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
(3)控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支。
2.硬件电路设计
2.1八路抢答器的接口电路
图1-2
2.2单元电路设计
(1)抢答器电路:
该电路完成两个功能:
一是分辨选手按键的先后,并锁存优先抢答者的编号,同时译码显示编号;二是禁止其他选手按键操作无效。
如有再次抢答需主持人将开关重置,“清除”然后再进行下一次抢答。
(2)时序控制电路设计:
时序控制电路是抢答器设计的关键,它要完成以下功能:
a:
主持人将开关拨到“开始”位置时,抢答电路和定时电路进行正常抢答工作状态。
b:
当参赛选手按动抢答键时,抢答电路和定时电路停止工作。
(3)复位电路的设计:
外部中断和内部中断并存,单片机硬件复位端,只需要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值。
软件复位实际上就是当程序执行完之后,将程序通过一条指令让它完成复位。
(4)时钟震荡电路:
在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元。
3.软件设计
3.1系统的主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令前必须先设定好抢答时间,因而在编开始抢答前的程序得先编写设定时间的程序,当设定好了以后,主持人发布抢答命令按键“9”,程序开始打开定时,中断开始倒计时,然后调用键盘扫描主程序。
当在扫描到有人按下了答题键,马上关闭T0,调用显示程序,封锁键盘。
图1-3
3.2相关程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
uintCON8279=0xCfE9;//8279控制口地址
uintDATA8279=0xCFE8;//8279数据口地址
ucharLED[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码表0~9
ucharcodekeyval[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x10,0x11,0x12,0x13,0x18,0x19,0x1a,0x1b};
ucharcodeSEG[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
uchari;
uintk,r=0;
inta;
voidinit_8279()
{
XBYTE[CON8279]=0x00;//设置8279工作方式
XBYTE[CON8279]=0xD1;//清除8279显示
while(XBYTE[CON8279]&0x80);//等待清除结束
XBYTE[DATA8279]=0x34;//设置8279分频系数
}
ucharReadKey()
{
if(XBYTE[0xCFE9]&0x07){//是否有键按下
XBYTE[0xCFE9]=0x40;
i=XBYTE[0xCFE8];//读键值
}
return0;
}
voidDisplay(uchary)
{
XBYTE[0xCFE9]=0x80;
XBYTE[0xCFE8]=SEG[y];
}
voiddelay()//延时
{
for(k=0;k<8000;k++)
{};
}
voiddelay1(uinttem)//延时
{
uintii,jj;
for(ii=0;ii { for(jj=0;jj<100;jj++); } } intDisplay10()//十秒倒计时 { a=0; XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[1]; XBYTE[DATA8279]=LED[0]; init_8279(); XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[0]; for(i=9;i>=0;i--){ XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[i]; if(XBYTE[0xCFE9]&0x07) break; delay1(900); }delay1(900);if(i<=1) a=1; returna; } voidDisplay60()//六十秒倒计时 { inti,j; r=0; XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[1]; XBYTE[DATA8279]=LED[0]; init_8279(); XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[6]; XBYTE[DATA8279]=LED[0]; delay1(1000); XBYTE[CON8279]=0x90; for(k=5;k>=0;k--){ if(r==1)break; for(i=9;i>=0;i--){ XBYTE[CON8279]=0x90; XBYTE[DATA8279]=LED[k]; XBYTE[DATA8279]=LED[i]; if(r==1)break; delay1(900); } } } voidjianpan(){ Display(0); } voidmain(){ EX0=1; IT0=1; EA=1; loop: init_8279(); while (1){ jianpan(); while(XBYTE[0xCFE9]&0x07) { jianpan(); ReadKey(); i=i-191; while(i==9) { Display10(); if(a==1){jianpan();P1=0xfe;a=0;gotoloop;}else break;} ReadKey(); i=i-191; Display(i); delay1(2000); Display60(); r=0; gotoloop; } } } intinterruptEx0()interrupt0 { r=1; } 4.实验台连线 将键盘的KA10至KA12分别接8279的KA0至KA2;键盘的RL10至RL17接8279的RL0至RL7;键盘的SHIFT1、CTRL1接8279的SHIFT、CTRL;单脉冲输出端P+接单片机仿真版上的INTO(注: 按一下左下角蓝色按钮PULSE,则产生一次下降沿,激活中断)。 5.结论 刚刚拿到课程设计的选题时,在没有做系统的分析的情况下着手去做,发现有很多问题,在编写程序时运用终端和键盘和定时奇的结合上显得手足无措,渐渐地意识到理论课的掌握情况运用到实践中还是存在着很多的不足,在运用汇编语言编写程序时,只能编写出基本的抢答十秒倒计时和答题的六十秒倒计时以及选手抢答的按键部分程序,三者和主持人控制的部分结合时总是达不到课程设计的要求。 只能换结构较为清晰地C语言进行编写,达成了基本的要求。 但是有的问题还是没能解决,如在选手回答完问题后,未能加入主持人判断题是否回答正确的程序,回答的结果未能清晰地显示出来。 同时,本次课程设计未能达到有效的创新,这是本次课程设计上最大的不足。 通过本次课程设计,我深刻的了解到自身对于理论知识的不足以及实际应用方面的缺陷,也算有了很大的收获,希望再接再厉,完善自己。 参考文献 [1]胡汉才.单片机原理及接口技术[M].北京: 清华大学出版社,2004. [2]马忠梅.单片机C语言Windows环境编程宝典[M].北京: 北京航空航天大学出版社,2004. [3]康华光.电子技术基础(数字部分).高等教育出版社,2004. [4]李广弟,朱月秀.单片机基础(第3版).北京航空航天大学出版社,2004. [5]周立功.单片机系统设计与实践.北京航空航天大学出版社,2006. [6]张伟.单片机原理及应用.机械工业出版社,2006. [7]阎石.数字电子技术基础.高等教育出版社,1998.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 防盗 自动 报警 电子 密码锁
![提示](https://static.bdocx.com/images/bang_tan.gif)