[单片机课程设计必看] 单片机设计报告常用描述
硬件设计
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所示。
八位数码管
本次设计采用八段数码管显示,是八位一体共阴极数码管,由八个八段数码管集成,高电平点亮。在显示上我们通常采用两种方法:一种是静态显示,一种是动态显示。
静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态显示的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态显示是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态显示。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但能够节省大量的I/O端口,而且功耗更低。故本次设计采用动态显示方法。
74HC573
本设计使用74HC573来驱动四位一体数码管。74HC573的八个锁存器都是透明的D型锁存器,当使能(LE)为高时,Q输出将随数据(D)输入而变。当使能(LE)为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器.573工作电压在5V(VCC)左右最大7V最小2V,最大输出电流为20MA,可用来驱动发光二极管。
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资源相对较少。
编程简单:矩阵键盘的编程相对独立式按键更为简单,可以通过简单的扫描算法实现按键的检测和识别。
扩展方便:通过增加行线和列线,可以方便地将矩阵键盘进行扩展,以实现更多的功能。
蜂鸣器模块
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
本设计采用电磁式蜂鸣器进行。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。如蜂鸣器电路图5所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基极B经过限流电阻R3后由单片机的beep引脚控制,当beep输出低电平时,三级管QS截止,没有电流流过线圈,蜂鸣器不发声;当beep输出高电平时,三级管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制beep脚的电平来使蜂鸣器发出声音和关闭。其电路图如图5所示。
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所示。
图10 读操作时序
图11 写操作时序
3.LCD LM016L的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图12是016的内部显示地址。
图12 1602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。
016液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图13所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
图13 字符代码与图形对应图
4.液晶LM016L显示电路图
本设计中,液晶显示电路与单片机的连接如图14所示。
图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脚的电平来使蜂鸣器发出声音和关闭。