单片机课设.docx
《单片机课设.docx》由会员分享,可在线阅读,更多相关《单片机课设.docx(9页珍藏版)》请在冰豆网上搜索。
单片机课设
单片机课设
————————————————————————————————作者:
————————————————————————————————日期:
ﻩ
单片机课程设计
——简易安防声光报警器
院 系:
信息工程学院
班级:
08自动化二班
姓名:
佘东
学号:
200850235
指导老师:
盘宏斌
完成日期:
2011年10月27
目 录
一、前言……………………………………………………2
二、设计题目………………………………………………2
三、硬件电路设计内容……………………………………2
1、单片机端口简介及引脚…………………………………2
2、四位数码管原理及引脚…………………………………3
3、部分电路及简介…………………………………………4
A.晶振电路………………………………………………4
B.复位电路………………………………………………4
C.四位七段数码管………………………………………5
D.声光显示电路…………………………………………5
E.整体电路………………………………………………5
四、程序设计………………………………………………5
五、心得体会………………………………………………9
前言
安防声光报警器相对于现在社会已是不可或缺的电子产品,可以有效的防范可能导致的不安全因素,从而保证了人身财产安全。
当生产现场发生事故或火灾等紧急情况时,火灾报警控制器送来的控制信号启动声光报警电路,发出声和光报警信号,完成报警目的。
在本次课程设计,安防声光报警利用STC单片机控制电路实现声光报警的功能。
一、设计题目:
简易安防声光报警器
自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入门禁和红外探测两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。
二、硬件电路设计内容:
1、单片机端口简介及引脚:
P0口(P0.0~P0.7) 为双向8位三态I/O口,当作为I/O口时,可直接连接外部I/O设备。
它是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载。
一般作为扩展时地址/数据总线;
P1口(P1.0~P1.7)为8位准双向I/O口,可定义为输入线或输出线(作为输入时,口锁存器必须置1),可驱动4个TTL负载;
P2口(P2.0~P2.7)为8位准双向I/O口,当作为I/O口时,可直接连接外部I/O设备。
它是与地址总线高8位复用,可驱动4个TTL负载。
一般作为扩展时地址总线的高8位,可驱动4个TTL负载。
P3口(P3.0~P3.7) 为8位准双向I/O口,是双功能复用口,可驱动4个TTL负载。
2、四位数码管原理及引脚:
3、部分电路及简介:
A.晶振电路:
振荡频率主要由外接的石英晶振确定。
一般石英晶振的振荡频率为12MHz或 11.059MHz;1.2MHz~12MHz。
B.复位电路:
复位电路:
使CPU和系统中的其它部件都处于一个确定的初始状态,并从这个初始状态开始工作。
C.四位七段数码管:
D.声光显示电路:
E.整体电路:
四、程序设计部分:
#include
#define uchar unsignedchar
sbitD1=P1^0;
sbit D2=P1^1;
sbit wela1=P2^0;
sbit wela2=P2^1;
sbitwela3=P2^2;
sbitwela4=P2^3;
sbit voice=P1^2;
voidDelay1(uchar);
voidDelay2(uchar);
void main(void)
{
IP=0x05;
ﻩIT0=1;
IT1=1;
EX0=1;
ﻩEX1=1;
EA=1;
while(1)
ﻩ{
ﻩ}
}
void ISR0(void)interrupt0
{
ﻩD1=0;
ﻩ voice=0;
wela1=1;
ﻩ wela2=1;
wela3=1;
ﻩ wela4=1;
ﻩP0=0xf0;
ﻩwela1=0;
ﻩwela2=0;
wela3=0;
ﻩwela4=0;
P0=0x7f; 显示“8”。
ﻩwhile
(1)
{
Delay2(1);
voice=!
voice;
}
}
void ISR1(void)interrupt2
{
D2=0;
voice=0;
ﻩwela1=1;
ﻩwela2=1;
ﻩwela3=1;
wela4=1;
P0=0xf0;
wela1=0;
wela2=0;
ﻩwela3=0;
wela4=0;
P0=0x06; 显示“1”。
while
(1)
ﻩ{
Delay2(1);
voice=!
voice;
ﻩ}ﻩ
}
void Delay1(uchar t)
{
while(--t);
}
voidDelay2(uchart)
{
while(t--)
{
Delay1(245);
ﻩ Delay1(245);
}
}
五、课程设计心得体会:
作为一名自动化专业的大四学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
ﻫ在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
ﻫ 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:
C51语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过查阅大量有关资料,互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。
更重要的是如何把自己平时所学的东西应用到实际中。
虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。
我认为这个收获应该说是相当大的。
觉得课程设计反映的是一个从理论到实际应用的过程,更远一点可以联系到以后毕业之后从学校踏上社会的一个过程。