1、单片机设计 电压传感器第1章 课题的设计要求、目的、意义1.1课题的设计要求:设计并制作用单片机控制一个数字式电压表。本电压表为多路模拟量输入,范围为05V,将采集的数据转换成工程量在LED数码显示器上显示,测量最小分辨率为0.0196V,测量误差为0.02V。1.2课题的设计目的与意义:课程设计是让我熟练掌握了课本上的一些理论知识,课程设计也是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。加深我们对单片机原理与应用课程的理解。第2章 系统总体方案选择与说明 实现数字电压表的方案很多,目前广泛采用的时基于74系列逻辑器件,本设计将介绍
2、基于单片机实现的方案。 2.1通道转换方案设计 方案一:考虑到ADC0808的8路模拟量输入本质上也是模拟开关,因此可以利用其8个模拟通道中的3个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。 方案二:利用手动开关实现通道转换。该方案可简化控制程序,消减系统开销。缩短反应时间,不足之处在于操作麻烦。 综上所述:方案二所需元件少、成本低且易于实现,则选此方案。2.2显示部分方案设计 方案一:单片机的P0、P2口分别接74LS248和ULN2003A芯片来驱动四位数码管 方案二:直接用单片机的P1、P2口驱动数码管,此处把ADC0808的输出端接P1口 ,因
3、为P1口能够驱动数码管。 综上所述,两个方案都可行,但方案二所需元件少、成本低,则选择此方案。第3章 系统结构框图与工作原理3.1 系统结构框图 根据项目要求,确定该系统的设计方案,图3-1为该方案的硬件电路设计框图。由6个部分组成,即单片机、时钟电路、复位电路、LED显示电路、A/D转换器和测量电压输入电路。时钟电路复位电路单片机LED显示电路A/D转换测量电压输入电路 图3-1 系统结构框图3.2 工作原理系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过按键选
4、择八路通道中的一路,将该路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。第4章 各单元硬件设计说明及计算方法根据设计要求与思路,确定该系统的设计方案。硬件电路由5个部分组成,即单片机时钟电路、复位电路、4位显示器电路、A/D转换电路和键盘及测量电路。4.1单片机的选择
5、系统设计使用MCS-51单片机8051芯片。8051芯片由以下部分组成:中央处理器、256单元的内部数据存储器、4KB的程序存储器、定时器/计数器、四个八位的I/O口,中断控制系统及时钟电路。图4.1所示为采用双列直插式封装的8051AH芯片管脚图。图4.1 80C51芯片管脚图4.2时钟电路与复位电路的设计时钟电路是计算机最核心的部分,它控制着计算机的工作MCS-51单片机允许的时钟频率典型值为12MHZ。80C51单片机内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,分别是80C51的19脚和18脚。在XTAL1和XTAL2两端跨接石英晶体及
6、两个电容就可以构成稳定的自激振荡器。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,使MCS-51片内的OCS电路按石英晶振相同频率自激震荡。通常,OCS的输出时钟频率fosc为0.5MHZ16MHZ,典型值为12MHZ电容器C1和C2通常取30pF左右,对震荡频率有微调作用。调节它们可以达到微调震荡周期fosc的目的。单片机的RST管脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。单片机的复位方式有上电自动复位和手工复位两种。图4-2所示是51系列单片机常用的上电复位电路,只要Vcc上升时间不超过1ms,它们都能很好地工作。复
7、位以后,单片机内各部件恢复到初始状态。电阻电容器件的参考值:R1=200,R2=1K,C3=22F。RET按键可以选择专门的复位按键,也可以选择轻触开关。电路图如图4-2所示。图4-2 时钟电路与复位电路4.3LED显示电路设计与器件选择单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。显示器、键盘电路就是用来完成人机对话活动的人机通道。LED显示器的驱动是一个非常重要的问题,此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P1,P2口驱动,实验证明可行。在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此
8、生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。图4-2为本系统LED显示电路,采用P1口作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号。图4-3 LED显示原理图说明:1位显示转换通道,2、3和4位显示电压表数值。4.4 A/D转换电路和测量电路的设计A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0+5V。
9、74LS373: 是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用做8位地址锁存器。用单片机的P2.4对应ADC0808的ALE端,P2.5对应EOC端,P2.6对应OE端,P3.3对应CLK端,用软件设定给定的值。ADDA、ADDB和ADDC连接74LS373的输出端,由74LS373输出值选择通道。IN0IN7分别8个被测电位器,根据选择的通道,ADC0808选择测量相应通道的电位。电路图如图4-4所示。图4-4 A/D转换测量电路说明:0808芯片的IN0
10、-IN7分别接8个电位器,OUT1-OUT8接单片机P0口并与74373的D0-D7连接。74373的OE接地,LE接单片机P3.2管脚,用程序控制其锁存地址。0808芯片的CLK接P3.3用程序给其初始化脉冲。ST和ALE接P2.4,OE、EOC分别接P2.6、P2.5,编程控制以控制0808芯片。第5章 软件设计与说明5.1系统软件设计(流程图)图5.1为程序软件设计流程图 其中(a)为主程序流程图,(b)为A/D转换子程序流程图。 开始初始化调用A/D转换子程序调用显示子程序开始开始模数转换转换是否完成取得模数转换结果并转化为工程量显示转化结果结束(a)主程序流程图(b)A/D转换子程序
11、流程图调用延时程序 其中A/D转换子程序是将0808转化后的数字量,需通过转化子程序转化成工程量并通过查表送到P1口送给LED显示。5.2 程序设计(1)初始化程序 给ADC0808时钟脉冲信号,并指向0808的0通道启动A/D转换,通过延时等待8路采集完毕。(2)数据读入 控制0808芯片的ALE、START、EOC和OE,STRT为正脉冲时转换开始,EOC为低电平时A/D转化结束,OE为高电平时转换结果送到数据线并被单片机读入,ALE为上升沿信号地址锁存允许 CLR P2.4 SETB P2.4 CLR P2.4 JNB P2.5,$ SETB P2.6 MOVX A,DPTR MOV A
12、DC,A CLR P2.6(3)消抖 防抖动的时间是10ms。(4)通道转换 当判断有按键按下后P3.2口置位即允许74373地址锁存,DPTR加1指向下一通道。第6章 使用说明与调试结果该数字电压表可以同时测量8路直流数据,电压表测量范围为0.005.00V,测量最小分辨率为19.5mv。 整个系统由一个按钮控制,最左边个LED显示器是指向当前通道,即电位器编号。用Proteus仿真中点PLAY电压表默认显示第8通道即第8个电位器RV8的测量值。第一次按下按钮后,改变测量通道即第1通道RV1的值,第2下为第2通道,依次循环测量8个电位器的电压值。选择其中任意电位器并拨动其位置能改变其值,最大
13、值为5V,最小值为0V,在中间时为2.49V,单片机能读出并正确显示。经调试后该系统能达到目标要求。总结这次课程设计对我来说学到的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。在一个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手
14、能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多! 发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。参考资料1 51周向红.系列单片机应用与实践教程.北京:北京航空航天大学出版社,2008 2王迎旭.单片机原理与应用.北京:机械工业出版社, 2004 3公茂法.单片机人机接口实例. 北京:北京航空航天大学出版社,2006附录1 系统原理图附录2 程序清单ADC EQU 50HLED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32HLED_3 EQU 33HORG 0000HAJMP
15、MAINORG 000BHAJMP INT0ORG 0030HMAIN: LCALL CLK ;初始化MOV R4,#8MOV LED_3,R4START1:MOV DPTR,#7FF0H ;指向0通道 MOVX DPTR,A ;读取转换数值 JB P3.4,AAA1 LCALL DELAY ;调用延时程序 LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY JB P3.4,AAA1 ;判断是否按下按钮并开始
16、转换数值 SETB P3.2 ;P3.2给高电平锁存地址 INC R4 CJNE R4,#9,AAA2 MOV R4,#1 AAA2: MOV LED_3,R4 ;显示所选通道 INC R5 INC DPTR ;指向下一通道 MOV B,R5 ;显示通道并重新锁存地址 MOV P0,B CLR P3.2 JNB P3.4,$ AAA1: CLR P2.4 SETB P2.4 CLR P2.4 JNB P2.5,$ SETB P2.6 MOVX A,DPTR ;读取转换数据开始转化为工程量 MOV ADC,A CLR P2.6 LCALL CONV ;调用转换子程序 LCALL DISP ;调用
17、显示子程序 LCALL DELAY ;调用延时程序 LJMP START1 CONV: MOV A,ADC ;数值转换子程序 MOV B,#51 DIV AB MOV LED_2,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP1 ADD A,#5LOOP1:MOV LED_1,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5LOOP2:MOV
18、LED_0,A RETIDISP:MOV DPTR,#TABLE ;数码显示子程序 MOV A,LED_3 MOVC A,A+DPTR CLR P2.0 MOV P1,A LCALL DELAY SETB P2.0 MOV A,LED_0 MOVC A,A+DPTR CLR P2.3 MOV P1,A LCALL DELAY SETB P2.3 MOV A,LED_1 MOVC A,A+DPTR CLR P2.2 MOV P1,A LCALL DELAY SETB P2.2 MOV A,LED_2 MOVC A,A+DPTR CLR P2.1 ORL A,#80H MOV P1,A LCALL DELAY SETB P2.1 RETCLK: MOV TMOD,#02H; ;初始化脉冲信号 MOV TH0,#245; MOV TL0,#245; SETB EA SETB TR0 SETB ET0INT0:CPL P3.3 RETIDELAY:MOV R6,#1 ;延时子程序D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETTABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1