1、 中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。.数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两
2、个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一
3、种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。二设计过程和有关说明:(1)警情探测:在该设计中,需采用两路外部中断输入门禁报警和红外报警,分别采用两个小按键模拟。其中一个按键模拟门禁报警,对应外部中断0;另一个按键模拟红外报警,对应外部中断1。(2)报警设计:正常状态下, 数码管不显示,当发生门禁报警时
4、,系统发出声光报警信息并在数码管显示1;,当发生红外报警时系统发出声光报警信息并在数码管显示2。只有由主人按下报警接触按钮或系统复位后,才能解除声光报警并将数码管的数字重置为0。三硬件电路设计:本系统是基于51系列单片机的简易安防声光报警系统,主要包括的硬件电路模块有:单片机最小系统、七段数码管显示模块、安防报警器(点触开关模拟)、声光报警。1.单片机最小系统简介单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。结构图如右图所示:各部分的功能介绍如下:5图1 系统原理框图特别说明:由于实验条
5、件有限,本课程设计中所涉及到的报警器装置采用点触开关模拟,具体电路图如图2所示。当有报警事件发生时,即开关被按下,报警器输出低电平,单片机由此产生一个中断事件,并对其作出相应的处理,图中C53是用于消除点触开关动作时产生的干扰,防止单片机发生误动作。报警器输出图2 报警器模拟电路整体的硬件电路图如图3所示。6图3:硬件电路原理图第四章 程序设计基于STC89C51单片机的功能特点,并根据系统的要求编写出基于keil C51的程序,首先单片机上电复位,并进行初始化包括寄存器和数码管,当发生报警事件时,单片机驱动声光报警装置并且在数码管上显示相应的报警信息,退出中断时,单片机检测报警解除按钮,当报
6、警解除按钮被按下时单片机关闭声光报警并清除数码管上的报警信息,具体的程序流程如图4所示。7图4 主程序流程图图5 中断函数流程图参考程序如下所示: #include #define uchar unsigned char #define uint unsigned int/uchar code table_data=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /uchar code table_select=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/uchar table_buffer=
7、0,0;uchar count0,count1;sbit LEDREDCON=P00;sbit LEDGREENCON=P01;sbit spe=P20;sbit Kint0=P32;sbit Kint1=P33;sbit RS=P37;sbit RW=P36;sbit E=P35;uchar FRQ=0x00;void delay(uint ms)uchar i;while(ms-)for(i=0;i120;i+); void check_busy() while(1)E=0; delay(3); RS=0;delay(3); RW=1; E=1;if(P1&0x80)=0) 判断LCD忙,
8、要不停的检测,所以需要有个大循环 /当RS=0和RW=1时,可以读忙信号。 / 10break;void write_command(uchar tempdata) /当RS=0和RW=0时,可以写入指令或者显示地址。RS=0;RW=0;P1=tempdata;E=1; /此处高电平是将数据锁存起来 delay(3);check_busy();void init_1602() /LCD1602的初始化子函数write_command(0x38);/写指令write_command(0x0c);/显示开和光标位置write_command(0x01);/显示清屏write_command(0x0
9、6);/显示光标移动设置void write_data(uint j) /向LCD1602液晶显示器写数据 /当RS=1和RW=0时,可以写入数据。RS=1; P1=j;void init() /初始化子函数TMOD = 0x11;TH0 = 0x00;TL0 = 0xff;IT0 = 1;IT1 = 1;IE = 0x8f;/EA=1;ET1=1;EX1=0;ET0=1;EX0=1;IP = 0x05;TR0 = 0;TR1 = 0;void main()init();init_1602();FRQ+;delay(1);void external_int0() interrupt 0 TR1
10、=!TR1; LEDGREENCON=1; if(LEDREDCON=1)elseLEDREDCON=0; LEDREDCON=1; while(!Kint0); delay(5); LEDREDCON=0; write_data(0); spe=spe; if(Kint0=0)void external_int1() interrupt 2LEDREDCON=1;if(LEDGREENCON=1) LEDGREENCON=0;LEDGREENCON=1;if(Kint1=0)/低电平有效 while(!Kint1);delay(5);1/显示数据 void timer0() interrup
11、t 1TH0=0xfe;TL0=FRQ;spe=spe;void timer1() interrupt 3TH0=-5000/256;TL0=-5000%256;第五章 Proteus仿真Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信
12、号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本课程设计在做完方案设计和程序编辑后后就是利用Proteus进行硬件仿真,先把需要的元器件从元件库
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1