基于PCF8591数字电压表设计_第1页
基于PCF8591数字电压表设计_第2页
基于PCF8591数字电压表设计_第3页
基于PCF8591数字电压表设计_第4页
基于PCF8591数字电压表设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 成绩 课程设计报告 题 目: 学生姓名: 学生学号: 别:系 业:专 指导教师: 电气信息工程学院制 月2013年6 课程设计的总体方案1章 第 课程设计的目的1.1 转换性能及其编程方法。PCF8591A/D1.了解芯片 转换器与单片机的接口方法A/D2.掌握 转换器进行电压信号采集3.学会使用A/D 课程设计的要求1.2 液晶显示屏组成。及1602PCF8591A/D1.利用芯片 路模拟量输入。4采用2 3.尽量使用较少的元器件。 课程设计的思路1.3 单片机为核心控制器件。根据设计要求,选择AT89C511. 将模拟电压转换为数字量。实现,利用PCF85912.A/D转换采用PCF85

2、91 数码管。位一体的LED3.经单片机将数字量转换成对应电压值,电压显示采用4 课程设计的方案1.4 硬件电路设计由6个部分组成。 A/D转换电路,AT89C51单片机系统,LCD显示系统、时钟电路、 所示。复位电路以及测量电压输入电路。硬件电路设计框图如图1 时钟电路 复位电路AT89C51 P1 P2 P2 P0 结束A/D转换电路 结束 显示系统模拟量输入 数字电压表系统硬件设计框图1 图 系统方案硬件设计章第2 系统方案的提出2.1 转换器提供以下设计方案。路模拟量输入设计的需要,为单片机和A/D根据 4 单片机方案2.1.1 )。PEROM可擦写存储器(4k字节Flash位单片机,

3、片内含 AT89C51是一个低功耗,高性能CMOS 880C51指令系统及公司的高密度、非易失性存储技术制造,兼容标准MCS-51器件采用AT89C51ATMEL位8的片内AT89C51Flash允许程序存储器通过传统编程器反复编程。由于芯片内集成了通用引脚结构,可为许多嵌入式控制应用系统提供ATMEL AT89C51Flash中央处理器和存储单元,功能强大的微处理器 高度灵活、高性价比的解决方案。 AT89C51具有如下特点:4k Bytes Flash存储器、128 bytes的RAM以及32个I/O口、2个16位定时/计 1个全双工串行通信口、片内时钟振荡器。,5个中断优先级2层中断嵌套

4、中断、数器 GND:接地。芯片,如图所示,各引脚功能如下:VCC:供电电压。AT89C51 门电流。口,每脚可吸收8TTL8位漏级开路双向I/OP0口:为一个 门电流。4TTL口,P1口缓冲器能接收输出P1口:是个内部提供上拉电阻的8位双向I/O 设计3-1 AT89C51 图 P2口:为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被 时,其管脚被内部上拉电阻拉高。写“1” P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为 的一些特殊功能口,如所示:AT89C51 (串行输出口) P3.0 RXD(串行输入口)

5、 P3.1 TXD 1) P3.3 /INT1(外部中断0)(外部中断 P3.2 /INT0 外部输入) P3.5 T1(记时器1(记时器 P3.4 T00外部输入) (外部数据存储器读选通) P3.7 /RD P3.6 /WR(外部数据存储器写选通) 口同时为闪烁编程和编程校验接收一些控制信号。 P3 脚两个机器周期的高电平时间。RST:复位输入。当振荡器复位器件时,要保持RSTALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。 /PSEN:外部程序存储器的选通信号。在由外部程序存储 有效。器取指期间,每个机器周

6、期两次/PSEN/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程 序存储器。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 :来自反向振荡器的输出。XTAL2 转换器方案2.1.2 A/D PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大 总线的最大速率决定。C转化速率由I2 、主要技术指标和特性1 。低待机电流 PCF8591的操作电压范围2.5V-6V 单独供电。 个硬件地址引脚寻址通过3I2C总线串行输入/输出。PCF8591通过 总线速率决定。的采样率

7、由I2CPCF8591 个模拟输入可编程为单端型或差分输入频道选择自动增量。4 VDD。PCF8591的模拟电压范围从Vss到 转换器;逐次逼近A/DPCF8591内置跟踪保持电路。8-bit 引脚图 PCF8591路模拟输出实现DAC增益通过1 时钟电路2.1.3 AT89S51的时钟电路如图所示,在单片机的XTAL1和XTAL2两个管脚接一个晶振及两个电容构成了时钟电路电路中电容C1和C2对振荡频率有微调作用,在设计时取30uF。晶振为11.0592MHz,故选择 即可。12MHz 复位电路图 2-3 时钟电路图 2-2 复位电路2.1.4的复位电路如图所示。当单片机一上电,立即复位;另外

8、,如果在运行中,外界干扰等因素使 AT89S51单片机的程序陷入死循环状态,就可以通过按键手动使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。电容C3和电阻R10实现上电自动复位。增加按键开关S1和电阻R9又可实 的触点。放电电流过大烧坏开关C3S1R9的作用是在S1按下的时候,防止电容现按键手动复位功能。 LED硬件设计2.1.5 显示电路LED数码管由8个发光二极管组成,其中7个按“8”型排列,另一个发光二极管为圆点形状,位于右 下角,常用于显示小数点。 共阳极LED电路连接如图2-4所示,8支发光二极管的阳极共同接到电源上,所以叫共阳极LED,在每个发光二极管的阳极

9、接的电阻将起到保护作用。在输入管脚接低电平时,对应的发光二极管将会发光。和共阴极LED一样,适当编码后,8支发光二极管组合起来就可以 显示数据了。 2-4共阳极接法原理图 动态显示来完成该显示电路的硬件设计。 显示电路设计 图2-5 图2.1.6总体设计电路图:见Protel 系统软件设计章 第3 程序设计总方案3.1.1 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构 所示。12成了整个系统软件的主程序,如图 开始 初始化 调用A/D转换子程序 调用显示子程序 数字式直流电压表主程序框图图3-1 系统子程序设计3.1.2 初始化程序 所谓初始化,是

10、对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化 子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等 转换子程序3.1.3 A/DA/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单 所示。3-2元,其转换流程图如图 开始 启动转换 A/D转换结束? 输出转换结果 数值转换 显示 转换流程图图3-2 A/D 显示子程序3.1.4 显LED显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得左右时,能够产生比较示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ

11、的显示时间为LED进行动态扫描一次,每一位10ms对LED好的显示效果,一般可以采用间隔 。1ms1011s溢出中断功能实现在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0 的延时。5ms定时,通过软件延时程序来实现 板的设计第四章电路原理图和PCB 实习总结章 5第 经过两周的单片机课程设计,我有了很多的体会和感想。通过本次对简易电压表的设计,我们对单片机 这门课程有了更进一步的了解。无论是在其硬件连接方面还是在软件编程方面,都取得了新的收获。本次课程设计采用了AT89C51单片机芯片,与以往我们我们所熟悉的C51芯片有许多不同之处,通过本次实验及查阅相关资料,我们对其之间

12、的区别有了一定的认识,在本课题设计报告的硬件介绍部分也对其作了详细的论述。S51在C51的基础上增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。另外,在对单片机编程方面,我们又掌握了一些新的编程思想,使得程序更为简练、易懂,而且更为严谨,程序执行的稳定性得到了提高。 设计中我们还用到了模/数转换芯片PCF8591,以前在学单片机这门课程时只是对其理论知识有了初步的了解。通过本次实验,我们对它的工作原理彻底理解了,对其启动设置、转换结束判断以及输出控制等都基本掌握。电路连接方面,我们对其与单片机的连接也有了更为直观的认识,通过实验的摸索以及必要的理论知识,我们准确的实现了它于单片机的互

13、连。设计过程中,我遇到过许多次失败的考验,比如,自己对单片机编程时遇到了很多阻碍,想要放弃,然而,就在要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。我非常感激实习老师对我的的指导和帮助,没有老师的指导,我只能晕头转向的瞎忙。 通过这次设计,这也对我们今后的工作敲响了警钟:要认真的看待每个需要处理的问题,不要认为事情过于简单,不能急于求成,但不要放弃。要保持头脑清醒。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需

14、要好好的深入研究和学习。最后感谢老师对我 的精心指导和帮助,感谢同学们对我的帮助。 参考文献 2006 .北京:北京大学出版社,.单片机原理及应用技术. 1. 魏立峰王宝兴 2003 .哈尔滨:哈尔滨工业大学出版社,单片机应用与设计.2. 张毅刚. MCS-51 2003 .北京:北京航空航天大学出版社 单片机的C语言应用程序设计3. 马忠梅 使用说明书4.PCF8591 程序: ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RE

15、TI *初始化程序中的各变量* CLEARMEMIO: CLR A MOV P2,A MOV R0,#70H MOV R2,#0DH LOOPMEM: 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 MAIN AJMP 值出错处理PC 。 NOP NOP NOP START LJMP * 序制 程控* 显 示

16、。DISPLAY: JB 00H,DISP11 路信号循环显示控制8 MOV R3,#08H 。 70H77H。显示数据初址 MOV R0,#70H 。显示通道路数初值 MOV 7BH,#00H 78H 79H、BCD码存入7AH、DISLOOP1: LCALL TUNBCD 。显示数据转为三位 4MS*255。每路显示时间控制 MOV R2,#0FFH 。调四位显示程序DISLOOP2: LCALL DISP 。 LCALL KEYWORK1 。 DJNZ R2,DISLOOP2 。显示下一路 INC R0 。通道显示数加一 INC 7BH DJNZ R3,DISLOOP1 RET 。单路显

17、示控制子程序DISP11: MOV A,7BH 。 SUBB A,#01H 。 MOV 7BH,A 。 ADD A,#70H 。 MOV R0,A 5.00v)最大、78H(BCD码存入7AH、79HDISLOOP11: LCALL TUNBCD 。显示数据转为三位 4MS*25。每路显示时间控制 MOV R2,#0FFH 。调四位显示程序DISLOOP22: LCALL DISP 。按键检测 LCALL KEYWORK2 DJNZ R2,DISLOOP22 。通道显示数加一 INC 7BH RET *BCD码程序* 显示数据转为三位 ;最大值5.00v)、79H、78H(显示数据转为三位BC

18、D码存入7AH 运算。255/51=5.00VTUNBCD: MOV A,R0 。 MOV B,#51 。 DIV AB 7AH MOV 7AH,A 。个位数放入 5结果加1,乘法溢出, MOV A,B 。余数大于19H,F0为 CLR F0 SUBB A,#1AH MOV F0,C 。 MOV A,#10 。 MUL AB 。 MOV B,#51 DIV AB 。 JB F0,LOOP2 ADD A,#5 79HLOOP2: MOV 79H,A 。小数后第一位放入 MOV A,B CLR F0 SUBB A,#1AH MOV F0,C 。 MOV A,#10 。 MUL AB 。 MOV B

19、,#51 DIV AB 。 JB F0,LOOP3 ADD A,#5 78H。小数后第二位放入LOOP3: MOV 78H,A RET *序 程 示* 显 子 ;共阳显示子程序,显示内容在78H-7BH 78H-7BH。共阳显示子程序,显示内容在DISP: MOV R1,#78H P3.0-P3.3输出,列扫描在。数据在 MOV R5,#0FEH P1 PLAY: 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 )。小数点显示(显示格式为XX.XX

20、 CLR P1.7 PLAY1: LCALL DL1MS INC R1 MOV A,P3 JNB ACC.3,ENDOUT RL A MOV R5,A MOV P3,#0FFH AJMP PLAY ENDOUT: MOV P3,#0FFH MOV P1,#0FFH RET 。断码表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH *延时程序* 延时子程序10MSDL10MS: MOV R6,#0D0H 。 DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET (513+513)ms=

21、1MSDL1MS: MOV R4,#0FFH 。 LOOP11: DJNZ R4,LOOP11 MOV R4,#0FFH LOOP22: DJNZ R4,LOOP22 RET *)子程序* 电压测量(A/D 单元中;70H-77H一次测量数据8个,依次放入 。模数转换子程序TEST: CLR A MOV P2,A 。转换值存放首址 MOV R0,#70H 次控制。转换8 MOV R7,#08H 。启动测试 LCALL TESTART 转换结束信号A/DWAIT: JB P3.7,MOVD 。等 AJMP WAIT 。测试启动TESTART: SETB P2.3 NOP NOP CLR P2.3 SETB P2.4

温馨提示

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

评论

0/150

提交评论