基于at89s52单片机的数字电压表设计毕业论文(数字电压表设计论文)

1.数字电压表设计论文

基于PC的数字电压表设计 本文运用AT89S51和AD678进行A/D转换,根据数据采集的工作原理,设计实现数字电压表,最后完成单片机与PC的数据通信,传送所测量的电压值 数字电压表的设计和开发,已经有多种类型和款式。

传统的数字电压表各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步分析处理,传统数字电压表是无法完成的。然而基于PC通信的数字电压表,既可以完成测量数据的传递,又可借助PC,做测量数据的处理。

所以这种类型的数字电压表无论在功能和实际应用上,都具有传统数字电压表无法比拟的特点,这使得它的开发和应用具有良好的前景。 新型数字电压表的整机设计 该新型数字电压表测量电压类型是直流,测量范围是-5~+5V。

整机电路包括:数据采集电路的单片机最小化设计、单片机与PC接口电路、单片机时钟电路、复位电路等。下位机采用AT89S51芯片,A/D转换采用AD678芯片。

通过RS232串行口与PC进行通信,传送所测量的直流电压数据。整机系统电路如图1所示。

数据采集电路的原理 在单片机数据采集电路的设计中,做到了电路设计的最小化,即没用任何附加逻辑器件做接口电路,实现了单片机对AD678转换芯片的操作。 AD678是一种高档的、多功能的12位ADC,由于其内部自带有采样保持器、高精度参考电源、内部时钟和三态缓冲数据输出等部件,所以只需要很少的外部元件就可以构成完整的数据采集系统,而且一次A/D转换仅需要5ms。

在电路应用中,AD678采用同步工作方式,12位数字量输出采用8位操作模式,即12位转换数字量采用两次读取的方式,先读取其高8位,再读取其低4位。根据时序关系,在芯片选择/CS=0时,转换端/SC由高到低变化一次,即可启动A/D转换一次。

再查询转换结束端/EOC,看转换是否已经结束,若结束则使输出使能/OE变低,输出有效。12位数字量的读取则要控制高字节有效端/HBE,先读取高字节,再读取低字节。

整个A/D操作大致如此,在实际开发应用中调整。 由于电路中采用AD678的双极性输入方式,输入电压范围是-5~+5V,根据公式Vx10(V)/4096*Dx,即可计算出所测电压Vx值的大小。

式中Dx为被测直流电压转换后的12位数字量值。 RS232接口电路的设计 AT89S51与PC的接口电路采用芯片Max232。

Max232是德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2个驱动器、2个接收器和1个电压发生器电路提供TIA/EIA-232-F电平。

Max232芯片起电平转换的功能,使单片机的TTL电平与PC的RS232电平达到匹配。 串口通信的RS232接口采用9针串口DB9,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。

在实验中,用定时器T1作波特率发生器,其计数初值X按以下公式计算: 串行通信波特率设置为1200b/s,而SMOD=1,fosc=6MHz,计算得到计数初值X=0f3H。在编程中将其装入TL1和THl中即可。

为了便于观察,当每次测量电压采集数据时,单片机有端口输出时,用发光二极管LED指示。 软件编程 软件程序主要包括:下位机数据采集程序、上位机可视化界面程序、单片机与PC串口通信程序。

单片机采用C51语言编程,上位机的操作显示界面采用VC++6.0进行可视化编程。在串口通信调试过程中,借助“串口调试助手”工具,有效利用这个工具为整个系统提高效率。

单片机编程 下位机单片机的数据采集通信主程序流程如图2所示、中断子程序如图3所示、采集子程序如图4所示。单片机的编程仿真调试借助WAVE2000仿真器,本系统有集成的ISP仿真调试环境。

在采集程序中,单片机的编程操作要完全符合AD678的时序规范要求,在实际开发中,要不断加以调试。最后将下位机调试成功而生成的.bin文件固化到AT89S51的Flash单元中。

人机界面编程 打开VC++6.0,建立一个基于对话框的MFC应用程序,串口通信采用MSComm控件来实现。其他操作此处不赘述,编程实现一个良好的人机界面。

数字直流电压表的操作界面如图5所示。运行VC++6.0编程实现的Windows程序,整个样机功能得以实现。

功能结果 根据上面所述工作原理及实施方案,在实践中很好地实现了整个样机的功能,各项指标达到了预先的设计要求。电路工作稳定,每次测量均伴有LED发光指示,可视化界面显示也正常。

AD678转换精度是12位,它的分辨率为1/4096。这为整机系统的高精度提供了保障。

为了提高测量精度,运用了AD678自带的校准电路,这样使其A/D转换精度更高。在实际测量中,整机测量精度达到了0.8%。

2.请问基于单片机的数字电压表毕业设计你有吗

这个网上很多的 这是我之前做的一个 代码程序如下 传不上图片,可以交流下的 #include #define uint unsigned int#define uchar unsigned charsbit clock=P3^7;sbit ale=P3^3;sbit a=P3^4;sbit b=P3^5;sbit c=P3^6;sbit start=P3^0;sbit oe=P3^1;sbit eoc=P3^2;sbit dopt=P1^7;uchar code disp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar shi,ge,yi,er,voit;uint temp;void delay(uint x);uchar tt;void display();void main(){ TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; EX0=1; ET0=1; TR0=1; a=0; b=0; c=0; ale=0; start=0; while(1) { ale=1; start=1; delay(2); start=0; ale=0; while(eoc==0); oe=1; // oe=0; voit=P0; oe=0; display(); }}void extre0() interrupt 1{ TH0=(65536-100)/256; TL0=(65536-100)%256; clock=~clock;}void display() { temp=voit*1.0/255*500; shi=temp%10; ge=temp/10%10; yi=temp/100%10; er=temp/1000; //d1=1;w1=0; P1=disp[er]; //d1=0;w1=1; P2=0xfe; delay(2); P1=0x00; //d1=1;w1=0; P1=disp[yi]; //d1=0;w1=1; P2=0xfd; dopt=1; delay(2); P1=0x00; //d1=1;w1=0; P1=disp[ge]; //d1=0;w1=1; P2=0xfb; delay(2); P1=0x00; //d1=1;w1=0; P1=disp[shi]; //d1=0;w1=1; P2=0xf7; delay(2); P1=0x00; }void delay(uint x){ uchar i; for(;x>0;x--) for(i=0;i<120;i++);}。

3.基于单片机的数字电压表设计 (请不要完成抄袭)

我给你看看我以前做过的数字电压表,汇编的 COM EQU 50H ;指令寄存器 DAT EQU 51H ;数据寄存器 RS EQU P2.1 ;LCD寄存器选择信号 RW EQU P2.2 ;LCD读/写选择信号 E EQU P2.3 ;LCD使能信号 ORG 0000H LJMP MAIN ;主程序入口地址 ORG 000BH LJMP BT0 ;T0中断入口 ORG 0030H ;主程序,初始化 MAIN: MOV SP,#60H LCALL INT MOV 30H,#30H ;电压整数位 MOV 31H,#02EH ;小数点位 MOV 32H,#30H ;小数个位 MOV 33H,#30H ;小数十位 MOV 34H,#30H ;小数百位 MOV 35H,#56H ;字符"V" MOV R7,#30H LCALL STR0 ;显示字符串0 LCALL DELAY LCALL STR1 ;显示字符串1 LCALL DELAY LCALL N2 ;显示Voltage=0.000V ;***********定时器初始化程序*********** MOV TMOD,#00H ;定时器T0设为方式0 MOV TH0,#00H ;装入定时常数定时100us MOV TL0,#00H SETB TR0 ;启动T0 MOV 24H,#08H;装入T0中断次数 MOV IE,#82H ;开中断 LP: MOV R7,#30H ;显示缓冲区首地址 LCALL DISPLY SJMP LP ;循环显示 LED1:CLR P3.0 RET DISPLY: ;LCD显示子程序 MOV COM,#0CAH LCALL PR1 MOV DAT,30H LCALL PR2 MOV DAT,31H LCALL PR2 MOV DAT,32H LCALL PR2 MOV DAT,33H LCALL PR2 MOV DAT,34H LCALL PR2 MOV DAT,35H LCALL PR2 RET STR0: MOV COM,#01H LCALL PR1 MOV COM,#06H LCALL PR1 MOV COM,#090H ;设置DDRAM地址 LCALL PR1 ;调写指令代码子程序 MOV DPTR,#TAB4 MOV R2,#16 MOV R3,#00H WRIN0: MOV A,R3 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN0 MOV COM,#0D0H LCALL PR1 MOV DPTR,#TAB5 MOV R2,#16 MOV R3,#00H WRIN1: MOV A,R3 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN1 MOV R3,#10H ZUOYI: MOV COM,#18H LCALL PRX DJNZ R3,ZUOYI LCALL DELAY00 LCALL DELAY00 LCALL DELAY00 LCALL DELAY00 RET RET STR1: MOV COM,#01H ;LCD清0命令 LCALL PR1 ;调写指令代码子程序 MOV COM,#06H ;输入方式命令,光标右移 LCALL PR1 ;调写指令代码子程序 MOV COM,#40H LCALL PR1 MOV R5,#20H MOV DPTR,#ZI MOV R4,#0 LOOP1:MOV A,R4 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC R4 DJNZ R5,LOOP1 MOV COM,#80H LCALL PR1 MOV DPTR,#TAB2 MOV A,#00H MOVC A,@A+DPTR MOV DAT,A LCALL PR2 MOV A,#01H MOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 MOV A,#02H MOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 MOV A,#03H MOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 MOV R1,#00H MOV R0,#0dH MOV DPTR,#TAB3 LOOP2:MOV A,R1 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC R1 DJNZ R0,LOOP2 RET N2: MOV COM,#0C0H LCALL PR1 MOV DPTR,#TAB1 MOV R2,#10 MOV R3,#00H WRIN: MOV A,R3 MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN RET TAB1: DB "VOLTAGE = " TAB2: DB 00H DB 01H DB 02H DB 03H DB 04H DB 05H TAB3:DB "10701 tcw " ZI: DB 009H,00AH,00CH,01FH,00CH,00AH,00CH,009H DB 004H,004H,01FH,004H,00AH,00AH,011H,000H DB 004H,004H,01FH,01FH,01FH,004H,007H,000H DB 004H,00EH,010H,00EH,000H,00EH,003H,000H TAB4:DB " welcome ! " TAB5:DB "DESIGN BY tcw" TAB6:DB "123456" ;******************************************************************** ;定时器T0中断服务子程序,读取ADC0809第0通道的A/D转换结果并化为显示值* ;******************************************************************** BT0: PUSH ACC PUSH PSW MOV PSW,#08H CLR TR0 MOV TH0,#00H ;重新装入初值 MOV TL0,#00H DEC 24H MOV A,24H JNZ RTN1 MOV 24H,#08H LCALL ADC RTN1: SETB TR0 POP PSW POP ACC RETI ADC: MOV DPTR,#0F6FFH MOV A,#0 ;选择通道0 MOVX @DPTR,A ;启动AD转换 MOV A,#40H DJNZ ACC,$ MOVX A,@DPTR MOV 22H,A MOV 21H,#0CCH CJNE A,21H,BJ0 BJ0:JNC LED SJMP LL0 LL0:SETB P3.0 SJMP LL LED:LCALL LED1 LL: MOV A,22H MOV B,#05H ;A/D转换结果化为显示值 MUL AB ;(AD*5)/256 MOV 30H,B ;AD*5的高字节为整数部分 MOV B,#0AH MUL AB ;AD*5的低字节为/256的结果,为小数部分 MOV 32H,B ;二进制小数换为10进制数 MOV B,#0AH MUL AB MOV 33H,B MOV B,#0AH MUL AB MOV 34H,B MOV A,30H MOV DPTR,#TAB MOVC A,@A+DPTR MOV 30H,A MOV A,32H MOVC A,@A+DPTR MOV 32H,A MOV A,33H MOVC A,@A+DPTR MOV 33H,A MOV A,34H MOVC A,@A+DPTR MOV 34H,A RET TAB: DB "0123456789" ;***************************************** ;****LCD间接控制方式下的初始化子程序****** ;***********************************。

4.基于AD574A和单片机的高精度数字电压表的论文

我们利用AD574与ATMEL公司的低价高性能单片机AT89C2051组成一个高精度的数字电压表,电原理图如图1,AD574是12位逐次比较型A/D转换器,共有12根数据线,AT89C2051的P1与AD574的高8位数据线直接相接,AD574的低4位数据线与单片机的高半4位P1.4——P1.7直接相接,数据的读取是依靠单片机的控制线进行分时选通进行。P3.5接AD574的字节短周期控制线(A0),P3.4接读转换数据控制脚(

),P3.7直接与工作状态指示端(STS)相连,这样的结构决定只能是8位输出形式,故

数据模式选择端直接接地即可。AT89C2051只有15根I/O口线,上述用了11根,只余下4根口线,我们将输出的数据通过单片机的串行口输出,外接一片74LS164(串入并出)译码器进行扩展,同时显示的数据为4位,剩下的2根口线仍不能满足要求,还需要一片74LS138三——八译码器对显示LED进行地址选通。

这里我们采用10V量程的输入模式,故AD574的Pin13为被测电压的输入端,因为只使用了一片AD574转换芯片,所以CS端直接接地即可。转换器使用±12V电源电压供电,工作电压为+5V。

74LS164为串入并出译码器,AT89C2051通过串行口输出的BCD串行码经74LS164译码输出为七段BCD码,直接与LED的a——g相连,同时四位LED的数据线都一一对应连接在一起。LED数码管选用共阳型,74LS138输出的地址码经一个三极管2SA1015(PNP)接LED的公共端,四位LED的显示是通过地址线进行分时选通的,这就是我们常用的动态扫描显示方式。

值得一提的是,动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取10ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改。

我百度的- -~

基于at89s52单片机的数字电压表设计毕业论文

转载请注明出处众文网 » 基于at89s52单片机的数字电压表设计毕业论文(数字电压表设计论文)

资讯

论文没过会有毕业证吗(毕业论文没通过能拿到毕业证吗)

阅读(77)

本文主要为您介绍论文没过会有毕业证吗,内容包括毕业论文通不过有毕业证吗请明白人回答,论文不过能拿毕业证吗,毕业论文没过能拿到毕业证吗。题主,你好。很高兴回答你的问题。首先问一下你是本科还是大专,因为有些大专院校也是要求撰写毕业论

资讯

大学生毕业论文题目心理学(心理学论文什么题目的最好写)

阅读(79)

本文主要为您介绍大学生毕业论文题目心理学,内容包括心理学论文什么题目的最好写,心理学毕业论文选题,高分求心理学论文题目。心理学是一门研究人类的心理现象、精神功能和行为的科学,既是一门理论学科,也是一门应用学科.本文就以心理学研究

资讯

毕业论文基于at89c52单片机led点阵屏的俄罗斯方块游戏设计(我需要做一个基于FPGA的俄罗斯方块设计,需要FPGA的程序,用的)

阅读(131)

本文主要为您介绍毕业论文基于at89c52单片机led点阵屏的俄罗斯方块游戏设计,内容包括用单片机做俄罗斯方块,用单片机做俄罗斯方块,俄罗斯方块毕业论文的摘要部分怎么写。我有用VGA显示的,你要不要?要的话给邮箱 ENTITY RUSSIA ISPORT(CLK :IN

资讯

有附录的毕业论文(毕业论文的附录怎么写)

阅读(97)

本文主要为您介绍有附录的毕业论文,内容包括毕业论文的附录怎么写,毕业论文附录怎么写,格式是什么,毕业论文的附录和清单是什么。附录不是论文必备的项目,按论文内容的具体情况确定附录中包含的信息是对写作主体的补充而不是绝对必要的。附

资讯

毕业论文有4辩(六年级第四篇作文辩论文600字)

阅读(88)

本文主要为您介绍毕业论文有4辩,内容包括谁能帮我做一个辩论文我是4辩(最后一个)就是总结13辩的内容题,大四毕业生答辩大概在什么时候呀大概在四月么,本科毕业论文有几次答辩。上课了,今天终于盼来了我们期盼已久的辩论会,正反双方,分成南北两行

资讯

现代简约风格毕业论文研究内容(毕业设计论文现代简约风格)

阅读(82)

本文主要为您介绍现代简约风格毕业论文研究内容,内容包括毕业设计(论文现代简约风格),写一篇关于《浅谈室内设计现代简约风格》的论文,写一篇关于《浅谈室内设计现代简约风格》的论文。现代简约装修设计风格概述 简约不等于简单,它是经过深思

资讯

高校毕业论文范围(大学生毕业设计分为哪些部分)

阅读(88)

本文主要为您介绍高校毕业论文范围,内容包括大学生毕业设计分为哪些部分,大学毕业论文的大纲格式是怎样的,本科毕业论文大纲怎么写注意,是大纲。5.毕业设计说明书与毕业论文的框架和要求 (1)内容 一篇完整的毕业设计(论文)通常由题名(标题)。摘要

资讯

论文没过会有毕业证吗(毕业论文没通过能拿到毕业证吗)

阅读(77)

本文主要为您介绍论文没过会有毕业证吗,内容包括毕业论文通不过有毕业证吗请明白人回答,论文不过能拿毕业证吗,毕业论文没过能拿到毕业证吗。题主,你好。很高兴回答你的问题。首先问一下你是本科还是大专,因为有些大专院校也是要求撰写毕业论

资讯

大学生毕业论文题目心理学(心理学论文什么题目的最好写)

阅读(79)

本文主要为您介绍大学生毕业论文题目心理学,内容包括心理学论文什么题目的最好写,心理学毕业论文选题,高分求心理学论文题目。心理学是一门研究人类的心理现象、精神功能和行为的科学,既是一门理论学科,也是一门应用学科.本文就以心理学研究