序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的红外计数器的设计
第1章 系统硬件设计
1.1 整体方案设计
1.1.1 系统概述
本设计主要以单片机作为控制系统,然后连接其他外围电路其中包括红外传感器、键盘输入模块、LCD1602液晶显示器、报警系统等。红外检测设备采用E18-D80NK,用来检测人数的变化。键盘输入模块,用来改变可控值的大小。报警模块选用的是蜂鸣器和LED,当人数达到报警值时就会进行报警。
1.1.2 系统框图
图1-1 系统框图
1.2 最小系统模块
1.2.1 STC89C51简介
(1)概述
STC89C51单片机属于80C51系列,它属于STC公司的一款芯片,在工业领域、电子产品和通讯方面都有所应用,也是现在较为普遍的一款集成芯片。STC89C51有集成8位CPU、4K字节的ROM、128字节的RAM、寻址范围64K,并有控制功能较强的布尔处理器。
(2)主要功能特性
Ø兼容MCS51指令系统;
Ø8k可反复擦写(>1000次)Flash ROM;
Ø32个双向I/O口;
Ø256x8bit内部RAM;
Ø3个16位可编程定时/计数器中断;
Ø时钟频率0-24MHz;
Ø2个串行中断;
Ø可编程UART串行通道;
Ø2个外部中断源;
Ø共8个中断源;
Ø2个读写中断口线;
Ø3级加密位;
Ø低功耗空闲和掉电模式;
Ø软件设置睡眠和唤醒功能;
(3)STC80C51单片机的引脚,如图1-2所示。
图1-2 STC89C51引脚图
其中,各引脚的功能为:
① 主电源引脚
VCC(40脚):接+5V电源正端;
GND(20脚):接+5V电源地端;
② 外接晶体或外部振荡器引脚
XTAL1(19脚):用来连接晶振的一个引脚与地相连接,而在单片机内部19引脚作为反相放大器的输入端使用。
XTAL2(18脚):用来连接晶振的另一个引脚,在单片机内部作为反相放大器的输出端使用。
③ 控制信号线
RESET(9脚):复位信号输入端,在开机时给单片机复位。如需手动复位则需要外接输入。
ALE(30脚):地址锁存允许端。
PSEN(29脚):外部程序存储器读选通信号,低电平有效。
EA(31脚):访问内部或外部程序存储器的选择信号。
④ 多功能I/O口引脚
8051单片机设有4个双向I/O口(P0、P1、P2、P3)其中:
P0口(32~39脚)——8位漏极开路的I/O口(三态)。可作为输入/输出口,可驱动8个TTL逻辑电平。当P0口写入高电平时,引脚可用作高阻抗输入端。当写入低电平时,引脚作为低8位地址/数据复用,此时P0具有内部上拉电阻。
P1口(1~8脚):单片机对写入“1”后,可作为输入线使用,而每一位都可以通过编程进行控制其功能。
P2口(21~28):同样可以作为输入/输出口使用,但通常情况下需要与P0口的低8位组成16位地址总线,用于对外部存储器的接口电路进行寻址。
P3口(10~17脚):双功能口,对P3端写入高电平时,由于上拉电阻的作用,使其作为输入口。作为第二功能使用时,其功能各引脚如表3.1所示:
表1.1 P3口第二用途
端口引脚 | 第二功能 | 注释 |
P3.0 | RXD | 串行口数据接收端 |
P3.1 | TXD | 串行口数据发送端 |
P3.2 | /INT0 | 外中断请求0 |
P3.3 | /INT1 | 外中断请求1 |
P3.4 | T0 | |
P3.5 | T1 | |
P3.6 | /WR | 外部RAM写选通信号输出 |
P3.7 | /RD | 外部RAM读选通信号输出 |
1.2.2 最小系统电路
单片机STC89C51的最小系统主要是由复位系统、晶振电路、电源电路以及外围连接电路组成。其中复位系统主要是由10μF电解电容C1并联按钮开关K1,并与10K的电阻串联后连接单片机STC89C51的第9引脚RESET组成。复位系统在单片机STC89C51工作系统中所起到作用是当电路出现故障或者程序出现读取错误时又或者电路出现死机时,可以通过启动复位系统来解决所发生的故障,之后重新运行程序;其中晶振电路用X1并联两个电容组成,晶振两个引脚分别接在单片机STC89C51的18、19引脚上。晶振电路工作系统中主要作用,使单片机快速工作在合适的工作频率下。在一些没有严格要求的电路系统中也可以将12M的晶振替换成24M的晶振;其中的电源电路,主要是通过+5V电源供电。其作用是为了保证工作系统正常工作。其中的外围连接电路是指在P0口处连接排阻R1,因为P0口需要对液晶显示器进行数据传输,数据传输会产生高电平,而高电平则源于上拉电阻的存在。因此电阻排R1在此处的作用不仅仅是起到保护电路的作用,也起到了保证数据传输正常的作用;最后单片机STC89C51的31引脚端接入的高低电平决定STC89C51单片机复位系统启动后读取程序的选择。单片机最小系统,如图1-3所示。
图1-3 单片机最小系统
1.3 液晶显示电路
1.3.1 LCD1602液晶简介
LCD1602可以显示两行字符,其中每行16个字符。由于LCD1602每个点阵之间存在一定的缝隙,因此该显示器不适合用来显示图片,但用来显示文字符号和数据是特别理想的。
LCD1602液晶可以按是否带有背光源分为两类,但其主要性能不会因此受影响。它们大部分会选用HD44780作为控制器,两者尺寸差别如下图1-4所示:
LCD1602主要技术参数:
Ø显示容量:16×2个字符
Ø芯片工作电压:4.5—5.5V
Ø工作电流:2.0mA(5.0V)
Ø模块最佳工作电压:5.0V
Ø字符尺寸:2.95×4.35(W×H)mm
图1-4 LCD1602液晶尺寸说明
1.3.2 液晶引脚说明
LCD1602的引脚如表1-2所示:
表1-2 LCD1602液晶引脚说明
编号 | 符号 | 引脚说明 | 编号 | 符号 | 引脚说明 |
1 | VSS | 电源地 | 9 | D2 | 8位双向数据线 |
2 | VDD | 电源正极 | 10 | D3 | 8位双向数据线 |
3 | VL | 液晶显示偏压 | 11 | D4 | 8位双向数据线 |
4 | RS | 数据/命令选择 | 12 | D5 | 8位双向数据线 |
5 | R/W | 读/写选择 | 13 | D6 | 8位双向数据线 |
6 | E | 使能信号 | 14 | D7 | 8位双向数据线 |
7 | D0 | 8位双向数据线 | 15 | BLA | 背光源正极 |
8 | D1 | 8位双向数据线 | 16 | BLK | 背光源负极 |
1.3.3 指令介绍
(1)清屏指令
指令如表1-3所示
表1-3 清屏指令功能表
指令功能 | 指令编码 | 执行时间/ms | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
清屏 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1.64 |
功能:
1)清空液晶显示屏上所有的数据;
2)将液晶屏上的光标还原成初始状态;
3)把地址显示器即AC的数值归位零。
(2)光标归位指令
指令如表1-4所示
表1-4 光标归位指令功能表
指令功能 | 指令编码 | 执行时间/ms | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
光标归位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | 1.64 |
功能:
1)初始化光标位置;
2)地址计数器即AC的数值被设为零;
(3)进入模式设置指令,如表1-5所示
表1-5 进入模式设置指令表
指令功能 | 指令编码 | 执行时间/μ s | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
模式设置 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | I/D | S | 40 |
功能:数据写入时控制光标,具体如下:
位置 | 设置 | |
指令功能 | 0 | 1 |
I/D | 当数据被写入光标会左移 | 当数据被写入光标会右移 |
S | 当新数据被写入显示屏不会移动 | 当新数据被写入显示屏幕会整体向右移动一个字符 |
(4)显示开关设置指令,如表1-6所示。
表1-6 显示开关设置指令表
指令 功能 | 指令编码 | 执行时间/μ s | |||||||||
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
显示开关控制 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | 40 |
功能:对显示器的显示及光标进行控制,具体如下:
位名设置 | 0 | 1 |
D | 显示功能关闭 | 显示功能开启 |
C | 取消光标的存在 | 光标存在 |
B | 光标设置为闪烁 | 光标设置为不闪烁 |
1.3.4 液晶显示模块电路
LCD1602液晶显示器的连接图如图3-5所示,首先电源端与脚2(电路VCC)、脚15(LCD1602背光源的正极)连接,接地端与脚1(电路GND)连接、脚16(LCD1602背光源的负极),第三脚通过调节滑动变阻器R3的阻值来控制液晶显示器的对比度;然后脚4、脚5、脚6是LCD1602的数据控制端口,其作用分别是寄存器控制、控制液晶显示器的读写、使能端;最后第7脚——第14脚是LCD1602的双向数据总线。
图1-5 液晶模块连接图
1.4 红外检测模块
本设计的红外检测模块采用E18-D80NK红外检测传感器,它是一种发射/接收为一体的传感器,如图1-6所示。
图1-6 红外检测传感器
通过三条引线与单片机连接,分别用作供电端和数据传输端,当检测到对象经过时会给单片机传输一个“0”,而在未检测到对象时则会传输“1”。单片机只需判断该数据引脚的电平高低,即可知道当前是否扫描到对象。如图1-7所示。
图1-7 E18-D80NK原理图
1.5 按键输入模块
键盘输入模块可以把我们的想法传递给单片机,而在单片机领域中键盘输入设备又可以分为矩阵键盘和独立按键键盘,其特点是矩阵键盘可以处理复杂的信息输入情况,同时解决端口不足的问题;而独立按键键盘编写程序简单,面对一些输入数据简单的情况可以充分发挥它的特点和功能。因为本设计需要输入的控制数据较少,因此选择独立按键键盘。
键盘选择的同时也要解决一个问题“抖动”,这里我们采用延时法。当按下按钮后,键盘按钮会有几ms的抖动时间(时间较短),因此在这里我们可以通过延时法把键盘按钮抖动的时间延时过去。这样既不影响电路的正常操作,也不会出现因为按钮抖动出现的误操作。
第2章 系统调试
2.1 元器件的选择与测量
本次设计的元器件主要有:单片机、晶振、电阻、电容、按键、开关、电源座、三极管、蜂鸣器、传感器、液晶等。而元器件的选择是根据画好的电路图草图,大致选择合适的元器件。
元器件的测量方法如下:
电阻的测量方法有色环测量和万用表测量,这里为了数据的准确性我们可以选择使用万应表测量,排阻带白点的一端是接在电源端;电容的测量可以通过表面的标识读取,要特别注意的是电解电容的测量可以根据管脚的长短区分“长正短负”,也可以根据“阴影部分为负极”来判断,安装时千万不可以装反,防止电解电容电容爆炸;三极管的测量可以使用电子万用表的三极管测量口直接测量;按键和开关的连接,只要接线正确就可以正确使用。
2.2 元件的焊接与组装
(1)电路的组装:
1)根据设计好的PCB版图,确定元器件的位置。
2)在组装前再次对所有元器件进行检测,把问题解决在萌芽阶段。
3)组装时,要根据装配原则进行实际操作。装配原则大致有:先安装高度较低的元器件、从里向外进行装配,在焊接时应该把元器件的标识面放在容易读数的方向。对于带有极性的元器件装配前,必须再次确定其极性。以免因为元件装配的原因导致元器件损坏,甚至整个电路的损坏。
4)安装元件时首先应该把它的位置在电路板上固定好,然后再进行布线、连线。在接线时,不仅要保证电路的可用性,也要考虑电路板的美观性。合理的布线不仅可以在接线时思路清晰,也便于后期的检查和排除故障。
(2)电路的焊接:
电路焊接时,应该保证焊点的饱满和光滑,不要出现错焊、漏焊等低级错误,焊点优劣也可以表现操作人员的基本功。
2.3 电路的调试
电路的调试是把已经做成型的作品的功能展示出来,发现其中与设计目标不匹配的方面,进行修改。将产品中不足以满足设计功能的地方进行改进。在测试时,也可以把自己不太了解的地方进行深层次的理解和归纳,也便于以后其他项目的设计。
2.3.1 调试方法
电路的调试方法大致可以分为两种,这两种方法的使用要根据电路结构的复杂程度进行选择使用。对于结构简单的电路,可以选择使用在全部元器件装配完成后整体调试,发现并解决电路出现的问题;对于结构较为复杂的电路,可以把电路根据功能划分成具有单一功能的系统,然后对每个系统进行调试。这样不仅可以把整个电路全部调试,也会相应减少调试的困难。
2.3.2 调试步骤
(1)通电前检查
在电路组装完成之后,通电之前,需要对于设备的整体情况进行统一的排查。从电源端出发排查电路接线是否正确,断路和开路会导致电路部分功能失效或者整个电路不工作,短路则会导致元器件损坏等问题。同时,要再次检测电路中带有极性的元器件是否安装正确,特别需要注意的是三极管和电解电容等易损坏的元器件。在检测时可以使用万用表测量电路的连接情况和元器件的安装是否正确以及电路中元器件的好坏,防止在焊接过程中损坏元器件导致电路不能正常运行。
(2)通电观察
在电源接线端接通电源,检查电路中是否存在异常。若无异常,按下开关检测电路接通情况并观察电路是否存在发热情况、元器件工作状态不稳定等问题。若正常,再进行电路功能的检测,检测过程中也应该时刻关注电路板是否存在异常。若存在异常,则需要对电路进行故障的排除。
(3)单元电路调试
单元电路的调试需要按照电路工作过程的顺序进行调试检测,合理的检测方法可以使检测效率事半功倍。而检测则可分为以下两大部分:
- 单元电路静态工作状态的测量。根据电路的工作过程检测各系统在没有外加信号的情况下的点位并采集数据进行分析比较后,再对电路进行调整以确保电路静态时的稳定性。
- 单元电路动态工作状态的检测。根据电路的信号流图的方向和输入信号、输出信号之间的关系,利用示波器逐步检测电路的波形、幅值、相位以及频率在每个系统中所发生的的变化。记录下数据的变化,确定动态时电路的工作状态。与理想信号对比后,进行部分合理的调试与修改。
(4)整机联调
单元电路符合要求并不代表电路能够达到设计目标,还需要用适合的软件来把它们串起来。在测量过程中,需要观察电路的实际性能和理想状态相比较是否存在不合理的瑕疵。接着针对所发现的问题对电路的进行调整,让设备工作在更贴近理想化的状态。
原理图
PCB图
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!