[单片机课程设计报告汇总] 单片机设计报告常用硬件元器件描述

[单片机课程设计必看] 单片机设计报告常用描述

硬件设计

AT89C51最小系统

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS16位单片机,片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器,期间采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用16位中央处理器和Flash存储单元,功能强大的AT89C51单片机可灵活应用于各种控制领域。

AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个1 6位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

本系统中央控制器采用的单片机AT89C51,复位电路采用上电复位电路。外接的晶振为12MHz晶振。

四位数码管电路

本次设计采用八段数码管显示,是四位一体共阴极数码管,由四个八段数码管集成,高电平点亮。在显示上我们通常采用两种方法:一种是静态显示,一种是动态显示。

静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态显示的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态显示是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态显示。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但能够节省大量的I/O端口,而且功耗更低。故本次设计采用动态显示方法。其原理图如图3所示。

img

八位数码管

本次设计采用八段数码管显示,是八位一体共阴极数码管,由八个八段数码管集成,高电平点亮。在显示上我们通常采用两种方法:一种是静态显示,一种是动态显示。

静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态显示的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态显示是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态显示。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但能够节省大量的I/O端口,而且功耗更低。故本次设计采用动态显示方法。

img

74HC573

本设计使用74HC573来驱动四位一体数码管。74HC573的八个锁存器都是透明的D型锁存器,当使能(LE)为高时,Q输出将随数据(D)输入而变。当使能(LE)为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器.573工作电压在5V(VCC)左右最大7V最小2V,最大输出电流为20MA,可用来驱动发光二极管。

img

74HC138

74HC138是一款高速CMOS器件,具有8个输出引脚,可以接受3位二进制加权地址输入(A0、A1和A2),并在使能时,提供8个互斥的低有效输出(Y0至Y7)。它是一款3到8线译码器,具有3个使能输入端(E1、E2和E3)。

当E1和E2置低且E3置高时,74HC138将保持所有输出为高。否则,它将根据A0、A1和A2的输入状态,将对应的输出置低。这种译码器功能使得它适用于许多应用,包括扩展总线、解码器和多路复用器等。

按键电路

键盘是人机交互的接口,本设计中,我们采用独立键盘。当按键按下,与主控芯片连接的端口被降为低电平,按键松开则也升为高电平。按键采用的是Tack Switch按钮开关,它具有自动恢复的功能。当我们按下按钮时,其中的接点接通,放开按钮后,接点恢复为切断。虽然Tack Switch有4个引脚,但实际上,其内部只有一对a接点,即其中两个引脚是内部相连通的,而另外两个引脚内部也是相连通的。

矩阵键盘

键盘是人机交互的接口,本设计中,我们采用矩阵键盘。矩阵键盘是一种常见的按键输入设备,与独立式按键相比,它能够提供更多的按键数量,同时占用较少的单片机I/O资源。在单片机设计中,使用矩阵键盘能够实现更多功能,提高设备的灵活性和可扩展性。矩阵键盘的基本原理是将行线和列线通过按键连接,通过检测行线和列线的电平变化来确定按键的按下状态。当按键被按下时,相应的行线和列线被连接,使得行线和列线的电平发生变化,单片机通过检测这个变化来识别按键的输入。与独立式按键相比,矩阵键盘具有以下优点:

占用资源少:矩阵键盘可以提供更多的按键数量,而占用单片机的I/O资源相对较少。

编程简单:矩阵键盘的编程相对独立式按键更为简单,可以通过简单的扫描算法实现按键的检测和识别。

扩展方便:通过增加行线和列线,可以方便地将矩阵键盘进行扩展,以实现更多的功能。

img

蜂鸣器模块

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

本设计采用电磁式蜂鸣器进行。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。如蜂鸣器电路图5所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基极B经过限流电阻R3后由单片机的beep引脚控制,当beep输出低电平时,三级管QS截止,没有电流流过线圈,蜂鸣器不发声;当beep输出高电平时,三级管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制beep脚的电平来使蜂鸣器发出声音和关闭。其电路图如图5所示。

img

LCD1602液晶模块1

LCD1602,也称为1602液晶屏,是一种常见的字符型液晶显示模块,广泛用于各种嵌入式系统、电子设备和DIY项目中。它可以显示两行各16个字符,提供了简单而有效的文本信息显示功能。以下是关于LCD1602的一些基本说明:

\1. 显示能力: LCD1602可以同时显示两行,每行可以显示16个字符,总共可以显示32个字符。每个字符通常是由5x8个像素组成。

\2. 控制方式: LCD1602通过并行接口与外部设备进行通信。通常使用8位数据总线(D0-D7)和3位控制信号(RS、RW、EN)来传输数据和指令。

\3. 字符集: LCD1602支持标准的ASCII字符集,包括英文字母、数字、标点符号等。它还可以通过编程自定义一些自定义字符。

\4. 背光: 大多数LCD1602模块都配有背光,可以通过控制引脚来打开或关闭背光。

\5. 电源要求: LCD1602通常使用5V电源供电,但某些型号也支持3.3V电源。

\6. 接口引脚: LCD1602通常具有16个引脚,其中有8个用于数据传输(D0-D7),3个用于控制(RS、RW、EN),还有VCC、GND等引脚。

\7. 功能指令: 使用控制信号和指令,您可以控制LCD1602的各种功能,包括清屏、光标位置控制、显示开关等。

\8. 编程: 在使用LCD1602时,可通过微控制器(例如Arduino、STM32等)编写程序来控制它。可以发送数据和指令以控制显示内容、光标位置和背光等。

\9. 示例应用: LCD1602广泛用于各种应用,例如温度显示、计时器、计数器、消息显示、数据监控等。它在学习嵌入式编程、电子电路和DIY项目中都非常有用。

以上是关于LCD1602基本的说明,它是一种功能简单但实用的液晶显示模块,适用于各种项目和应用。

LCD1602液晶模块2

本设计中以LM016L作为显示器件。LM016L智能型显示模块是一种低功耗、低价值、低损耗的显示器件,它不但可以显示各式各样的字符、汉字和图形,同时具有可编程能力,且与单片机接口方便。

1.引脚功能说明

LCD LM016L采用标准的14脚接口,各引脚接口说明如下:

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。

第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

2.基本操作时序表

读写操作时序如图10和图11所示。

img

图10 读操作时序

img

图11 写操作时序

3.LCD LM016L的RAM地址映射及标准字库表

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图12是016的内部显示地址。

img

图12 1602LCD内部显示地址

例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。

016液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图13所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

img

图13 字符代码与图形对应图

4.液晶LM016L显示电路图

本设计中,液晶显示电路与单片机的连接如图14所示。

img

图14 液晶显示电路

MQ-2传感器模块

MQ-2传感器是一种常用的气体传感器,用于检测空气中的多种可燃气体和烟雾。它广泛应用于火灾报警系统、烟雾检测器以及一些环境监测和安全应用中。以下是有关MQ-2传感器的基本说明:

\1. 工作原理: MQ-2传感器基于化学敏感电阻原理。它包含一个敏感层,当空气中存在可燃气体或烟雾时,这些气体会与传感器的敏感材料发生化学反应,导致电阻值的变化。通过测量电阻值的变化,可以间接地检测出空气中的目标气体浓度。

\2. 检测气体: MQ-2传感器主要用于检测可燃气体,如甲烷(天然气)、丙烷、丁烷、乙烷等,以及烟雾。不同型号的MQ-2传感器可能对不同种类的气体有不同的灵敏度。

\3. 输出信号: MQ-2传感器通常提供一个模拟输出信号,其电压值与检测到的气体浓度成一定的关系。这个模拟输出可以通过模数转换器(ADC)进行读取,从而获取气体浓度的近似值。

\4. 预热时间: MQ-2传感器需要一定的时间来预热,使其处于稳定工作状态。通常在上电后需要等待一段时间(例如几分钟),传感器才能正常检测气体。

\5. 环境影响: MQ-2传感器对温度、湿度等环境因素比较敏感。环境的变化可能会影响传感器的准确性和稳定性。

\6. 应用领域: MQ-2传感器广泛用于火灾报警系统,以及需要监测可燃气体或烟雾的环境,如家庭、工业区域、实验室等。它也可以用于一些个人项目,如烟雾报警器、气体泄漏监测器等。

DS18B20温度传感器

DS18B20是一款数字温度传感器,它具有以下特点:

\1. 单一数据线接口:DS18B20通过一根数据线与主机连接,实现数据的传输和接收。

\2. 支持多种编程方式:DS18B20可以使用多种编程方式进行控制,如C语言、汇编语言等。

\3. 温度测量范围广:DS18B20的温度测量范围为-55℃~+125℃,精度为±0.5℃。

\4. 抗干扰能力强:DS18B20采用CRC校验技术,可以有效避免干扰信号对传感器的影响。

\5. 可编程报警:DS18B20可以设置报警温度,当温度超过设定值时,会自动输出报警信号。

\6. 多种封装形式:DS18B20可以采用多种封装形式,如SOIC、TO-92、裸片等。

\7. 使用方便:DS18B20的管脚简单,使用方便,易于集成。

在使用单片机控制DS18B20时,需要注意以下步骤:

\1. 连接数据线:将DS18B20的数据线连接到单片机的端口上。

\2. 初始化:初始化51单片机,设置数据传输方式和波特率等参数。

\3. 写控制指令:向DS18B20写入控制指令,如“开始测量”、“读取温度”等。

\4. 读取温度数据:从DS18B20读取温度数据,并进行处理和显示。

\5. 结束通信:结束与DS18B20的通信,释放资源。

DHT11温湿度传感器

DHT11传感器是一种数字温湿度传感器,可以同时测量环境中的温度和湿度。该传感器具有体积小、精度高、稳定性好等优点,与单片机接口简单,易于使用。

DHT11传感器的主要特点如下:

\1. 测量范围:温度范围为0℃50℃,湿度范围为20%90%。

\2. 精度:温度误差在±2℃,湿度误差在±5%以内。

\3. 响应时间:传感器响应时间小于1秒。

\4. 接口方式:单线串行接口,与单片机接口简单。

\5. 功耗:工作电流为0.5mA,待机电流为0.03mA。

DHT11传感器在使用时需要注意以下几点:

\1. 在连接电路时需要将数据线(绿线)接在单片机的强上拉输出端口,以保证读取数据的稳定性。

\2. 在使用前需要进行校准,以保证测量精度。

\3. 在读取传感器数据时,需要等待一段时间(约1秒)以保证传感器响应充分。

\4. 在长时间不使用时,需要断开电源以降低功耗。

DHT11传感器可以广泛应用于温湿度监测、智能控制、环境测试等领域。在单片机毕业设计中,使用DHT11传感器可以实现对环境温湿度的实时监测和控制,具有一定的实用价值。

SHT11温湿度传感器

SHT11是一款由Sensirion公司生产的温湿度传感器,它具有高度集成、高精度、快速响应以及低功耗等特点。SHT11采用CMOSens技术,使得温湿度测量更加准确可靠。该传感器体积小巧,易于集成在各种单片机系统中。

它具有以下特点:

1.高精度:SHT11的湿度测量精度可达±1.8%,温度测量精度可达±0.4℃,能够满足大多数应用的需求。

2.快速响应:SHT11的响应时间仅需1秒,能够实时反映环境中的温湿度变化。

3.高度集成:SHT11将温湿度传感器、信号处理电路、A/D转换器等集成于一体,大大简化了系统的设计。

4.低功耗:SHT11采用CMOS工艺,待机电流仅20μA,非常适合电池供电系统。

5.抗干扰能力强:SHT11采用数字式校准,有效避免了外部干扰对测量结果的影响。

SHT11传感器是一款高精度、高可靠性的温湿度传感器,其内部集成了温度和湿度传感器元件,能够输出数字信号。该传感器具有I2C接口,可以与各种微控制器进行通信,实现高精度的温湿度测量。

SHT11传感器的主要特点如下:

\1. 高精度:温度误差范围在±0.4℃,湿度误差范围在±4.5%。

\2. 全温度范围:-40℃到+123.8℃。

\3. 线性输出:温度和湿度的输出都是线性的,方便进行数据处理。

\4. 高速:SHT11传感器具有高速模式,可以快速响应系统的变化。

\5. 小型封装:SHT11传感器采用紧凑的封装设计,适合用于空间受限的场合。

在单片机毕业设计中使用SHT11传感器,可以实现对环境温湿度的实时监测和记录,适用于各种需要温湿度控制的应用场景,如智能家居、工业控制、环境监测等。通过与单片机接口连接,可以实现数据的采集和处理,并通过按键设置温湿度上下限,实现自动控制。

拨动开关

拨动开关是一种通过拨动开关柄使电路接通或断开的开关。这种开关具有滑块动作灵活、性能稳定可靠的特点,因此被广泛应用于各种仪器/仪表设备、各种电动玩具、传真机、音响设备、医疗设备、美容设备等电子产品领域。

拨动开关的品种主要有单极双位、单极三位、双极双位以及双极三位等。单极双位开关可以控制一路电路的两个状态,单极三位开关可以控制三路电路的两个状态,而双极双位开关可以控制两路电路的两个状态,双极三位开关则可以控制三路电路的三个状态。

在使用拨动开关时,我们需要注意开关的工作电压、电流、接触电阻以及绝缘电阻等参数。同时,在安装和使用过程中,应确保开关的安装位置合理,避免受到潮湿、高温等环境因素的影响。

总的来说,拨动开关是一种在电子产品中常见的开关组件,具有广泛的应用范围。

LCD12864

一、LCD12864简介

LCD12864是一种常见的液晶显示屏模块,其显示分辨率为128X64。该模块具有低电压、微功耗的特点,使其在单片机系统中得到了广泛应用。LCD12864的接口类型为8位并口,可以与80系列的单片机直接相连。此外,LCD12864具有两种操作模式:左半屏幕操作和右半屏幕操作。当引脚有效时,左半屏幕操作有效,而右半屏幕操作则在引脚无效时进行。

二、LCD12864与单片机的连接

在单片机大作业中,我们需要将LCD12864与单片机进行连接。连接方式如下:

\1. VCC接到单片机的电源端口,为LCD12864提供电源。

\2. GND接到单片机的地线端口,为LCD12864提供接地。

\3. RS接到单片机的P0或P2端口,用于控制LCD12864的数据传输方向。

\4. RW接到单片机的P0或P2端口,用于控制LCD12864的读/写操作。

\5. E接到单片机的P0或P2端口,用于控制LCD12864的使能信号。

\6. D0-D7接到单片机的P0端口,用于传输数据到LCD12864。

通过以上连接方式,我们可以实现单片机与LCD12864之间的数据传输和控制操作。

三、LCD12864的基本操作

LCD12864具有多种基本操作,包括清屏、光标移动、输入方式设置等。这些操作可以通过发送相应的指令集来实现。下面是一些常用的指令集:

\1. 清除屏幕指令:将光标移动到屏幕的左上角,并清除整个屏幕的内容。

\2. 输入方式设置指令:用于设置输入方式,包括大写字母、小写字母、数字等。

\3. 光标移动指令:用于移动光标位置,可以在水平方向和垂直方向上进行移动。

\4. 显示字符指令:用于在指定位置显示一个字符。

通过发送以上指令集,我们可以实现LCD12864的各种基本显示和控制功能。

四、LCD12864在单片机大作业中的应用

在单片机大作业中,LCD12864可以作为一个重要的显示和控制设备。通过与单片机的连接,我们可以实现以下应用:

\1. 显示数据:将数据或参数显示在LCD12864上,方便用户查看。

\2. 输入数据:通过LCD12864的键盘接口,实现数据的输入功能。

\3. 控制功能:根据系统的需要,通过LCD12864的指令集实现各种控制功能,如调节亮度、设置参数等。

\4. 人机交互界面:利用LCD12864的显示功能,构建一个简单的人机交互界面,提高用户体验。

通过以上应用,LCD12864可以为单片机大作业提供良好的显示和控制功能,提高系统的智能化程度和用户体验。

总之,LCD12864是一种常用的液晶显示屏模块,具有低电压、微功耗的特点和多种基本操作指令集。通过与单片机的连接,我们可以实现各种基本的显示和控制功能,为单片机大作业提供良好的人机交互界面。

MPX4115

MPX4115是一种硅电容式压力传感器,而不是电阻式水位传感器。它具有高精度、稳定性好、响应速度快等优点,可以测量气体的静压力、动压力和压力差等参数,被广泛应用于各种控制系统和测试系统中。

MPX4115压力传感器采用三线电压输出方式,将电压信号通过串口传输到单片机,单片机通过A/D转换后将数据显示在液晶显示屏上,以实现实时监测和数据处理。同时,它还具有多种功能按键,可以通过按键设置参数和调整显示,非常方便实用。

在实际应用中,MPX4115压力传感器需要考虑多种因素,如供电电源的稳定性、传感器的灵敏度和温度变化等。这些因素可能会影响传感器的精度和稳定性,因此需要进行相应的设计和处理,以确保传感器能够正常工作并输出准确的压力信号。

总之,MPX4115压力传感器是一种高精度、高性能的压力传感器,可以广泛应用于各种控制系统和测试系统中,为系统的自动化控制和智能化管理提供准确的压力信号。

ULN2003

ULN2003是一种高电压、高电流驱动器,它被广泛应用于步进电机、直流电机、继电器和其他高负载电器的驱动。它由德州仪器(Texas Instruments)公司生产,具有七个晶体管开关,可将输入信号转换为输出驱动信号。ULN2003的七个输出口被标记为OUT1到OUT7,每个输出口都能承受高达500mA的负载电流。

当输入信号为高电平时,相应的输出口就会导通,输出端会输出高电平,驱动负载电器。反之,当输入信号为低电平时,输出端就会输出低电平,驱动负载电器停止运转。由于ULN2003内部集成的晶体管是npn型晶体管,因此它需要外接一个电源。通常情况下,这个电源的电压范围为5V到50V,具体取决于所驱动的负载电器的额定电压。此外,为了确保ULN2003能够正常工作,需要外接一个电容器,其额定电容量为0.1uf。

总的来说,ULN2003具有高电压、高电流驱动能力,能够驱动各种负载电器;内部有七个晶体管输出口,便于多路驱动;简单易用,只需要连接几个引脚即可实现驱动;具有较高的可靠性和稳定性。

软件设计

主程序

主程序完成外部中断初始化、定时器初始化、蜂鸣器模块初始化。主程序扫描主持人不断扫描按键,进行对应的操作。

主要(关键)代码:

按键扫描子函数

关键代码介绍

​ if(key1==0)

​ {

​ DelayMs(10);

​ if(key1==0)

​ {

​ num=1;

​ while(!key1);

​ }

​ }

程序一直判断按键引脚电压,按下按键电压为0。按键会产生抖动,需要进行消抖处理,演示10毫秒后,如果按键电压还是0,令按键数目num为1。表示按下的按键是按键1。供主函数处理按键消息。

显示子程序

该函数用于动态扫描数码管。输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示,如输入0表示从第一个显示。 Num表示需要显示的位数,如需要显示99两位数值则该值输入2。显示主要控制74HC573锁存数据。先清除数据,清段锁存。然后选择位码。开位锁存将数据存在位锁存器,选择到了需要显示的数码管。位锁存完成后将数据写进段锁存数据,将需要显示的数据写到数码管中。

蜂鸣器提示子函数

蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基极B经过限流电阻R3后由单片机的beep引脚控制,当beep输出低电平时,三级管QS截止,没有电流流过线圈,蜂鸣器不发声;当beep输出高电平时,三级管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制beep脚的电平来使蜂鸣器发出声音和关闭。

是0,令按键数目num为1。表示按下的按键是按键1。供主函数处理按键消息。

显示子程序

该函数用于动态扫描数码管。输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示,如输入0表示从第一个显示。 Num表示需要显示的位数,如需要显示99两位数值则该值输入2。显示主要控制74HC573锁存数据。先清除数据,清段锁存。然后选择位码。开位锁存将数据存在位锁存器,选择到了需要显示的数码管。位锁存完成后将数据写进段锁存数据,将需要显示的数据写到数码管中。

蜂鸣器提示子函数

蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基极B经过限流电阻R3后由单片机的beep引脚控制,当beep输出低电平时,三级管QS截止,没有电流流过线圈,蜂鸣器不发声;当beep输出高电平时,三级管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制beep脚的电平来使蜂鸣器发出声音和关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/144492.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视通科技4K30分布式编解码一体机,功能强大,性价比之王

随着信息技术的日新月异,各领域对于音视频传输、控制和显示等方面的需求呈现出爆发式的增长。这种需求的增长源于多种因素,包括但不限于高清视频的普及,实时音视频通信的广泛应用,以及各种显示设备的升级换代。 在这样的背景下&a…

Kvaser CAN硬件在Top Dutch Solar的遥测系统中发挥重要作用

Top Dutch Solar Racing(荷兰顶级太阳能赛车队)是2023年Bridgestone World Solar Challenge(普利司通世界太阳能挑战赛)的参赛车队之一,其赛车上搭载的Kvaser Ethercan HS是为基于Wifi的实时遥测系统捐赠的。Kvaser Me…

高级着色语言(HLSL)

High-Level Shading Language,简称为HLSL,可以使用HLSL编写顶点着色器和像素着色器程序,简要地说,顶点着色器和像素着色器就是我们自行编写的一些规模较小的定制程序,这些定制程序可取代固定功能流水线中某一功能模块&…

Camtasia2024中文免费版电脑录屏软件

大家都知道在视频播放中,如果有一个令人印象深刻的精彩开头,整个视频的内容都能因此得到不少升华。所以有一个好的片头对于视频的制作来说十分重要。 要怎么做出效果不错的片头呢? 首先,我们要选择合适的素材来制作片头。这里直…

Qt 之自定义控件(开关按钮)

Qt 之自定义控件(开关按钮) 原理源码运行结果 接触过IOS系统的童鞋们应该对开关按钮很熟悉,在设置里面经常遇到,切换时候的滑动效果比较帅气。 通常说的开关按钮,有两个状态:on、off。 下面,我们…

【LSNET】用自己的数据复现LSNet变化检测代码

之前讲过LSNet网络的论文详解了,感兴趣的童鞋请移步【LSNET】变化检测。 本篇主要是讲解如何用自己的数据复现代码【python】。 🌺论文:paper 🌺代码: code 目录 🔔🔔1.环境安装

linux下安装向日葵

https://sunlogin.oray.com/download/linux?typepersonal下载 在文件所在位置的空白处右键(在此处打开终端) 输入命令: sudo dpkg -i 文件名.deb (文件名为下载的deb文件名字)/usr/local/sunlogin/bin/sunlogincl…

keepalived 的安装部署及使用详细完整版

架构 1.安装 yum install keepalived -ysystemctl enable keepalivedsystemctl restart keepalivedsystemctl status keepalived2.部署配置样例 vim /etc/keepalived/keepalived.conf global_defs {router_id PROXYSQL_HAscript_user rootenable_script_security } vrrp_scri…

掉瓶子小游戏

欢迎来到程序小院 掉瓶子 玩法:旋转的瓶子,根据瓶子方向,点击鼠标左键瓶子掉落,从桌面中间掉下即得1分,卡在桌边瓶子碎了游戏结束,快去掉瓶子吧^^。开始游戏https://www.ormcc.com/play/gameStart/203 htm…

TSINGSEE青犀视频平台EasyCVR自定义可视化页面一览

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支…

【科研新手指南2】「NLP+网安」相关顶级会议期刊 投稿注意事项+会议等级+DDL+提交格式

「NLP网安」相关顶级会议&期刊投稿注意事项 写在最前面一、会议ACL (The Annual Meeting of the Association for Computational Linguistics)IH&MMSec (The ACM Workshop on Information Hiding, Multimedia and Security)CCS (The ACM Conference on Computer and Co…

使用JDBC连接数据库出现The server time zone value ‘�й���׼ʱ��‘ is unrecognized 的解决方案

看到网上的大佬们说是引入的依赖版本太高所以导致了时区有问题 但是我把依赖的版本改低了还是报错 用另一种办法直接在配置文件中修改url然后成功解决 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/datasource?useUnicodetrue&characterEncodingutf8&useSSL…

山西电力市场日前价格预测【2023-11-15】

日前价格预测 预测说明: 如上图所示,预测明日(2023-11-15)山西电力市场全天平均日前电价为237.36元/MWh。其中,最高日前电价为360.45元/MWh,预计出现在00:15。最低日前电价为0.00元/MWh,预计出…

中国人民大学与加拿大女王大学金融硕士——热爱会穿越时间,埋在心底的读研梦也是

随着时光的流转,我们都在跌跌撞撞中成长,改变,但有一种东西是永恒的,那就是我们对梦想的渴望。那些被尘封的读研梦想,如同穿越漫长岁月,等待在未来的某一天重见天日。梦想,就如同热爱一样&#…

如何查找领取淘宝优惠券?

如何查找领取淘宝优惠券? 1、手机安装「草柴」领券应用后,打开手机淘宝,挑选要购买的商品,并点击分享复制链接; 2、复制淘宝商品链接后,打开「草柴」APP,将复制的链接粘贴并查询该商品优惠券及…

【机器学习】朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)

1. 朴素贝叶斯模型 对于不同的数据,我们有不同的朴素贝叶斯模型进行分类。 1.1 多项式模型 (1)如果特征是离散型数据,比如文本这些,推荐使用多项式模型来实现。该模型常用于文本分类,特别是单词&#xf…

竞赛选题 深度学习的智能中文对话问答机器人

文章目录 0 简介1 项目架构2 项目的主要过程2.1 数据清洗、预处理2.2 分桶2.3 训练 3 项目的整体结构4 重要的API4.1 LSTM cells部分:4.2 损失函数:4.3 搭建seq2seq框架:4.4 测试部分:4.5 评价NLP测试效果:4.6 梯度截断…

石原子科技亮相2023成都市信息领域新产品发布会

2023年11月13日至15日,由成都市互联网信息办公室、四川天府新区管委会、成都市经信局市新经济委、成都市农业农村局指导的以“信息创造价值 创新引领未来”为主题的成都市信息领域新产品发布会在科创生态岛1号馆举行。围绕人工智能、区块链、数字化绿色化、数字乡村…

keepalived+haproxy配置集群和负载均衡

1、简介 1.1. Keepalived Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备…

Microsoft Forms

Microsoft Forms官网:Microsoft Forms - Free tool to create online surveys, forms, polls, and quizzes Microsoft Forms主要用来自定义一些表单和问卷调查 点击新建表单 填写完表单名称之后,下面就可以添加问题了,可以选择多种提问方式…