基于PCF8591数字电压表设计.docx
- 文档编号:10303059
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:15
- 大小:183.26KB
基于PCF8591数字电压表设计.docx
《基于PCF8591数字电压表设计.docx》由会员分享,可在线阅读,更多相关《基于PCF8591数字电压表设计.docx(15页珍藏版)》请在冰豆网上搜索。
基于PCF8591数字电压表设计
成绩
课程设计报告
题目:
学生姓名:
学生学号:
别:
系业:
专指导教师:
电气信息工程学院制月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转换采用PCF8591数码管。
位一体的LED3.经单片机将数字量转换成对应电压值,电压显示采用4课程设计的方案1.4
硬件电路设计由6个部分组成。
A/D转换电路,AT89C51单片机系统,LCD显示系统、时钟电路、所示。
复位电路以及测量电压输入电路。
硬件电路设计框图如图1
时钟电路复位电路
AT89C51P1P2
P2
P0结束
A/D转换电路结束
显示系统
模拟量输入
数字电压表系统硬件设计框图1图
系统方案硬件设计章第2
系统方案的提出2.1
转换器提供以下设计方案。
路模拟量输入设计的需要,为单片机和A/D根据4单片机方案2.1.1
)。
PEROM可擦写存储器(4k字节Flash位单片机,片内含AT89C51是一个低功耗,高性能CMOS880C51指令系统及公司的高密度、非易失性存储技术制造,兼容标准MCS-51器件采用AT89C51ATMEL位8的片内AT89C51Flash允许程序存储器通过传统编程器反复编程。
由于芯片内集成了通用引脚结构,可为许多嵌入式控制应用系统提供ATMELAT89C51Flash中央处理器和存储单元,功能强大的微处理器高度灵活、高性价比的解决方案。
.
AT89C51具有如下特点:
4kBytesFlash存储器、128bytes的RAM以及32个I/O口、2个16位定时/计1个全双工串行通信口、片内时钟振荡器。
5个中断优先级2层中断嵌套中断、数器GND:
接地。
芯片,如图所示,各引脚功能如下:
VCC:
供电电压。
AT89C51门电流。
口,每脚可吸收8TTL8位漏级开路双向I/OP0口:
为一个门电流。
4TTL口,P1口缓冲器能接收输出P1口:
是个内部提供上拉电阻的8位双向I/O
设计3-1AT89C51图P2口:
为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被时,其管脚被内部上拉电阻拉高。
写“1”P3口:
管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口也可作为的一些特殊功能口,如所示:
AT89C51(串行输出口)P3.0RXD(串行输入口)P3.1TXD1)P3.3/INT1(外部中断0)(外部中断P3.2/INT0
外部输入)P3.5T1(记时器1(记时器P3.4T00外部输入)(外部数据存储器读选通)P3.7/RDP3.6/WR(外部数据存储器写选通)口同时为闪烁编程和编程校验接收一些控制信号。
P3脚两个机器周期的高电平时间。
RST:
复位输入。
当振荡器复位器件时,要保持RST.
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储有效。
器取指期间,每个机器周期两次/PSEN/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
:
来自反向振荡器的输出。
XTAL2转换器方案2.1.2A/DPCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。
PCF8591的最大总线的最大速率决定。
C转化速率由I2
、主要技术指标和特性1。
低待机电流PCF8591的操作电压范围2.5V-6V单独供电。
个硬件地址引脚寻址通过3I2C总线串行输入/输出。
PCF8591通过总线速率决定。
的采样率由I2CPCF8591个模拟输入可编程为单端型或差分输入频道选择自动增量。
4VDD。
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的复位电路如图所示。
当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使AT89S51.
单片机的程序陷入死循环状态,就可以通过按键手动使其复位。
复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。
电容C3和电阻R10实现上电自动复位。
增加按键开关S1和电阻R9又可实的触点。
放电电流过大烧坏开关C3S1R9的作用是在S1按下的时候,防止电容现按键手动复位功能。
LED硬件设计2.1.5显示电路LED数码管由8个发光二极管组成,其中7个按“8”型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。
共阳极LED电路连接如图2-4所示,8支发光二极管的阳极共同接到电源上,所以叫共阳极LED,在每个发光二极管的阳极接的电阻将起到保护作用。
在输入管脚接低电平时,对应的发光二极管将会发光。
和共阴极LED一样,适当编码后,8支发光二极管组合起来就可以
显示数据了。
2-4共阳极接法原理图
动态显示来完成该显示电路的硬件设计。
显示电路设计图2-5图2.1.6总体设计电路图:
见Protel
系统软件设计章第3程序设计总方案3.1.1根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构所示。
12成了整个系统软件的主程序,如图
开始
初始化
调用A/D转换子程序
调用显示子程序
数字式直流电压表主程序框图图3-1
系统子程序设计3.1.2初始化程序
所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等转换子程序3.1.3A/DA/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单所示。
3-2元,其转换流程图如图
开始
启动转换A/D转换结束?
输出转换结果数值转换显示
转换流程图图3-2A/D显示子程序3.1.4
显LED显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得左右时,能够产生比较示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ的显示时间为LED进行动态扫描一次,每一位10ms对LED好的显示效果,一般可以采用间隔。
1ms[10]11μs溢出中断功能实现在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0的延时。
5ms定时,通过软件延时程序来实现
板的设计第四章电路原理图和PCB
实习总结章5第经过两周的单片机课程设计,我有了很多的体会和感想。
通过本次对简易电压表的设计,我们对单片机这门课程有了更进一步的了解。
无论是在其硬件连接方面还是在软件编程方面,都取得了新的收获。
.
本次课程设计采用了AT89C51单片机芯片,与以往我们我们所熟悉的C51芯片有许多不同之处,通过本次实验及查阅相关资料,我们对其之间的区别有了一定的认识,在本课题设计报告的硬件介绍部分也对其作了详细的论述。
S51在C51的基础上增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。
另外,在对单片机编程方面,我们又掌握了一些新的编程思想,使得程序更为简练、易懂,而且更为严谨,程序执行的稳定性得到了提高。
设计中我们还用到了模/数转换芯片PCF8591,以前在学单片机这门课程时只是对其理论知识有了初步的了解。
通过本次实验,我们对它的工作原理彻底理解了,对其启动设置、转换结束判断以及输出控制等都基本掌握。
电路连接方面,我们对其与单片机的连接也有了更为直观的认识,通过实验的摸索以及必要的理论知识,我们准确的实现了它于单片机的互连。
设计过程中,我遇到过许多次失败的考验,比如,自己对单片机编程时遇到了很多阻碍,想要放弃,然而,就在要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。
于是,我坚持了下来。
我非常感激实习老师对我的的指导和帮助,没有老师的指导,我只能晕头转向的瞎忙。
通过这次设计,这也对我们今后的工作敲响了警钟:
要认真的看待每个需要处理的问题,不要认为事情过于简单,不能急于求成,但不要放弃。
要保持头脑清醒。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。
尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习。
最后感谢老师对我的精心指导和帮助,感谢同学们对我的帮助。
参考文献2006.北京:
北京大学出版社,.单片机原理及应用技术.1.魏立峰王宝兴2003.哈尔滨:
哈尔滨工业大学出版社,单片机应用与设计.2.张毅刚.MCS-512003.北京:
北京航空航天大学出版社单片机的C语言应用程序设计3.马忠梅使用说明书4.PCF8591
程序:
ORG0000H
LJMPSTARTORG0003H
RETIORG000BH
RETI
ORG0013HRETIORG001BHRETIORG0023H
RETI
ORG002BH
RETI
*初始化程序中的各变量*
CLEARMEMIO:
CLRAMOVP2,AMOVR0,#70HMOVR2,#0DHLOOPMEM:
MOV@R0,AINCR0DJNZR2,LOOPMEMMOV20H,#00HMOVA,#0FFHMOVP0,AMOVP1,AMOVP3,ARET*序主程*
。
初始化START:
LCALLCLEARMEMIO
。
测量一次MAIN:
LCALLTEST
。
显示数据一次LCALLDISPLAY
MAINAJMP
值出错处理PC。
NOP
NOP
NOP
STARTLJMP
*序制程控*显示
。
DISPLAY:
JB00H,DISP11
路信号循环显示控制8MOVR3,#08H。
70H~77H。
显示数据初址MOVR0,#70H
。
显示通道路数初值MOV7BH,#00H
78H79H、BCD码存入7AH、DISLOOP1:
LCALLTUNBCD。
显示数据转为三位4MS*255。
每路显示时间控制MOVR2,#0FFH
。
调四位显示程序DISLOOP2:
LCALLDISP
。
LCALLKEYWORK1
。
DJNZR2,DISLOOP2
。
显示下一路INCR0
。
通道显示数加一INC7BH
DJNZR3,DISLOOP1RET.
。
单路显示控制子程序DISP11:
MOVA,7BH
。
SUBBA,#01H
。
MOV7BH,A
。
ADDA,#70H
。
MOVR0,A
5.00v)最大、78H(BCD码存入7AH、79HDISLOOP11:
LCALLTUNBCD。
显示数据转为三位4MS*25。
每路显示时间控制MOVR2,#0FFH
。
调四位显示程序DISLOOP22:
LCALLDISP
。
按键检测LCALLKEYWORK2
DJNZR2,DISLOOP22。
通道显示数加一INC7BH
RET*BCD码程序*显示数据转为三位;最大值5.00v)、79H、78H(显示数据转为三位BCD码存入7AH运算。
255/51=5.00VTUNBCD:
MOVA,@R0
。
MOVB,#51
。
DIVAB
7AHMOV7AH,A。
个位数放入5结果加1,乘法溢出,MOVA,B。
余数大于19H,F0为CLRF0SUBBA,#1AHMOVF0,C。
MOVA,#10
。
MULAB
。
MOVB,#51
DIVAB。
JBF0,LOOP2
ADDA,#579HLOOP2:
MOV79H,A。
小数后第一位放入MOVA,BCLRF0SUBBA,#1AHMOVF0,C。
MOVA,#10
。
MULAB
。
MOVB,#51
DIVAB。
JBF0,LOOP3
ADDA,#578H。
小数后第二位放入LOOP3:
MOV78H,A
RET*序程示*显子;共阳显示子程序,显示内容在78H-7BH78H-7BH。
共阳显示子程序,显示内容在DISP:
MOVR1,#78H
P3.0-P3.3输出,列扫描在。
数据在MOVR5,#0FEHP1PLAY:
MOVP1,#0FFH.
MOVA,R5ANLP3,AMOVA,@R1MOVDPTR,#TABMOVCA,@A+DPTRMOVP1,A。
小数点处理JBP3.2,PLAY1
)。
小数点显示(显示格式为XX.XXCLRP1.7
PLAY1:
LCALLDL1MSINCR1MOVA,P3JNBACC.3,ENDOUTRLAMOVR5,AMOVP3,#0FFHAJMPPLAYENDOUT:
MOVP3,#0FFHMOVP1,#0FFHRET。
断码表TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
*延时程序*
延时子程序10MSDL10MS:
MOVR6,#0D0H。
DL1:
MOVR7,#19HDL2:
DJNZR7,DL2DJNZR6,DL1RET(513+513)ms=1MSDL1MS:
MOVR4,#0FFH。
LOOP11:
DJNZR4,LOOP11MOVR4,#0FFHLOOP22:
DJNZR4,LOOP22RET*)子程序*电压测量(A/D单元中;70H-77H一次测量数据8个,依次放入。
模数转换子程序TEST:
CLRA
MOVP2,A。
转换值存放首址MOVR0,#70H
次控制。
转换8MOVR7,#08H
。
启动测试LCALLTESTART
转换结束信号A/DWAIT:
JBP3.7,MOVD。
等AJMPWAIT。
测试启动TESTART:
SETBP2.3
NOPNOPCLRP2.3SETBP2.4NOP.
NOPCLRP2.4NOPNOPNOPNOPRET转换数据A/DMOVD:
SETBP2.5。
取MOVA,P0MOV@R0,ACLRP2.5INCR01。
通道地址加MOVA,P2
INCAMOVP2,A转换结束A/D8路CJNEA,#08H,TESTEND。
等TESTEND:
JCTESTCON。
结束恢复端口CLRA
MOVP2,AMOVA,#0FFHMOVP0,AMOVP1,AMOVP3,ARETTESTCON:
LCALLTESTARTLJMPWAIT*按键检测子程序*
KEYWORK1:
JNBP3.5,KEY1KEYOUT:
RET。
延时消抖KEY1:
LCALLDISP
JBP3.5,KEYOUTAIT12WAIT11:
JNBP3.5,WCPL00HMOVR2,#01HMOVR3,#01HRET。
键释放等待时显示用WAIT12:
LCALLDISP
AJMPWAIT11KEYWORK2:
JNBP3.5,KEY1JNBP3.6,KEY2RET。
延时消抖用KEY2:
LCALLDISP
JBP3.6,KEYOUTAIT21WAIT22:
JNBP3.6,WINC7BHMOVA,7BH.
CJNEA,#08H,KEYOUT11KEYOUT11:
JCKEYOUT1MOV7BH,#00HKEYOUT1:
RET。
键释放等待时显示用WAIT21:
LCALLDISP
AJMPWAIT22END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PCF8591 数字 电压表 设计