单片机课程设计---基于单片机的简易数字电压表设计.doc_第1页
单片机课程设计---基于单片机的简易数字电压表设计.doc_第2页
单片机课程设计---基于单片机的简易数字电压表设计.doc_第3页
单片机课程设计---基于单片机的简易数字电压表设计.doc_第4页
单片机课程设计---基于单片机的简易数字电压表设计.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用 课程设计报告书题 目:基于单片机的简易数字电压表设计姓 名: 苦惑仔学 号: 0935210XX指导老师:邓方雄设计时间:2012.4湖北科技学院电子与信工程息工程学院目 录1.引 言11.1.设计意义11.2.系统功能要求12.方案设计13.硬件设计23.1.硬件电路23.1.1.硬件电路图部分模块设计23.1.2.硬件电路图整体设计43.2.硬件电路仿真54.软件设计54.1.初始化程序54.2.主程序54.3.显示子程序64.4.A/D转换测量子程序65.系统调试76.设计总结87.附 录87.1.源程序代码87.2.作品实物图片148.参考文献14 基于单片机的简易数字电压表设计 单片机原理及应用课程设计基于单片机的简易数字电压表设计1. 引 言1.1. 设计意义传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳。而数字电压表读数直观抗干扰信号等优点。通过本次基于AT89C52单片机为控制系统,ADC0809为转换的简易数字电压表的课程设计可以从中了解片机控制的数字电压表的基本原理,将课堂上的理论知识紧密的联系起来,掌握包括硬件的组装及相关软件的使用和系统调试。1.2. 系统功能要求简易数字电压表可以测量05V的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。测量误差约为0.02V。2. 方案设计按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809.系统除能实现要求的功能外,还能方便的进行8路其他A/D转换量的测量,远程测量结果传送等拓展功能。数字电压表系统设计方案框图如图1所示: AT89C52 4位LED显示 ADC0809 上位复电 串口通信 电源电路 P0 P2 P1 P3 图1 数字电压表系统设计方案框图 3. 硬件设计3.1. 硬件电路3.1.1. 硬件电路图部分模块设计AT89C52芯片引脚图如图2 所示图2晶振电路晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值2040PF,使用陶瓷震荡器时c2,c3取值3050PF。在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。18引脚接XTAL1,19引脚接XTAL2,20引脚接地。显示电路设计 LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。数码管有共阴极和共阳极两种结构规格,如图2.5所示。图中电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。数码管原理电路图: 共阳极图字段显示3.1.2. 硬件电路图整体设计简易数字电压测量由A/D转换、数据处理及显示控制等组成,电路原理图如图3 所示,A/D转换有集成电路ADC0809完成。ADC0809据有8路模拟输入端口,地址线(第2325脚)可决定对哪一路模拟输入作A/D转换。第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,第6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平,第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。 单片机的P1、P3.0P3.3端口作为四位LED数码管显示控制。其中P1端口控制段码,P3.0P3.3端口控制位选。P3.5端口用作单路显示/循环转换按钮,P3.6端口用作单路显示时选择显示的通道。P0端口作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。 图3 数字电压表电路原理图(字体小4号,宋体)3.2. 硬件电路仿真根据设计的硬件电路图,在pretous中就行仿真。论证硬件电路设计的可行性,根据仿真的结果与系统功能要求就行分析,最后达到设计要求。可以提高工作效率及设计成本。仿真硬件点图搭建如图3试。其中二分频用D触发器代替模数转换器用的是与实际电路图中功能相当的ADC0808代替的。通过仿真论证了硬件电路图基本能满足系统功能设计的需要。4. 软件设计4.1. 初始化程序系统刚上电时,初始化程序主要用来执行70H77H内存单元清空0和P2口置0等准备工作。 4.2. 主程序在刚上电时,系统默认为循环显示8个通道的电压值状态,当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序与测量子程序之间循环。主程序流程图如所示。4.3. 显示子程序显示子程序采用动态扫描法实现4位数码管的数值显示。测量所得的A/D转换数据放在数组中,测量数据在显示时须经过转换成为十进制BCD码放在对应的数组中。开始 初始化 调用A/D转换测量子程序 调用显示子程序 主程序流程图4.4. A/D转换测量子程序A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值放在数组中。A/D转换测量子程序流程图如图所示。开始 启动测试(TESTART) A/D 转换结束? (P3.7=1?) ADC0809地址加1 取数据(P2.5=1) 地址数小于8? 结束 N Y N Y 转换测量子程序流程图5. 系统调试硬件组装基本完成后,上电后发现数码管根本就不亮。用数字电压表检测个芯片发现有些芯片的电源和接地线没连接。通过一一检测,找出了其中漏掉的线。线路连接完整后数码管亮了,但跟其他同学数码管显示的规律不一样即有错误,自己检测大半个上午未果。请同学帮我检查最后发现是有跟连线接错了。最后硬件连线完全正确后发现所编程序并不能安要求是数码管显示。通过思考调试最后找出其中的错误,在KEIL软件中编译调试后没问题。最后生成HEX文件烧入单片机中,最后数码管完全按要求显示,整个课程设计成功。(字体小4号,宋体)6. 设计总结经过一段时间的努力,基于单片机的简易数字电压表基本完成。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。本次设计采用了AT89S52单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0809,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。7. 附 录7.1. 源程序代码;*; ; 八路电压测量显示电路 ; ;*;测量电压最大为5V,显示最大值为5.00V;70H77H存放采样值,78H7BH存放显示数据,依次为个位、十位、百位、通道标志;P3.5作单路显示-循环显示转换用,P3.6作单路显示时选择通道用。?;*;* *;* 主程序和中断程序入口 *;* *;*ORG 0000H LJMP STARTORG 0003H RETIORG 000BHRETI ORG 0013H RETI ORG 001BH RETIORG 0023HRETIORG 002BHRETI;*;* *;* 初始化程序中的各变量 *;* *;*CLEARMEMIO: CLR A MOV P2,A MOV R0,#70H MOV R2,#0DHLOOPMEM: MOV R0,A INC R0 DJNZ R2,LOOPMEM MOV 20H,#00H MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET;*;* *;* 主 程 序 *;* *;*START: LCALL CLEARMEMIO ;初始化MAIN: LCALL TEST ;测量一次 LCALL DISPLAY ;显示数据一次AJMPMAINNOP;PC值出错处理NOPNOPLJMPSTART;*;* 显 示 控 制 程 序 *;*;DISPLAY: JB 00H,DISP11 ; MOV R3,#08H ;8路信号循环显示控制 MOV R0,#70H ;显示数据初址70H77H MOV 7BH,#00H ;显示通道路数初值DISLOOP1: LCALL TUNBCD ;显示数据转为三位BCD码存入7AH、79H、78H(最大5.00v) MOV R2,#0FFH ;每路显示时间控制 4MS*255DISLOOP2: LCALL DISP ;调四位显示程序 LCALL KEYWORK1 ; DJNZ R2,DISLOOP2 ; INC R0 ;显示下一路 INC 7BH ;通道显示数加一 DJNZ R3,DISLOOP1 RET;DISP11: MOV A,7BH ; SUBB A,#01H ; MOV 7BH,A ; ADD A,#70H ; MOV R0,A ;DISLOOP11: LCALL TUNBCD ;显示数据转为三位BCD码存入7AH、79H、78H(最大5.00v) MOV R2,#0FFH ;每路显示时间控制 4MS*25DISLOOP22: LCALL DISP ;调四位显示程序 LCALL KEYWORK2 ; DJNZ R2,DISLOOP22 INC 7BH ;通道显示数加一 RET;*;* 显示数据转为三位BCD码程序 *;*;显示数据转为三位BCD码存入7AH、79H、78H(最大值5.00v);TUNBCD: MOV A,R0 ;255/51=5.00V运算 MOV B,#51 ; DIV AB ; MOV 7AH,A ;个位数放入7AH MOV A,B ;余数大于19H,F0为1,乘法溢出,结果加5 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 79H,A ;小数后第一位放入79H MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 ; MUL AB ; MOV B,#51 ; DIV AB JB F0,LOOP3 ; ADD A,#5LOOP3: MOV 78H,A ;小数后第二位放入78H RET;*;* ? 显?示 程 序 *;*;共阳显示子程序,显示内容在78H7BH;DISP: MOV R1,#78H ;共阳显示子程序,显示内容在78H7BH MOV R5,#0FEH ;数据在P1输出,列扫描在P3.0-P3.3PLAY: MOV P1,#0FFH MOV A,R5 ANL P3,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A JB P3.2,PLAY1 ;小数点处理 CLR P1.7 ;小数点显示(显示格式为XX.XX)PLAY1: LCALL DL1MS INC R1 MOV A,P3 JNB ACC.3,ENDOUT RL A MOV R5,A MOV P3,#0FFH AJMP PLAYENDOUT: MOV P3,#0FFH MOV P1,#0FFH RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;*;* ? ? 延时程序 *;*;DL10MS: MOV R6,#0D0H ;10MS延时子程序DL1: MOV R7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RET;DL1MS: MOV R4,#0FFH ;513+513=1MSLOOP11: DJNZ R4,LOOP11 MOV R4,#0FFHLOOP22: DJNZ R4,LOOP22 RET;*;* ? 电压测量(A/D)子程序 *;*; 一次测量数据8个,依次放入70H-77H单元中;TEST: CLR A ;模数转换子程序 MOV P2,A MOV R0,#70H ;转换值存放首址 MOV R7,#08H ;转换8次控制 LCALL TESTART ;启动测试WAIT: JB P3.7,MOVD ;等A/D转换结束信号 AJMP WAIT;TESTART: SETB P2.3 ;测试启动 NOP NOP CLR P2.3 SETB P2.4 NOP NOP CLR P2.4 NOP NOP NOP NOP RET;MOVD: SETB P2.5 ;取A/D转换数据 MOV A,P0 MOV R0,A CLR P2.5 INC R0 MOV A,P2 ;通道地址加1 INC A MOV P2,A CJNE A,#08H,TESTEND ;等8路A/D转换结束TESTEND: JC TESTCON CLR A ;结束恢复端口 MOV P2,A MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET;TESTCON: LCALL TESTART LJMP WAIT;*;* ? 按键检测子程序 *;*;KEYWOR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论