版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目7
简易声光报警器设计目录任务7-1简易数字电压表设计7.1数/模转换7.2单片机内部ADC及其应用7.3模/数转换任务7-2波形发生器设计7.4I2C总线A/D与D/A转换器PCF8591任务拓展:基于AD和DA转换芯片的可调光台灯设计项目导读本项目探索A/D与D/A转换接口设计应用。先介绍D/A转换器原理,特别是DAC0832时序与工作方式。再聚焦单片机内部ADC及其应用,展示构建数字电压表案例。学习本项目将掌握A/D与D/A转换原理,锻炼实践能力,培养团队精神。思维导图任务7-1简易数字电压表设计1、目的与要求用AT89C51单片机控制,ADC0809作为A/D转换器。液晶LCD1602作为显示。能测试0~5V的直流电压,精确到两位小数。发挥扩充功能,如增加超量程提示功能等。设计制作任务包括:拟订总体设计制作方案。设计硬件电路。编制软件流程图及设计相应源程序。仿真调试数字电压表。安装元件,制作数字电压表,调试功能指标。完成项目报告。2、原理及实现(1)数字电压表总体设计思路(2)设计数字电压表硬件电路(3)设计数字电压表程序1)编程思路
数字电压表总体框图
主程序流程
中断程序流程
数字电压表电路3、源程序设计根据硬件电路及程序流程设计电压源程序,参考程序如下:4、仿真数字电压表(1)利用Keil的调试功能,根据错误提示,找到错误代码,排除各种语法错误,编译成hex文件。(2)通过对端口、入口参数赋值,存储空间或端口、变量数据查询,调试子函数和主程序。(3)用Proteus按简易电压表硬件电路,设计如图所示的仿真模型,进行仿真调试。5、调试数字电压表(1)仿真调试成功后,按电压表电路图把元件安装焊接在实验板上,并进行静态和动态检测。(2)烧录hex文件到AT89C51芯片,运行程序,如不能运行,先排除各种故障(供电、复位、时钟,内外存储空间选择、软硬件端口分配是否一致等)。(3)测试电压,读出数据与其他校准的数字电压表测得的电压进行对比,分析是否达到功能指标。(4)如没有达到性能指标,调整电路或元件参数、优化程序,重新调试、编译、下载、运行程序,测试性能指标。7.1数/模转换7.1数/模转换在工业和电气控制中,单片机常用于实时控制和数据处理。被测、被控参量常为模拟量,如温度、电压等,但单片机只处理数字量。因此,需进行模拟量与数字量的转换,即数/模和模/数转换。目前,这些转换器已集成化,体积小、功能强。单片机中数字量需转换为模拟信号,需数/模转换设备。本节介绍数/模转换芯片原理、接口及编程。D/A转换器的常见结构是由权电阻网络组成的解码结构,数字量通过电路中的开关来控制权电阻的接入和移除。1.D/A转换器原理权电阻解码网络的结构如图所示。7.1.1D/A转换器数/模转换器(D/A)就是一种把数字信号转换成为模拟电信号的器件。它的基本要求是输出电压U。应该和输入数字量B成正比,即2.D/A转换器主要性能指标有关D/A转换器的技术性能指标很多,如分辨率、线性度、转换精度、建立时间、接口形式等。下面介绍一些主要的性能指标。(1)分辨率(2)线性度(3)转换精度(4)建立时间(5)接口形式(6)温度系数(7)电源抑制比(8)工作温度范围(9)失调误差(或称零点误差)(10)增益误差(或称标度误差(11)非线性误差7.1.2DAC0832D/A转换器1.DAC0832的引脚功能DAC0832是20引脚的双列直插式芯片,引脚如图所示。2.DAC0832内部结构DAC0832的内部结构如图所示。3.信号的输出DAC0832的输出是电流型的。一般用运算放大器实现电流信号和电压信号之间的转换。有单极性输出和双极性输出两种输出方式。1)单极性电压输出在单极性电压环境,可采用如图所示连接。输出与输入的关系为VOUT=-B×(VREF/256)2)双极性电压输出在双极性电压环境,可采用如图所示连接。输出与输入的关系为VOUT=(B-128)×(VREP/128)7.1.3DAC0832时序与工作方式1.DAC0832时序DAC0832内部已有数据锁存器,在控制信号作用下,可以对总线上的数据直接进行锁存。在CPU执行输出指令时,WR1和CS信号处于有效电平。操作时序如图所示。2.DAC0832工作方式根据对DAC0832的输入锁存器和DAC寄存器的不同控制方法,DAC0832有3种工作方式。1)直通方式2)单缓冲方式3)双缓冲方式7.2单片机内部ADC及其应用7.2单片机内部ADC及其应用1、STC12C5A60S2的内部ADC结构ADC结构如图
所示。STC12C5A60S2单片机的内部ADC结构由八路选择器、比较器、逐次比较寄存器、输出寄存器和控制寄存器组成。2.ADC相关寄存器STC12C5A60S2单片机内部A/D转换相关的寄存器有P1ASF、ADC_CONTR、ADC_RES/ADC_RESL、AUXR1、IP、IE等。1)P1口模拟功能控制寄存器——P1ASF2)模数转换控制寄存器——ADC_CONTRP1ASF格式如下:ADC-CONTR寄存器的格式如下:
其中各位的含义如下。(1)ADC_POWER:ADC电源控制位。(2)SPEED1和SPEEDO:模数转换速度控制位,具体功能设置如表所示。(3)ADC_FLAG:模数转换完成标志位。(4)ADC_START:模数转换器转换启动控制位。(5)CHS2、CHS1和CHSO:模拟输入通道选择控制位,具体功能设置如表所示。3)ADC转换结果寄存器--ADC_RES和ADC_RESL专用寄存器ADC_RES和ADC_RESL寄存器用于保存A/D转换的结果。4)辅助寄存器1——AUXR1AUXR1寄存器的格式如下:5)ADC中断相关寄存器ADC的中断控制位是中断允许寄存器IE的EA和EADC位,IE寄存器的格式如下:3、A/D转换程序设计A/D转换结束后,可以采用中断和查询两种方式读入转换结果。程序段如下。7.3模/数转换7.3模/数转换A/D转换器可实现模拟信号到数字信号的转换。A/D转换种类繁多,分为两大类,一类是直接A/D转换器,即指直接将输入的数字信号转换为输出的模拟信号;一类是间接D/A转换器,即先将输入的数字信号转换为某种中间量,然后再把这种中间量转换成为输出的模拟信号,如V/F变换器。本节将主要介绍直接A/D转换器。A/D转换器能把输入模拟电压或电流转变成与其成正比的数字量,即能把各种模拟信息转换成计算机可识别的数字信息。1、A/D转换器原理A/D转换器按转换原理可分为4种,即计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。本部分将主要介绍逐次逼近式A/D转换器的原理。逐次逼近式A/D转换器的原理图如图所示。7.3.1
A/D转换器2、A/D转换器的性能指标AD转换器的技术性能指标很多,如分辨率、量化误差、转换时间、绝对精度、相对精度、漏码等。下面介绍一些主要的性能指标。(1)分辨率(2)量化误差(QuantizingError)(3)转换时间(ConversionTime)(4)绝对精度(RelativePrecision)(5)相对精度(AbsolutePrecision)(6)漏码(MissedCode)3、A/D转换器的选取原则A/D转换器的选取原则如下。
根据系统精度、线性度、输出位数的需要选择。
根据A/D转换器的输入信号范围、极性选择。
根据信号的驱动能力,是否要经过缓冲、滤波和采样/保持选择。
根据系统对A/D转换器输出的数字代码、逻辑电平的要求及输出方式选择。
根据系统的工作状态(静态/动态)、带宽、采样速率选择。
根据电源电压、功耗、几何尺寸等、参考电压特性选择。
根据A/D转换器的工作环境(噪声、温度、振动)选择。7.3.2AD0809A/D转换器1.主要特性ADC0809A/D转换器主要特性如下。
8路8位A/D转换器。
具有转换起停控制端。
转换时间为100μs。单个+5V电源供电。
模拟输入电压范围0~+5V,不需零点和满刻度校准。
工作温度范围为-40~+85℃。
低功耗,约15mW.
时钟频率最高为640kHz。2.内部结构与引脚ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,由8路模拟开关、地址锁存与译码器、比较器、8位A/D转换器、1个三态输出锁存器组成。ADC0809芯片为双列直插式28引脚封装,引脚分布如图所示通道选择真值表7.3.3AD0809与单片机硬件连接ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连,ADC0809与单片机的连接常用总线控制连接方式和通用I/O端口控制连接方式,通用I/O端口控制连接方式如图所示,除为ADC0809提供电源、基准电压,时钟信号外,还用通用的1/O引脚控制通道选择,提供启动转换信号与地址锁存信号,还用外部中断或I/O引脚获得转换结束信号,用某一端口读取转换结果。7.3.4ADC0809时序与应用1.ADC0809转换时序ADC0809工作时序如图所示。从时序图可看出,ADC0809的转换流程如下。(1)初始化时,使ST和OE信号全为低电平。(2)选择转换通道。(3)启动转换。ST上升沿将逐次逼近寄存器清零,ST下降沿启动A/D转换(就是ST端给出一个至少有100ns宽的正脉冲信号)。(4)判断是否转换完毕(根据EOC信号来判断)。(5)读出数据(当EOC变为高电平时,给OE为高电平,输出转换的数据给单片机)。2.ADC0809转换时序应用1)ADC0809初始化ADC0809初始化主要是分配给输出ST和OE控制信号的引脚全为低电平。2)选择转换通道选择转换通道就是把要转换的通道的地址送到A、B、C端口上,并锁存。3)启动转换启动转换就是先产生上升源,ST端给出一个至少有100ns宽的正脉冲信号。4)判断是否转换完毕判断是否转换完毕主要根据EOC信号来判断。通过采用查询方式和中断方式进行判断。采用查询方式时,查询EOC信号有效后,再允许输出转换结果并读出转换结果。5)读出数据读出数据就是ADC0809转换结束后输出转换的数据给单片机。要给ADC0809的OE引脚高电平信号,才能允许输出。7.3.5MS-51单片机三总线结构及绝对地址访问1.MCS-51单片机三总线结构当MCS-51单片机在进行外部存储器扩展时,其引脚可构成地址总线(AB)、数据总线(DB)、控制总线(CB)的三总线结构。如图所示,PO、P2构成地址总线对外部存储器寻址,PO时分复用作为数据总线,P3口的PSEN、WR、RD、ALE等作为控制总线2.绝对地址访问绝对地址是指存储控制部件能够识别的主存单元编号(或字节地址),也就是主存单元的实际地址。片内RAM的使用、片外RAM及I/O口的使用又称为绝对地址访问。C51提供了两种比较常用的访问绝对地址的方法。1)绝对宏C51语言编译器提供了一组宏定义来对51单片机的code,data、pdata和xdata空间进行绝对寻址。2)_at_关键字可以使用关键字_at_对指定的存储器空间的绝对地址进行访问,格式如下:[存储类型]数据类型标识符变量名_at_地址常数3.编写程序向指定空间写入数据1)编程要求编写程序,向外部指定存储空间0xFFFE写入数据0x11。2)编程思路采用三总线控制方式,先进行头文件包含(#include<absacc.h>)、宏定义(#defineaddressXBYTE[OxFFFE]),然后向定义指定的地址,写入数据。3)编写程序根据编程思路,参考程序如下:任务7-2波形发生器设计用AT89C51单片机控制,DAC0832作为D/A转换器;用一个按键操作,键控输出正弦波波形信号;LCD1602显示波形名称;发挥扩充功能,如幅度可调、频率可调等。要求包括:拟订总体设计制作方案。设计硬件电路。制软件流程图及设计相应源程序。仿真调试正弦信号发生器。安装元件,制作正弦波正弦信号发生器,调试功能指标。完成项目报告。2、原理及实现(1)正弦信号发生器总体设计思路(2)设计正弦信号发生器硬件电路(3)设计正弦信号发生器程序正弦信号发生器总体框图
主程序流程
正弦信号发生器硬件电路3、源程序设计根据设计思路与程序流程,参考程序如下,其中液晶显示部分程序与前一任务相同,不再列出。4、仿真调试正弦信号发生器(1)利用KeilμVision2的调试功能,根据错误提示,找到错误代码,排除各种语法错误,编译成hex文件。(2)通过对端口、入口参数赋值,存储空间或、端口、变量数据查询,调试函数和主程序。(3)用Proteus按设计的硬件电路,设计仿真模型,进行仿真调试。观察输出波形是否为正弦波,波形是否失真。5、调试正弦信号发生器(1)仿真调试成功后,按硬件电路把元件安装焊接在实验板上,并进行静态和动态检测。(2)烧录hex文件,运行程序,如不能运行,先排除各种故障(供电、复位、时钟,内外存储空间选择、软硬件端口应用等)。(3)用示波器测试输出波形,读出波形参数,分析测试是否达到性能指标。(4)如没有达到性能指标,调整电路或元件参数、优化程序,重新调试、编译、下载、运行程序,测试性能指标。7.4I2C总线A/D与D/A转换器PCF85917.4I2C总线A/D与D/A转换器PCF8591PCF8591转换器是基于I2C总线接口的8位A/D和D/A转换器,具有4路A/D转换模拟输入通道、1路D/A模拟输出,它既可以作为A/D转换器使用,也可以作为D/A转换器使用。7.4.1
PCF8591内部功能PCF8591转换器基于CMOS工艺制造,单一电源供电,供电电压2.5~6V(典型值5V),内部的A/D转换器属于逐次逼近比较型,具有4路A/D输入、1路8位D/A输出,片内DAC具有独立的数据寄存器,A/D和D/A转换器的最大转换速率为11kHz。PCF8591转换器的功能如图所示。PCF8591转换器的引脚排列如图所示,引脚功能详见表。
PCF8591转换器引脚排列
PCF8591引脚功能7.4.2PCF8591的控制PCF8591内部有两个可编程控制字:一个为地址选择字,另一个为转换控制字。1、地址选择字PCF8591采用典型的I2C总线的器件寻址方式,总线上的地址是由器件地址、引脚地址和读写方向位构成。Philips公司规定A/D器件高四位地址固定为1001,低三位地址为引脚地址A0~A2由硬件电路决定,地址的最后一位为方向位R/W,表明主器件接下来的操作方式。PCF8591的地址选择字格式如图所示。2、转换控制字转换控制字用于对PCF8591的功能设定,也是主器件在对PCF8591进行操作时发送的第二个字节,具体格式如图所示。7.4.3PCF8591的D/A转换D/A转换是PCF8591的核心部分,高精度的DAC除用做D/A转换外,还可以用做A/D转换。D/A转换的时序如图所示7.4.4PCF8591的A/D转换PCF8591的A/D转换时序如图所示。任务拓展:基于AD和DA转换芯片的可调光台灯设计1、目的与要求通过基于A/D和D/A转换芯片PCF8591的可调光台灯设计,学习D/A转换芯片在单片机应用系统中的硬件接口技术与编程方法,掌握I2C总线接口的工作原理及一般编程方法。任务3-4中,采用PWM技术实现了可调光台灯,本任务要求利用A/D和D/A转换芯PCF8591,产生一个模拟电压值Vout点亮与该引脚相连的LED发光二极管。通过控制程调整模拟输出电压,观察发光二极管的亮度变化。2、电路设计如图所示,采用单片机P2端口的P2.6和P2.7实现单片机与PCF8591芯片的FC线连接,P1端口的P1.0和P1.1连接两个独立式按键,控制输出电压的增大与减小,输纯压值Vout的范围为0~+5V,通过1kΩ限流电阻控制发光二极管的亮度。3、源程序参考采用PCF8591产生输出电压的编程思路:先从AOUT端口输出2.5V的电压,当按下P1.1连接的按键S1时,电压递增0.1V,输出电压的最大值可达到+5.0V;当按下P1.0连接的按键S2时电压减小0.1V,输出电压的最小值可以达到+0.0V。程序流程如图所示。可调光台灯控制程序参考如下。知识梳理与总结本项目围绕数字电压表与波形发生器设计展开,深入学习了单片机AT89C51与多种转换芯片的协同工作原理及应用。通过任务7-1,我们掌握了用AT89C51单片机控制ADC0809进行A/D转换,再经数据处理后利用液晶LCD1602显示电压值的方法,实现了0~5V直流电压的精确测量,且具备超量程提示等扩充功能。在此过程中,理解了数字电压表的总体设计思路、硬件电路搭建、软件编程逻辑以及仿真调试技巧等关键知识点。任务7-2则聚焦于波形发生器设计,学习了以AT89C51单片机驱动DAC0832D/A转换器输出正弦波信号的实现方式,并能通过按键操作控制波形输出,同时在LCD1602上显示波形名称等信息。由此熟悉了正弦信号发生器的设计原理、硬件电路布局、程序查表法实现波形输出的代码编写,以及仿真与实际电路调试的要点。此外,项目还拓展了I2C总线A/D与D/A转换器PCF8591的相关知识,包括其内部功能架构、控制字设置、D/A与A/D转换的具体时序,以及基于该芯片的可调光台灯设计实践,进一步加深了对转换芯片在单片机应用系统中硬件接口与编程方法的理解,同时掌握了I2C总线接口的工作机制及一般编程技巧。整体而言,本项目系统地梳理了单片机与A/D、D/A转换芯片结合的多种应用场景下的设计与实现知识,涵盖了从原理分析、硬件搭建、软件编程到调试优化的完整流程,为后续更复杂的嵌入式系统设计与开发奠定了坚实基础。谢谢项目8单片机应用系统综合设计目录任务8-1LCD1602调试工具任务8-2设计制作游客流量计数器任务8-3单片机生产计数检测系统设计任务8-4家居照明蓝牙控制设计任务8-5红外遥控项目导读本项目涵盖多个实用任务,旨在掌握单片机开发技能。LCD1602调试工具显示字符、数字;游客流量计数器统计景区人数;生产计数检测系统计数饮料生产;家居照明蓝牙控制远程操控家居灯;红外遥控任务接收解码红外信号。任务涵盖硬件搭建与软件编程,锻炼单片机开发能力,适于电子工程、自动化等专业学习参考。思维导图任务8-1LCD1602调试工具8-1-1任务目的本任务旨在深入掌握LCD1602液晶显示屏的工作原理和应用开发技巧,使用LCD1602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况,便于调试和演示。通过实际编程与硬件连接,实现对LCD1602的基本操作控制,包括字符显示、数字显示以及不同进制数据的显示转换,从而提升对嵌入式系统中人机交互界面设计的理解和实践能力,为后续复杂显示控制任务奠定基础。1.硬件搭建:使用8051单片机最小系统板,正确连接LCD1602的数据线(P0口)与控制线(P2.5-P2.7)。2.软件功能实现:完成LCD初始化,支持两行显示、光标关闭等配置,实现字符、字符串及十进制/十六进制/二进制数字的动态显示,并设计主程序循环每秒更新自增变量显示其值。3.调试验证:确保LCD显示内容清晰稳定,无乱码或闪烁现象。8-1-2任务要求8-1-3系统方案选择1602液晶也叫1602字符型液晶,它能显示2行字符信息,每行又能显示16个字符。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。实物图如图所示:大家手上拿到的LCD1602外观可能和上图不一样,这是由于不同厂家设计所致,使用方法是一样的。在上图中可以看到有16个管脚孔,从左至右管脚编号顺序是1-16,其功能定义如下所示:8-1-4系统硬件设计本实验使用到硬件资源如下:(1)LCD1602液晶一般开发板上集成了一个LCD1602液晶接口,下面我们来看下开发板上LCD1602液晶接口电路,如图所示:8-1-5系统软件设计Delay.c模块的参考程序如下。Delay.h头文件的参考程序如下。LCD1602.c模块的参考程序如下。LCD1602.h头文件的参考程序如下。基于51单片机的main的参考程序如下。8-1-6系统调试与脱机运行在KeilC51集成开发环境中搭建项目,将编写好的程序代码进行编译,检查并修正语法错误和警告。然后使用STC-ISP下载工具将编译生成的hex文件烧录到单片机中。将硬件电路连接好,接通电源,观察LCD1602的显示情况。如果出现显示异常,如字符乱码、显示不全等问题,通过检查硬件连接是否正确、程序代码是否存在逻辑错误、延时设置是否合理等方面进行调试。可使用示波器等工具检测信号波形,分析数据传输过程中的问题。经过反复调试,确保系统能够稳定、准确地运行,达到预期的显示效果后,可将系统脱机运行,进行长时间的稳定性测试。通过本次任务,深入理解了LCD1602的工作原理和控制方法,掌握了单片机与LCD1602的硬件连接和软件编程技巧,能够实现字符、数字等多种信息的显示。在任务过程中,学会了运用模块化编程思想进行程序设计,提高了代码的可读性和可维护性。同时,在系统调试过程中,积累了硬件故障排查和软件调试的经验,提升了综合实践能力。然而,在任务中也发现了一些不足之处,如对LCD1602的一些高级功能(如自定义字符显示等)尚未深入探索,程序的优化空间还有待进一步挖掘等。在今后的学习中,将继续深入研究LCD1602的其他功能,探索更高效的编程方法,提升嵌入式系统开发的水平。8-1-7
任务小结任务8-2设计制作游客流量计数器8-2-1目的与要求用AT89C51单片机控制。能自动统计游客流量总人数与景区实时人数,游客流量人数范围为0~1000,并用数码管显示。使用外部中断响应。发挥扩充功能,如消隐功能(高位为0则不显示)等。要求拟订总体设计制作方案。设计硬件电路。编制软件流程图及设计源程序。仿真调试游客流量计数器,安装元件,制作游客流量计数器,调试功能。完成项目报告。8-2-2系统方案选择计数器基本功能实现思路是:用AT89C51单片机构建最小系统;它的两个外部中断源分别作为加1与减1计数请求端口。人口感应装置与出口感应装置在有人通过时输出低电平信号,无人通过时输出高电平信号,产生的低电平和下降沿可作为外部中断触发信号。每进出1人中断一次,人数计算值进行加1或减1,游客在内人数为人口人数与出口人数之差,用数码管显示,2位数码管显示入口总人数,2位数码管显示游客出来后内部总人数。总体框图如图所示。8-2-3系统硬件设计
AT89C51单片机采用上电复位形式,时钟电路采用12MHz的振荡频率,22pF电容作微调电容,P1口作为显示段码输出端口,P2口作为位码输出端口,高4位数码管显示进人景区总人数,低4位显示景区内人数,人口感应装置和出口感应装置分别与外部中断源0、中断1相接口,游客流量人数计数器电路如图所示。8-2-4系统软件设计1)编程思路外部中断0作为人口人数计数请求中断源,外部中断1作为出口人数计数请求中断源,均采用边沿触发方式,每进出1人则中断一次,在外部中断0服务程序里完成人数加1计算,在外部中断1服务程序里完成人数减1计算。显示采用动态显示方式。中断服务程序流程如图所示,主程序流程如图所示。2)程序设计根据程序流程,参考程序如下:8-2-5仿真系统设计1、仿真游客流量人数计数器按照硬件电路,用按键代替入口与出口感应装置,用Proteus建立如图所示仿真模型。2、调试游客流量人数计数器(1)仿真调试成功后,按硬件电路在实验板上安装元件并进行检测。(2)烧录hex文件,运行程序。(3)以按键代替进出入感应装置,进行模拟游客流量人数计数,观察程序是否正常运行。(4)根据运行情况,调整电路或元件参数、优化程序,重新调试,达到较好的效果。8-2-6任务小结此程序是一个基于8051微控制器的简单计数和显示程序,使用了两个外部中断INT0和INT1来进行计数操作,并通过数码管显示计数值。1、变量定义:seg_dm:定义了一个数组,用于存储0-9的数码管段码。bit_line:定义了一个数组,用于选择数码管的显示位。data_disply:定义了一个数组,用于存储待显示的每一位数字。Total_number和Inside_number:用于存储总的计数和内部计数。2、函数定义:delay:一个简单的延时函数,通过循环来消耗时间。data_change:一个数据处理函数,用于将总的计数和内部计数转换为数码管可以显示的每一位数字。INT0_init和INT1_init:分别用于初始化外部中断INT0和INT1。display:用于在数码管上显示一位数字。3、中断处理:Init0:INT0的中断服务程序。当INT0被触发时,Total_number和Inside_number都会加1。Init1:INT1的中断服务程序。当INT1被触发时,Inside_number会减1。4、主函数:首先初始化INT0和INT1。然后进入一个无限循环,在循环中:调用data_change函数更新data_disply数组。遍历data_disply数组,通过display函数将每一位数字显示在数码管上。5、程序特点:使用外部中断进行计数操作,使得计数操作可以由外部信号触发,增加了程序的灵活性。任务8-3单片机生产计数检测系统设计8-3-1目的和要求设计制作饮料生产计数器,AT89C51单片机控制,数码管作为显示器,用4位数码管显示箱数,2位数码管显示当前箱瓶数。能测试某饮料装箱装置每检测到一瓶饮料输出一个脉冲,以12瓶为1箱计算,统计饮料的箱数与散装瓶数。发挥扩充功能,如高位消隐等。要求拟订总体设计制作方案。设计硬件电路,编制软件流程图及设计相应源程序。仿真调试饮料生产计数器,安装元件,制作饮料生产计数器,调试功能指标。完成项目报告。8-3-2系统方案选择
饮料生产计数器基本功能实现思路是:用AT89C51单片机构建最小系统;用一个定时/计数器作为计数器,对饮料生产线计数脉冲信号进行计数。每1个脉冲对应1瓶饮料数,把总瓶数转换为箱数和散装瓶数。经译码用数码管显示,总体框图如图所示。8-3-3系统硬件设计AT89C51单片机采用上电复位形式,时钟电路采用12MHz的振荡频率,22pF电容作微调电容,P1口作显示段码输出端口,P2口作位码输出端口,饮料生产线计数脉冲输出信号通过T0输入计数,饮料生产计数器电路如图所示。8-3-4系统软件整体设计1)编程思路用一个定时/计数器作为计数器使用,用方式1对饮料装箱装置输出的计数脉冲计数,然后再计数出箱数与散装瓶数,主程序流程如图所示。2)设计程序根据流程图设计程序,参考程序如下:8-3-5仿真系统设计按照硬件电路用Proteus软件,选择數数码管7SEG-MPX8-CC-BLUE、瓷片电容CERAMIC22P、10μF电解电容、电阻RES、晶振CRYSTAL.CPUAT89C51、用信号源代替生产线上饮料瓶经过所产生的脉冲信号如图所示,建立如图所示的仿真模型。8-3-6系统调试与脱机运行(1)仿真调试成功后,按硬件电路在实验板上安装元件并进行检测。(2)烧录hex文件,运行程序。(3)以信号源代替生产线饮料瓶数检测输出信号,进行生产饮料瓶数计数,观察程序是否正常运行并测试计数精度与显示效果。(4)根据运行情况,调整电路或元件参数、优化程序,重新调试,达到较好的效果。8-3-7任务小结1、系统方案:采用AT89C51单片机为核心控制器,配置了12MHz的时钟频率,利用定时/计数器T0对外部脉冲信号进行计数,以此来记录饮料瓶数。系统设计中,P1口负责驱动数码管的段码,P2口控制数码管的位选,实现数字的动态显示。2、
硬件设计特点复位电路:确保单片机上电后能够正确初始化。时钟电路:稳定提供12MHz的时钟信号,保证单片机运行的准确性。信号输入:生产线的脉冲信号直接连接至T0,实现计数功能。显示模块:通过译码驱动4位数码管显示箱数,2位数码管显示瓶数,增强直观性。3、
软件设计亮点程序结构清晰:主程序、功能子程序(如延时函数、读计数值、计算箱数瓶数、数据显示等)模块化设计,便于阅读与维护。数据处理逻辑:有效地将累计脉冲数转换为箱数与散装瓶数,并通过数据处理函数分配至各数码管显示。显示控制:通过循环调用显示函数,实现了动态更新显示内容,提高了显示的实时性和交互性。4、
仿真与调试过程仿真验证:使用Proteus软件搭建仿真模型,验证系统设计的正确性,包括硬件连接与软件逻辑,确保无误后再进行实物组装。系统调试:经历了从仿真环境到实际硬件平台的过渡,通过信号源模拟生产线信号,对系统的计数精度与显示效果进行了全面测试与优化。该项目成功实现了饮料生产计数器的设计与制作,不仅展示了AT89C51单片机在工业计数应用中的灵活性与可靠性,也体现了软硬件协同设计的重要性。通过综合运用电子技术、单片机编程与系统调试方法,该系统有效满足了饮料生产计数的需求,提升了生产管理的自动化水平,具有一定的实用价值与推广意义。任务8-4家居照明蓝牙控制设计8-4-1目的与要求随着科技的进步,一些无线通信技术已经成熟并迅速普及,比如大家熟知的蓝牙技术已成为众多智能终端的标配,这极大地提高了通信的便捷性。本任务就来开发一个家居照明的蓝牙控制系统。本任务首先在手机端安装已开发好的蓝牙串口APP,通过这个APP并利用手机内的蓝牙模块可发送控制命令,从机蓝牙模块接收到控制信号后,通过51单片机的串行通信接口将控制信号传给单片机,单片机判断控制信号并以此点亮或者熄灭家居中不同的灯,如此就可实现家居照明的无线控制。8-4-2电路设计基于51单片机的家居照明蓝牙控制系统硬件电路如图所示。电路中采用了HC-06蓝牙模块(如图),该模块共有四个引出端:Vcc为电源,其输入电压范围为3.6~6V,GND为地,TX为信号输出端,RX为信号输入端。由于HC-06模块支持UART接口,因此把HC-06的TX、RX分别和51单片机的RXD,TXD相连,通电后即可进行二者之间的串口通信。HC-06嵌入式蓝牙串口通信模块是专为智能无线数据传输而打造的,采用英国CSR公司BlueCore4-Ext芯片,遵循V2.0+EDR蓝牙规范。该模块支持UART、USB、SPI等接口,具有成本低、体积小、功耗低、收发灵敏等优点。该模块主要用于短距离的数据无线传输领域,可方便地与手机等智能终端的蓝牙设备相连,也可实现两个模块之间的数据互通。8-4-3程序设计本设计中的单片机只是以串口方式从蓝牙模块接收控制信号,而且这个控制信号是随机出现的,因此最有效的方式就是采用串口中断方式来接收控制信号。整个系统的控制程序采用模块化的设计方法。基于51单片机的家居照明蓝牙控制系统的参考程序如下。8-4-4蓝牙APP设置及系统运行调试开启手机蓝牙,启动“蓝牙串口”APP,点击“连接”。若未见单片机上的蓝牙模块(如“SZPT”),点击“搜索”,找到并配对“SZPT”,输入密码“1234”完成连接。进入聊天页面,点击至“开关”页面,长按按钮弹出“按钮编辑器”。编辑4个按钮,输入“客厅灯”、“0”等信息,选择“字符”,点击“确定”。其他按钮分别对应卧室、厨房、卫生间灯。设置完成如图。8-4-5任务小结
该程序是一个用于单片机通过蓝牙模块接收信号并控制家居照明灯亮灭的示例。1.程序功能:该程序通过单片机与蓝牙模块的连接,实现了家居照明灯的远程控制。用户可以通过发送特定的字符('0'至'3')到蓝牙模块来控制客厅灯、卧室灯、厨房灯和卫生间灯的亮灭。2.初始化设置:在main函数中,首先通过P1=0x00;将所有灯熄灭。调用Com_Init函数进行串口初始化,设置串口工作于方式1并允许接收,定时器T1用于生成波特率,并开启串口中断和总中断。3.主循环:在main函数的主循环中,程序持续检测rok标志位,即检查是否有接收到的控制信号。若rok为1,即成功接收到控制信号,则调用id_signal函数处理接收到的信号。4.信号处理:id_signal函数根据接收到的字符(保存在rev变量中)来判断应该控制哪盏灯。使用switch语句和case分支来处理不同的控制信号,并通过取反操作LEDx=~LEDx来实现灯的亮灭切换。处理完信号后,将rok标志位复位为0,以便下一次接收信号。5.中断服务:程序中定义了一个串口中断服务函数Com_Int,该函数在接收到数据时被调用。在中断服务函数中,首先关闭串口中断以避免嵌套中断,然后检查接收中断标志位RI。如果RI为1,表示接收到数据,将接收到的数据保存到rev变量中,并清除中断标志位RI。最后,将rok标志位置为1,表示成功接收到控制信号,并重新开启串口中断。6.注意事项:程序中的reg51.h头文件是特定于51单片机的,包含了该单片机所需的寄存器定义。程序中使用了位定义(sbit)来方便地访问单片机的IO端口位。程序使用了中断来处理蓝牙模块的接收数据,提高了程序的响应速度和效率。该程序是一个简单而实用的家居照明灯控制程序,通过蓝牙模块实现了远程无线控制功能。任务8-5红外遥控8-5-1任务目的1、理解红外遥控信号的基本原理与编码机制(如NEC协议)。2、掌握8051单片机外部中断(INT0)和定时器的使用方法。3、学习通过红外接收模块(如HS0038)解码遥控信号,并在LCD1602上显示数据。
4、熟悉多模块协同开发的流程,包括中断处理、数据解析和显示驱动。1、功能要求:能够正确接收红外遥控器发送的信号,区分数据帧和连发帧。解析接收到的红外信号,提取出遥控器的地址码和命令码。根据接收到的命令码执行相应的操作2、代码要求:代码必须采用模块化编程,将不同功能封装成独立的函数,如定时器初始化、红外遥控初始化、LCD显示等。代码中要有必要的注释,解释关键部分的功能和实现思路。代码要具有一定的健壮性,能够处理可能出现的异常情况,如红外信号接收错误。3、硬件要求:正确连接单片机、红外接收头和LCD1602液晶显示屏,确保硬件电路正常工作。保证红外遥控器能够正常发送信号,并且红外接收头能够准确接收信号。8-5-2
任务要求
8-5-3电路设计通用红外遥控系统由发射和接收两大部分组成。现在的红外遥控系统一般应用编码/解码专
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床路径表单模板(中文版)+ 常见病种临床路径实施规范
- 学校接待外来参观人员安全引导预案
- 学习方法分享会:高效学习从何开始小学主题班会课件
- 公益组织项目经理公益活动实施效果KPI考核表
- 目标提升生命教育质量小学主题班会课件
- 2026年度员工绩效评估标准变更通知(5篇)
- 警惕心理问题促进阳光心态,四-六年级主题班会课件
- 交通运输行业智能交通规划与运营方案
- 健身教练与私人训练师KPI考核表
- 旅游业服务标准与质量控制方案指南
- 穿越机组装教学课件
- 机加工标识管理制度
- 都匀三中入学考试题目及答案
- 新任店长述职报告
- 中建通风空调施工组织设计
- 中药饮片临床应用管理制度
- 七年级下册历史期末测试卷含答案
- 生鲜品类提升计划方案
- 高档普采工作面管理课件
- 乙烯装置操作手册
- 鼎捷T100-V1.0-总账管理用户手册-简体
评论
0/150
提交评论