单片机课程设计报告.docx
- 文档编号:756932
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:12
- 大小:148.93KB
单片机课程设计报告.docx
《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告
一、课程设计目的:
1、单片机是一门技术性,应用性、实践性很强的技术。
课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
在实际生活中有好多地方都用到了单片机,因此学习好这门课程有着十分重要的意义。
2、单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境KeilC51编程调试,并使用STCISP调试工具采用串口下载方式联调制作的单片机最小系统。
3、单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO口的功能扩展,使制作的单片机系统具有一定的功能。
二、课程设计要求:
1.设计任务:
用单片机设计一个简易安防声光报警器。
2.控制要求
自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入探测两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。
三、课程设计的主要内容:
1、51单片机简介
51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机即是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
当前常用的51系列单片机主要产品有:
Intel的:
80C31、80C51、87C51,80C32、80C52、87C52等;ATMEL的:
89C51、89C52、89C2051等;Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品
本次设计中所采用的是STC公司生产的89c54系列产品,能够兼容51单片机语言,同时又具有良好的性能。
2、keil简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
因此,本次课程设计的程序都采用keiluvision2调试,编译。
3、设计过程和有关说明:
(1)警情探测:
在该设计中,需采用两路外部中断输入门禁报警和红外报警,分别采用两个小按键模拟。
其中一个按键模拟门禁报警,对应外部中断0;另一个按键模拟红外报警,对应外部中断1。
(2)报警设计:
正常状态下,数码管不显示,当发生门禁报警时,系统发出声光报警信息并在数码管显示1;,当发生红外报警时系统发出声光报警信息并在数码管显示2。
只有由主人按下报警接触按钮或系统复位后,才能解除声光报警并将数码管的数字重置为0。
4、硬件电路设计:
本系统是基于51系列单片机的简易安防声光报警系统,主要包括的硬件电路模块有:
单片机最小系统、七段数码管显示模块、安防报警器(点触开关模拟)、声光报警。
1、单片机最小系统简介
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
结构图如右图所示:
各部分的功能介绍如下:
复位电路:
由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.
晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)
单片机:
一片AT89S51/52或其他51系列兼容单片机。
特别注意:
对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.
其电路系统框图如下:
图1系统原理框图
特别说明:
由于实验条件有限,本课程设计中所涉及到的报警器装置采用点触开关模拟,具体电路图如图2所示。
当有报警事件发生时,即开关被按下,报警器输出低电平,单片机由此产生一个中断事件,并对其作出相应的处理,图中C53是用于消除点触开关动作时产生的干扰,防止单片机发生误动作。
图2报警器模拟电路
整体的硬件电路图如图3所示。
图3系统硬件电路图
5、程序设计
基于STC89C51单片机的功能特点,并根据系统的要求编写出基于keilC51的程序,首先单片机上电复位,并进行初始化包括寄存器和数码管,当发生报警事件时,单片机驱动声光报警装置并且在数码管上显示相应的报警信息,退出中断时,单片机检测报警解除按钮,当报警解除按钮被按下时单片机关闭声光报警并清除数码管上的报警信息,具体的程序流程如图4所示。
图4主程序流程图
图5中断函数流程图
参考程序如下所示:
#include
#defineucunsignedchar
#defineDATAPORTP0//此为数码管段码口如果是P1口则将P0修改为P1
/*********下面的是数码管位选端口
对应自己的板子进行修改
如果跟仿真程序里面一样到就不用改
***************/
sbitSEG0=P2^0;//第1位数码管
sbitSEG1=P2^1;//第2位数码管
sbitSEG2=P2^2;//第3位数码管
sbitSEG3=P2^3;//第4位数码管
sbitLED1=P3^4;//报警灯1
sbitLED2=P3^5;//报警灯2
voidDelay(ints);//函数声明;
voidKeyScan(void);//函数声明
voidDisplay(void);//函数声明
voidInit_all(void);
voidTrans(void);
sbitKEY1=P1^4;//定义相应的按键端口
sbitKEY2=P1^3;//定义相应的按键端口
sbitKEY3=P1^6;//定义相应的按键端口
sbitKEY4=P1^7;//定义相应的按键端口
unsignedcharconstsegment[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0123456789
unsignedcharSeg[4]={0,0,0,0};//存放各个数码管显示数字的变量
ucalarm1,alarm2;
voidDelay(ints)//短暂延时函数
{
while(--s);
}
voidKeyScan(void)//函数定义
{
if(KEY1==0)//如果按钮1按下
{Delay(5000);//延时去抖
if(KEY1==0)//如果还是按下
;
}
if(KEY2==0)//如果按钮2按下
{Delay(5000);//延时去抖
if(KEY2==0)//如果还是按下
;
}
if(KEY3==0)//如果按钮3按下
{Delay(5000);//延时去抖
if(KEY3==0)//如果还是按下
{
alarm1=0;
alarm2=0;
}
}
if(KEY4==0)//如果按钮4按下
{Delay(5000);//延时去抖
if(KEY4==0)//如果还是按下
;
}
}
voidDisplay(void)//函数定义
{
SEG0=1;//选通P2^0
DATAPORT=segment[Seg[0]];//输出相应显示值
Delay(300);//显示延时
SEG0=0;
SEG1=1;//选通P2^1
DATAPORT=segment[Seg[1]];//输出相应显示值
Delay(300);//显示延时
SEG1=0;
SEG2=1;
DATAPORT=segment[Seg[2]];//输出相应显示值
Delay(300);//显示延时
SEG2=0;
SEG3=1;
DATAPORT=segment[Seg[3]];//输出相应显示值
Delay(300);//显示延时
SEG3=0;
}
voidInit_all()
{
EX0=1;
EX1=1;
IT0=1;
IT1=1;
EA=1;
}
voidmain()
{
Init_all();
P1=0XFF;
LED1=0;
LED2=0;
while
(1){
KeyScan();
if(alarm1)
{
Seg[0]=1;
Seg[1]=1;
LED1=1;
}
else
{
Seg[0]=0;
Seg[1]=0;
LED1=0;
}
if(alarm2)
{
Seg[2]=1;
Seg[3]=1;
LED2=1;
}
else
{
Seg[2]=0;
Seg[3]=0;
LED2=0;
}
Display();
}
}
voidInt0_ISR(void)interrupt0
{
alarm1=1;
}
voidInt1_ISR(void)interrupt2
{
alarm2=1;
}
四、Proteus仿真
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SP
I调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告