序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机智能小区安防系统的设计
1 系统可行性分析
1.1 硬件模块
报警器硬件由温度烟雾信号采集模块、煤气信号采集模块、防盗报警模块、光报警模块,键盘显示模块以及单片机与CAN总线模块组成。
1.1.1单片机控制模块
经过比较,作者决定使用常用、廉价的单片机AT89C51作为主控制器。单片机AT89C51是由ATMEL公司生产的51单片机。简单介绍如下:
AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口, AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
AT89C51的引脚图如下图所示:
图1.1AT89C51芯片的引脚图
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
此单片机主要用于控制,包括响应中断、延时、判断、发送对方号码等等。
1.1.2温度烟雾信号采集模块
要准确的进行火灾报警,选择合适的温度传感器和烟雾传感器是准确报警的前提。综合考虑各种因素,作者选择集成数字温度传感器DS18B20和烟雾传感器NIS-09C用作采集系统的敏感元件。
1.1.3煤气信号采集模块
煤气泄露报警:一当室内煤气超过正常标准时,它将通过传感器向家庭控制器发出报警信号。对于密度大于空气的气体,感应器放在气体源的下方。对于密度小于空气的气体,感应器放在气体源的上方,当煤气泄露报警启动,就通知管理中心。综合考虑各种因素,作者选用气敏传感器TP-1.1A,用作煤气报警。
1.1.4防盗报警模块
防盗报警:在小区每一住户内安装防盗报警装置。当住户家中无人时,可把家庭内的防盗报警系统设置为布防状态,当窃贼闯入时,报警系统自动发出警报并向小区安保中心报警。综合考虑各种因素,选用热电释红外传感器RE200B来进行防盗报警。
1.1.5光报警模块
由AT89C51的P1口的P1.4~P1.7分别控制4个发光二极管,予以光报警。P1.4~P1.7控制的灯依次为正常信号灯、煤气信号灯、火灾信号灯和防盗信号灯。当这些输出端输出低电平时,对应的信号灯便会发光报警。
图1.2 光报警电路图
1.1.6数据采集模块
A/D转换是本系统比较关键的一步,通过A/D转换,成功的把所要测量和控制的数据采集过来,是保证系统功能可以实现的第一步。为了设计好A/D转换模块,使它达到预想的A/D转换效果,必须选定合适的A/D转换器。
A/D转换电路采用了常用的8位8通道数模转换专用芯片ADC0809,ADC0809由8路模拟开头、地址锁存与译码器、8位A/D转换器和三态输出锁存缓冲器组成。
(1) 其主要性能指标为:
①分辨率为8位。
②最大不可调误差:0808为
1/2LSB,0809为
1LSB。
③单电源+5v供电,基准电压由外部提供,典型值为+5v,此时允许输入模拟电压为0—5V。
④具有锁存控制的8路模拟选通开关。
⑤可锁存三态输出,输出电平与TTL电平兼容。
功耗15mW。
⑥转换速度取决于芯片的时钟频率。时钟频率范围500KHz时,转换时间为128μs。
(2)ADC0809引脚功能
图1.3为ADC0809引脚图,说明如下;
图1.3 ADC0809芯片引脚
①IN0—IN7——8路模拟信号输入端。
②ADDA、ADDB、ADDC——3位地址码输入端。8路模拟信号转换选择由A、B、C决定。A为低位,C为高位。与低8位地址中A0—A2连接。由A0—A2地址000-111选择INO-IN7八路A/D通道。其中模拟开关与输入通道的关系见表3.1。
③CLK——外部时钟输入端。时钟频率高,A/D转换速度快。允许范围为10—1280KHz,典型值为640KHz,此时A/D转换时间为100μs通常由MCS-51型单片机ALE端直接或分频后与0809CLK端相连接。当MCS-51型单片机无读写外RAM操作时,ALE信号固定为CPU时钟频率的1/6。若晶振为6MHz,则1/6为1MHz时.A/D转换时间为64μs。
表1.1路模拟开关与输入通道的关系表
通入通道 | IN0 | IN1 | IN2 | IN3 | IN4 | IN5 | IN6 | IN7 |
A | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
B | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
C | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
④D0—D7——数字量输出端。
⑤
——A/D转换结果输出允许控制端。当面端为高电平时,允许将A/D转换结果从Do—D7端输出。通常由MCS- 51型单片机的
端与0809
片选端(例如P2.0)通过或非门与0809
端相连接。当DPTR为FEFFH,且执行MOVX A,@DPTR指令
后,RD和P2.0均有效,或非后产生高电平,使0809
端有效,0809将A/D转换结果送入数据总线Po口,CPU再读入A中。
⑥ALE——地址锁存允许信号。8路模拟通道地址由A、B、C输入,在0809的ALE信号有效时将该8路地址锁存(注意0809ALE与803lALE的区别)。
⑦START——启动A/D转换信号。当START端输入一个正脉冲时,立即启动0809进行A/D转换。START端与ALE端连在一起,由MCS-51型单片机WR与0809片选端(例如P2.0)通过或非门相连,当DPTR为EFF8H,执行“MOVX@DPTR,A”指令后,将启动0809模拟通道0的A/D转换。FEF8H—FEFFH分别为8路模拟输入通道的地址。执行MOVX写指令,井非真的将A中内容写进0809,而是产生WR信号和P2.o有效,从而使0809的START和ALE有效,且输出A/D通道0地址A0—A2。事实上也无法将A内容写进0809,0809中没有一个寄存器能容纳A中内容,0809的输入通道是IN0—IN7,输出通道是D0—D7,因此,执行“MOVX@DPTR,A”指令与A中内容无关,但DPTR地址应指向当前A/D的通道地址。
⑧EOC——A/D转换结束信号。当启动0809A/D转换后;EOC输出低电平;转换结束后,EOC输出高电平,表示可以读取A/D转换结果。该信号取反后,若与MCS-51型单片机引脚INT0或连接,可引发CPU中断,在中断服务程序中读A/D转换的数字信号。若MC5—51型单片机两个中断源已用完,则EOC也可与P1口或四口的一条端线相连,不采用中断方式,采用查询方式,查得EOC为高电平后,再读A/D转换值。
⑨VREF+、VREF- ——正负基准电压输入端。基准电压的典型值为+5v,可与电源电压(+5v)相连,但电源电压往往有一定波动,将影响A/D精度。因此,精度要求较高时,可用高稳定度基准电源输入。当模拟信号电压较低时,基准电压也可取低于5v的数值。
⑩Vcc——正电源电压(+5v)。GND——接地端。
ADC0809的A/D转换过程是在时钟信号的协调下进行的。ADC0809的时钟信号由CLOCK端送入,其最高频率为640MHz,在这个最高频率下ADC0809的A/D转换时间为100uS左右。
A/D转换结束后,A/D转换的结果(8位数字量)送到三态锁存输出缓冲器,此时A/D转换结果还没有现在DB0—DB7八条数字量输出线上,单片机不能获取之。单片机要想读到A/D转换结果,必须使ADC0809的允许输出控制端OE为高电平,打开三态输出锁存器,A/D转换结果出现在DB0—DB7上。
1.1.7键盘显示模块
单片机系统所用的键盘有编码键盘和非编码键盘两种。
编码键盘是只要按下它的某一个键,就能产生这个键的代码,与此同时还产生一个脉冲信号,以通知CPU接收键码。编码键盘使用方便,也不用编写太复杂的程序。但硬件电路复杂,比非编码简易键盘成本要高。
非编码键盘也称简易键盘,它的按键是排列成行、列矩阵形式的。按键的作用只是简单地实现接点的接通或断开,因此必须有一套相应的程序与之配合,才能产生相应的键码,它基本上不需要附加什么硬件电路。但需要通过软件来解决按的识别、防抖动以及如何产生键码的问题。
为了节约成本,本系统选用简易键盘作为拨号输入。
单片机所用的显示有LED和LCD两种,从设计的难度和成本造价来说LCD都要高于LED。本作品要显示的是要拨的号码和来电显示对方机子的号码,为数字显示。因此,本作品选用了由LED组成的7段发光显示器,它有简单、经济、易于与单片机接口等优点。7段LED选用的是共阳极的。
1.1.8CAN总线协议
CAN(Controller Area Network)总线,又称控制器局域网,是Bosch公司在现代汽车技术中领先推出的一种多主机局域网。由于其卓越的性能,极高的可靠性,独特灵活的设计和低廉的价格,现已广泛应用于工业现场控制、智能大厦、小区安防、交通工具、医疗仪器、环境监控等众多领域。
CAN的通信协议主要由CAN控制器完成。CAN控制器主要由实现CAN总线协议的部分和实现与微处理器接口部分的电路组成。对于不同型号的CAN总线通信控制器,实现CAN协议部分电路的结构和功能大多相同,而与微处理器接口部分的结构和方式存在一些差异。
CAN控制器选用SJA1000作为控制器。SJA1000是高集成度CAN控制器。具有多主结构、总线访问优先权、成组与广播报文功能及硬件滤波功能。输入时钟频率为16MHZ时钟,输出可编程控制。由以下几部分构成:接口管理逻辑、发送缓存器、接收缓存器、位流处理器、位定时逻辑、收发逻辑、错误管理逻辑、控制器接口逻辑等。
SJA1000在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间的数据通信。该电路的主要功能是通过CAN总线接收来自上位机的数据进行分析组态然后下传给下位机的控制电路实现控制功能,当CAN总线接口接收到下位机的上传数据,SJA1000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析。AT89C51是CAN总线接口电路的核心,其承担CAN控制器的初始化、CAN的收发控制等任务。
CAN总线收发器选用PCA82C250作为总线收发器。 PCA82C250是CAN 协议控制器和物理总线之间的接口。82C250 可以为总线提供不同的发送性能,为CAN 控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI)实现热防护等。
接口主要元件电路原理图见图2.6,在进行电路设计时应注意以下几点,否则达不到预期的效果。
(1)总线两端必须接两个终端匹配电阻RT,忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。
(2)PCA82C250为CAN控制器和物理总线之间的接口,它可以提供向总线的
差动发送能力和CAN控制器的差动接收能力,TXD和RXD引脚分别发送经过驱动后的发送和接收信号。其引脚8(RS)可以选择2种不同的工作方式:把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低,总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于RS的阻值,实践表明15-200k为RS较理想的取值范围,在这种方式下,可以使用双绞线作总线(本系统采用该工作方式)。
(3)SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5VCC上,否则,
将不能形成CAN协议要求的电平逻辑。因本系统传输距离近,环境干扰小,可以不用电流隔离,这样可以直接把82C250的VREF端(约为0.5VCC)与SJA1000的RX1相连,从而简化了电路。
(4)设计时将SJA1000的CLOCKOUT的时钟信号接至AT89C51的时钟电路输
入端,作为AT89C51的外部时钟输入,解决了时钟同步问题;SJA1000中断输出信号/INT接至AT89C51的/INT0端,通过中断方式与AT89C51通信。
图1.6 接口主要元器件电路图
1.1.9传感器模块
上述所说的各种信号采集模块都是经过传感器来进行信号采集,再送到ADC0809。
传感器是一个从系统接收功率,通常以另一种形式将功率送到第二个系统中的器件。按照这一定义,可以说传感器是一种吸收(提取)、转换和传送能量的器件。严格地说,应该区别检测和变换这两个概念。前者只是将被测量转移到系统中去,而后者从字面上说是将被测量的种类加以改变。有时,对被测量只进行一次变换还不够,必须进行第二次、第三次变换,一直到所希望的能量形式为止。传感器转换能量的理论基础都是利用物理学、化学等各种现象和效应来进行能量形式的变换。随着微电子和计算机技术的发展,传感器输出信号的形式应尽可能是电量。
传感器的组成按其定义一般是由敏感元件、变换元件和测量电路三部分组成。除自源型传感器外,还需外加辅助电源,用框图表示,如图1.7所示。由图可知,传感器由以下几个部分组成:
图1.7 传感器的组成框图
(1)敏感元件(预变换器) 直接感受被测量(一般为非电量)并将其转换为与被测量有确定关系的易变成电量(包括电量)的其它量的元件。
(2)转换元件(变换器) 它能将其它物理量直接转换为有确定关系的电量的元件。
(3)测量电路(变换电路) 把转换元件输出的电信号变为便于处理、显示、记录、控制的可用电信号的电路。测量电路的类型视转换元件的不同而定.经常采用的有电桥电路和其它特殊电路,加高阻抗输入电路、脉冲电路、振荡电路等。
(4)辅助电源 供给转换能量。
1.2 软件模块
通过上面分析,决定选用C51系列单片机作为控制器,那么它的软件编写就要按照单片机语言:C语言或汇编语言来编写,这里选用执行效率高的汇编语言编写。 开发工具为keil c51,它的功能强大,支持c语言和汇编语言的编写与调试,其软件模拟I/O口也会给软件调试带来极大的方便。
1.2.1温度烟雾信号采集模块
进行火灾报警,需要温度和烟雾两个传感器,当温度达到一定的度数和烟雾的浓度达到一定的百分比时,就进行火灾报警。在本设计中,作者选用了数字温度传感器AS18B20和烟雾传感器NIS-09C来进行报警。
把数字温度传感器AS18B20和烟雾传感器NIS-09C分别接到ADC0809IN4口和IN5口。当进行火灾报警时,ADC0809就将采集到的数据信号存储在数据区,进行A/D转换,并将指针指向下一个通道。
1.2.2煤气信号采集模块
进行煤气报警,作者选用了常用的家庭煤气报警传感器TP-1.1A。将煤气传感器TP-1.1A接到ADC0809的IN6口。当进行煤气报警时,ADC0809就将采集到的数据信号存储在数据区,进行A/D转换,并将指针指向下一个通道。
1.2.3防盗报警信号采集模块
人体有恒定的体温,一般在37摄氏度,所以会发出特定波长的红外线。热电释红外传感器探头就是靠探测人体发射的红外线而进行工作。人体发出的红外线,通过菲涅尔滤光片增强后,聚集到红外感应源上。热电式元件在接收到人体红外辐射温度发生变化时将会失去电荷平衡,向外释放电荷,后续电路经检测处理后产生报警信号。进行防盗报警时,作者选用了价格比较合适的热电释红外传感器RE200B。当人体靠近热电释红外传感器RE200B到一定距离时,热电释红外传感器就会报警,ADC0809就会将采集的信号存储在数据区,进行A/D转换。
1.2.4光报警
把四个发光二极管分别接在AT89C51的P1.4~P1.7口。P1.4~P1.7口控制的灯依次为正常信号灯、煤气信号灯、火灾信号灯和防盗信号灯。当这些输出端输出低电平时,对应的信号灯便会发光报警。
1.2.5信号采集模块
数据采集部分的程序设计包括:驱动ADC0809的IN4,IN5,IN6和IN7进行A/D转换,分别由子程序ADC1(温度转换),ADC2(烟雾浓度转换),ADC3(煤气浓度转换)和ADC4(防盗转换)完成;单片机接收转换好的数据,存入指定内存单元,由INT1中断服务程序完成。每次驱动A/D转换后等待外部中断1,中断到来说明A/D转换已经完成,通过中断服务程序读取转换得到的数据。
数据采集模块的工作原理:各类传感器采集到数据后模拟量传送到ADC0809,0809将转换成的数字量传给89C51,最后单片机将采集到的数据送到SJA1000通过CAN总线收发器82C250传上总线,完成数据采集工作,并由CAN 总线通过RS232传给上位机。
1.2.6键盘显示模块
本单元需要两个并行口:一个作为行信号输出,它与显示器的位选码共享一个口,这里作者选用P2口的P2.2和P2.3;另一个作为列信号的读入口,这里选用P0口的前四位P2.4至P2.7。
1.2.7CAN总线通讯模块
CAN总线测控系统的通信软件分为3部分:CAN初始化、数据发送和数据接收。
CAN初始化,其主要是设置CAN的通信参数。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间可写访向,因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,并且系统中各CAN控制器的总线定时寄存器的初始化字必须相同。
数据发送,现场的各传感器把环境多参数的检测信号(数字量、模拟量、开关量)进行转换处理后,发向CAN控制器的发送缓冲区,然后启动CAN控制器的发送命令,此时CAN控制器将自动向总线发送数据,不再需传感器的微控制器进行干预。
数据接收,整个微机测控系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向AT89C51微控制器发送接收中断,启动中断接收服务程序,AT89C51通过执行中断接收服务程序,从CAN控制器的接收缓冲区读取数据,并对其进行进一步处理工作。
2 硬件单元电路设计
2.1 ADC0809和四个报警传感器的接口电路设计
ADC0809和四个报警传感器的接口电路设计图如图2.1所示。
图2.1 ADC0809和传感器的接口电路图
上图所示的四个插针分别代表温度传感器,烟雾传感器,煤气传感器和防盗传感器。因为传感器进行报警时,要将传感器放于不同的位子,所以在设计电路图时,作者就选用插针,这样,用软线把插针与传感器连接起来,显得更加方便,可以将传感器放于需要的位子。
元器件的选取:
ADC0809芯片一块
插针四个(三排插针两个,两排插折两个)
47K的电阻一个,51欧姆的电阻一个,50K的电阻两个
2.2 AT89C51与ADC0809接口电路
AT89C51与ADC0809接口电路如2.2所示。
图2.2 AT89C51与ADC0809接口电路图
ADC0809的通道选择地址A,B,C分别由AT89C51的P0.0~P0.2经地址锁存器74LS373输出提供。当P2.7=0时,与写信号WR共同选通ADC0809。图中ALE信号与ST信号连在一起,在WR信 号的前沿写入地址信号,在其后沿启动转换。ADC0809的转换结束状态信号EOC接到AT89C51的INT1引脚,当A/D转换完成后,EOC变为高电平,表示转换结束,产生中断。在中断服务程序中,将转换好的数据送到指定的存储单元。
AT89C51的频率跟ADC0809的频率不一致,所以选用74LS74进行二分频。
元器件的选取:
AT89C51单片机一块
ADC0809芯片一块
74LS74芯片一块
74LS02芯片一块
74LS04芯片两块
2.3 AT89C51与光报警接口电路
AT89C51与光报警接口电路如图2.3所示
图2.3 AT89C51与光报警接口电路图
把四个发光二极管分别接在AT89C51的P1.4~P1.7口。P1.4~P1.7口控制的灯依次为正常信号灯、煤气信号灯、火灾信号灯和防盗信号灯。当进行一种报警时,所对应的发光二极管就会亮。例如,当进行火灾报警时,P1.6口的发光二极管就会亮。
元器件的选取:
四个340欧姆的电阻
四个发光二极管
2.4 键盘显示接口电路
键盘显示接口电路如图2.4所示。
图2.4 键盘显示接口电路图
具体扫描法:(1)将全部行线Y0-Y3(行)置低电平,然后检测列的状态。只要有一列的电平为低,则表示按键中有键被按下,而且闭合的键位于低电平与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中没有键按下。(2)判断闭合键所在的位置。在确定有按键按下以后,就可以进入确定具体闭合键的过程。其方法是:依次将行线置低电平,即在置某根行线为低电平时,其线为高电平。在确定某根行线位置为低电平后,再将行检测各列的电平状态。若为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
元器件的选取:
按键选用我们熟悉的四脚矩形按键8个
9012PNP放大三极管4个
四位共阳LED数码管一块
4.7k的限流电阻4个
2.5 AT89C51与CAN总线接口电路
AT89C51与CAN总线接口电路图如图2.5所示。
图2.5 AT89C51与CAN总线接口电路图
在系统中,SJA1000的片选信号一般由地址总线经译码获得,并由此决定出CAN控制器各寄存器的地址。在本设计中,作者用单片机AT89C51的P2.7为片选信号。所以,SJA1000的地址为:7F00-7F32H。
SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的VREF端(约为0.5 Vcc)与RX1脚相连,从而简化了电路。
当上电复位时,AT89C52的上电复位,需要从低到高的电平变化来激活,而SJA1000的17脚RST被激活,需要出现一个由高电平到低电平的跳变,因此,这必须加一个反相器。
82C50第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。而在波特率较低、总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于民的阻值,实验数据表明15~200kΩ为Rs较理想的取值范围,在该方式下,可以使用平行线或双绞线作总线。在本设计中,Rs选用150K。
元器件的选取:
SJA1000芯片一块
PCA82C250芯片一块
74LS04芯片一块
16MHZ晶振一个
22PF的二极管两个
60欧姆的电阻一个
150K的电阻一个
系统原理图
系统PCB图
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!