【毕业设计】基于ADC0809液晶显示的数字电压表设计_第1页
【毕业设计】基于ADC0809液晶显示的数字电压表设计_第2页
【毕业设计】基于ADC0809液晶显示的数字电压表设计_第3页
【毕业设计】基于ADC0809液晶显示的数字电压表设计_第4页
【毕业设计】基于ADC0809液晶显示的数字电压表设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、基于adc0809液晶显示的数字电压表设计目 录摘 要i前言ii1主要元器件的介绍和本系统的选择11.1常用单片机的特点比较及本设计单片机的选择11.5 lcd1602使用说明41.6 常用的a/d芯片简介71.7 adc0809引脚结构功能说明72 总体设计及硬件电路模块功能简介82.1 技术要求:82.2 设计方案:82.3 系统硬件电路的设计92.4 单片机系统92.5 数模转换系统92.6 时钟电路92.7 复位电路92.8 显示电路设计103电压表系统电路的制做103.1 绘制电路板103.2 铜板的转印、腐蚀、钻孔、焊接103.3 焊接好后的电压表系统113.4 动手制作心得124

2、 系统的调试134.1 硬件调试134.2 软件件调试134.3 软硬联调135 数据结果分析145.1 系统调试和校准145.2 测试数据14总 结15致 谢16参考文献17附件一(系统电路原理图)18附件二(电压表系统程序)1923基于adc0809液晶显示的数字电压表设计谭小品摘 要单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(的微处理器(cpu)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构

3、成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。本毕业设计的课题是“数字电压表的设计”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。本课题主要解决a/d转换、数据处理及显示控制等三个模块。控制系统采用at单片机,a/d转换采用adc0809。关键词:at89s52 adc0809 lcd1602 数字电压表前言数字电压表出现在50年代初,60年代末发起来的电压测量仪表,简称dvm,它采用的是数字化测量技术,把连续的模

4、拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。所以,数字化测理仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦锁和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。如今,数字电压表已绝大部分已取代了传统的模拟指针式电压表。因为传统的模拟指针式电

5、压表功能单一,精度低,读数的时候也非常不方便,很容易出错。而采用单片机的数字电压表由于测量精度高,速度快,读数时也非常的方便,抗干扰能力强,可扩展性强等优点已被广泛的应用于电子及电工的测量,工业自动化仪表,自动测试系统等智能化测量领域。显示出强大的生命力。数字电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采样速度慢,重量达几十公斤,体积大。继之出现了斜波式电压表,它的速度方面稍有提高,但是准确度低,稳定性差,再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高,但它有一缺点是抗干扰能力差,很容易受到外界各种因素的影响。随后,在斜波式

6、的基础上双引伸出阶梯波式,它的唯一的进步是成本降低了,可是准确宽,速以及抗干扰能力都未能提高。而现在,数字电压表的发展已经是非常的成熟,就原理来讲,它从原来的一,二种已发展到多种,在功能上讲,则从测单一参数发展到能测多种参数;从制作元件来看,发展到了集成电路,准确度已经有了很大的提高,精度高达1nv;读数每秒几万次,而相对以前,它的价格也有了降低了很多。目前实现电压数字化测量的方法仍然模-数(a/d)转换的方法。而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。在电量的测量中,电压、电流和频率是最基本的三个被测量。其中,电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量

7、高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。另外,由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受用户青睐,数字式电压表就是基于这种需求而发展起来的.1主要元器件的介绍和本系统的选择1.1常用单片机的特点比较及本设计单片机的选择单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机所需要的大部分部件:cpu,内存,总线系统等。而目前常用的单片机的8位有51系列单片机,avr单片机,pic单片机。应用最广的8位单片机还是intel的51系列单片机。51系列单片机的特点是:硬件结构合理,指令系统规范,加之生产历史悠久,世界有许多芯

8、片公司都买了51的芯片核心专利技术,并在其基础上扩充其性能,使得芯片的运行速度变得更快,性价比更高。avr单片机是atmel公司推出较新的单片机,它的显著特点是:高性能,低功能,高速度,指令单周期为主,但性格方面比51单片机要高。有专门的i/o方向寄存器。虽然有转强的驱动电压,但i/o口使用不比51单片机方便。pic单片机系列是美国微芯公司的产品,也是市面上增长最快的单片机之一,属精简指令集单片机,其特点是:高速度,高性能,但在性格方面比51单片机要高,也有专门的i/o方向寄存器,i/o口使用不比51单片机方便。综合以上各种单片机的基本性能及本设计的满足需要,我们将选择51系列单片机。1.2

9、at89s52单片机性能简介单片机采用mcs-51系列单片机。由atmel公司生产的at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。在单芯片上,拥有灵巧的8 位cpu 和在线系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片

10、内晶振及时钟电路。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(wdt)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。at89s52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上flash允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和flash存

11、储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。其芯片外观及引脚图如下: 1.3 单片机管脚说明vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为

12、低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:

13、p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89s52的一些特殊功能口,如下表所示:表2.1 at89s52 引脚功能表管脚备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同

14、时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale

15、禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。1.4 常用显示器件简介本次设计中有显示模块,而常用的显示器

16、件比较多,有数码管,led点阵,1602液晶,12864液晶等。1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜。1.5 lcd1602使用说明图2.4.1.1 1601引脚图1602液晶模块引脚说明引脚符号功能说明1gnd接地2vcc5v3vl驱动lcd,一般将此脚接地4rs寄存器选择 0:指令寄存器(write)busy

17、 flag,位址计数器(read) 1:数据寄存器(write,read)5r/wread/write选择 1:read 0:wtite6e读写使能(下降沿使能)7db0低4位三态、双向数据总线8db19db210db311db4高4位三态、双向数据总线另外db7也是一个busy flag12db513db614db7表2.4.1.1 lcd1601液晶模块的引脚寄存器选择,如表所示:表2.4.1.2 寄存器选择控制线操作rsr/w操作说明00写入指令寄存器(清除屏幕等)01读busy flag(db7),以及读取位址计数器(db0db6)值10写入数据寄存器(显示各字型等)11从数据寄存器读

18、取数据busy flag(db7):在此位未被清除为“0”时,lcd将无法再处理其他指令要求。(1)显示地址:内部地址计数器的计数地址:sb7=0(db0db6)第一行00、01、02 等,第二行40、41、42 等,可配合检测db7=1 (rs=0,r/w=1)读取目前显示字的地址,判断是否需要换行。表2.4.1.3 lcd1601 16×1 显示字的地址1234567891011121314151600010203040506074041424344454647(2)外部地址:db7=1,亦即80h内部计数地址,可以用此方式将字显示在某一位置。lcd各地址列举如下表:表2.4.1

19、.4 lcd1601 16×1 显示字的外部地址16×1 16字1行 1601123456789101112131415168081828384858687c0c1c2c3c4c5c6c7表2.4.1.5 lcd1601 的指令组指 令说 明设置码rs r/wd7d6d5d4d3d2d1d0清除显示幕000000000*光标回到原点000000001*进入模式设定00000001i/ds显示幕on/off0000001dcb移位000001s/cr/l*功能设定00001dlnf*字发生器地址设定0001agc设置显示地址0001add忙碌标志位bf001bf显示数据10写

20、入数据读取数据11读取数据i/d i/d=1 表示加1, i/d=0 表示减1s s=1 表示显示幕on s=0表示offd d=1 表示显示屏幕on d=0表示显示屏幕offc c=1 表示光标on c=0表示光标offb b=1 表示闪烁on b=0表示显示闪烁offs/c s/c=1表示显示屏幕移位 s/c=0光标移位r/l r/l=1表示右移 r/l=0表示左移dl dl=1表示8位 dl=0表示4位f f=1表示5×10点矩阵 f=0表示5×7点矩阵n n=1表示2行显示行 n=0表示1行显示行bf bf=1:内部正在动作 bf=0:可接收指令或数据码1.6 常用

21、的a/d芯片简介常用的a/d芯片有ad0809,ad0832,tlc2543c等几种。下面简单介绍一下这三种芯片。ad0809是8位逐次逼近型a/d转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个a/d 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用a/d 转换器进行转换。些a/d转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。1.7 adc0809引脚结构功能说明15、2628,in0in7:8路模拟量输入端。1415、8、1721,d0d7:8位数字量输出端。2325,adda、addb、ad

22、dc:3位地址输入线,用于选通8路模拟输入中的一路22,ale:地址锁存允许信号,输入,高电平有效,对应ale上跳沿,a、b、c地址状态送入地址锁存器中。6,start:ad转换启动信号,输入高电平有效,start上升沿时,复位adc0809;start下降沿时启动芯片,开始进行a/d转换;在a/d转换期间,start应保持 低电平。本信号有时简写为st.7,eoc:ad转换结束信号,输出,当ad转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9,oe:数据输出允许信号,输入,高电平有效。当ad转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量,用于控制三态输出锁存器向单

23、片机输出转换得到的数据。oe=0,输出数据线呈高阻;oe=1,输出转换得到的数据。10,clk:时钟脉冲输入端。要求时钟频率不高于640khz,eoc=0,正在进行转换;eoc=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。12、16,ref(+)、ref(-):基准电压。 11,vcc:电源,单一5v。 13,gnd:地。 2 总体设计及硬件电路模块功能简介2.1 技术要求:基本功能:电压测量范围05v;能用数码管显示电压值;采集电压的大小(保留小数点后3位);整个电压采集显示过程通过两个按键控制启动和停止;系统具有复位功能。2.2 设计方案:根据上述,我们

24、选择单片机与a/d转换芯片结合的方法实现本设计。使用的基本元器件是:at89c52单片机,ad0809模数转换芯片,lcd显示器,滑动变阻器,按键,电容,电阻,晶振,标准电源等等。a/d转换模块1602显示模块单片机系统模块输入电路模块按键模块设计的基本框图2.3 系统硬件电路的设计数字电压测量电路由a/d转换、数据处理及显示控制等组成。a/d转换由集成电路0809完成。0809具有8路拟输入端口,地址线(23- 25脚)可决定对哪一路模拟输入作a/d换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始a/d转换。7脚为a/d转

25、换结束标志,当a/d转换结束时,7脚输出高电平。9脚为a/d转换数据输出允许控制,当oe脚为高电平时,a/d转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1mhz时钟。单片机的p1.5p1.7、p3端口作1602液晶显示控制。p2端口作a/d转换数据读入用,p0端口用作0809的a/d转换控制。(具体电路参照附件1)2.4 单片机系统单片机最小系统包括晶振电路,复位电路,电源。此模块中,单片机的晶振是12mhz,c1和c2的电容是22uf,c3可选10uf。r1电阻为1k。2.5 数模转换系统此设计中选择的是a/d转换芯片的通道0

26、,a/d芯片的数据输入口连接单片机的p0.5口,数据输出口连接单片机的p0.6口,芯片使能端连接单片机的p0.3口,脉冲端连接单片机的p0.7口。模块连接如下图所示。2.6 时钟电路就单片机内部每个部件要想协调一致地工作,必须在统一口令时钟信号的控制下工作。单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。图6.3是内部时钟方式:单片机内部有一个构成振荡器的增益反相放大器,引脚xtal1和xtal2分别是此放大器的输入端和输入端,这个放大器与作为反馈元件的片外晶振一起构成自激振荡器。在该图中,电容c1和c2取30pf,晶体的振荡频率取12mhz,晶体振荡频率高,则系统的时

27、钟频率也高,单片机运行速度也就快。实际连接如图6.3所示 2.7 复位电路用at89s51的复位电路如图6.4所示。当单片机一上电,立即复位。电容c和电阻r1实现上电自动复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。2.8 显示电路设计用89s52的p3口作为数据线,用p1.7、p1.6、p1.5分别作为lcd的e、r/w、rs。其中e是下降沿触发的片选信号,r/w是读写信号,rs是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不

28、移位。向lcd的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到lcd的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。3电压表系统电路的制做3.1 绘制电路板我使用ad10软件绘制原理图,然后生成pcb图。特附以下图片3.2 铜板的转印、腐蚀、钻孔、焊接铜板的转印、腐蚀有司新生老师的指导下,在pcb实验室完成制作。钻孔过程有司新生老师提供的小台钻在宿舍完成。元器件的安装焊接在宿舍内完成。3.3 焊接好后的电压表系统3.4 动手制

29、作心得在此我说一下我的制作心得,该系统我修改重新印制总共4次,前三次都是考虑欠佳,第一只把思维停留在理想情况下,对于原件的封装大小,空间等因素掌握的不好,造成元件没法安装;第二对于线路的布设:需要考虑到走线的美观、均匀,不能交叉,尽可能的减少交叉所产生的跳线,焊盘要尽可能的大,以方便后面的焊接,如有可能建议对电路板覆铜,以提高电路板在以后使用过程中的稳定性。第三腐蚀好后的电路板要进行出碳、涂抹松香以防电路的氧化。电路板钻孔时候一定要稳住看清再下钻,千万不能看到钻头对着焊空最后却打到线上就麻烦了。要尽可能的用和管脚大小接近的钻头。第四焊接时,首先要确认元件安装到正确位置,焊接时要先加热焊盘,再上

30、锡,不能上锡过多,容易引起短路,尤其是覆铜板,要特别注意。4 系统的调试完成了系统的硬件设计,制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系硬件和软件全面调试。4.1 硬件调试硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。1.检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。检查开关/按键是否正常,是否连接正确,为了保护芯片,应先对各ic座电位进行检查,确认无误后再插入芯片。2.将40芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设计的要求,有正常的程序测试硬件电路的好坏。4.2 软件件调试软件

31、调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,同时也能发现硬件的故障。软件调试是一个模块一个模块进行的。首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。最后调试整个程序。尤其注意的是各模块间能否正确的传递参数。1)检查 lcd显示模块程序。观察在lcd上是否能够显示相应的字符。2)检查按键模块程序。3)检查a/d转换模块程序。可以在硬件电路的输入端输入已知的几个电压,分别观察lcd上是否显示相应的电压值。4)检查数据的转换模块程序。4.3 软硬联调该系统存在软件和硬件的紧密联系。软硬件都调试通过后,整个系统连接仍会存在很多麻烦。首先检查 a/d 部分,然后

32、是单片机,最后是液晶,依次排除障碍。总调试。当相应的各模块环节都正确后,可程序下载到单片机。接上电源运行。再检查所有功能,观察是否能预期的一样。如果一样,说明设计成功完成5 数据结果分析5.1 系统调试和校准设计完成之后,我们要对数据进行调试。调试过程可以利用对部分给定电压的测量结果分析来完成。首先要校对零点:将a/d转换器的模拟输入端口接地,即让电压为0v,此时可以调整r2的值,直至显示电压为0v时为止。校准零点之后,就可以进行测试了。5.2 测试数据调试完后,对电路进行精确、准确进行调试,为了保证精确度,要多测几个点,除了零点和满度值外,再选两个中间值进行比较,测试结果如下表所示: 输入值

33、(v)测量值(v)00000010.97621.89532.9014385754.886 以上数据符合要求,测试成功。总 结由于本设计使用的是高效的51系列单片机作为核心的测量系统,以及高精度,高速度,高抗干扰的a/d转换器。使得本直流电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低的特点。因为平时所需要测量的被测电压的电压值不是一个定值,多多少少都有一些微小的变化。因此本设计为之增加了可测5秒内平均电压的电压值。大大的提高了测量的准确性。使直流电压表有着较高的智能水平。此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应注意以下事项。1)硬件的选择。选择适合设计目地

34、的元器件是一个重要的方设计环节。不能以元器件是否是最高性能作为选择元器件的标准。往往高性能器件的价格也是较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。2)因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。单片机的应用如今已经是在工业,电子等方面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围电路再加上软件程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计更多精彩。对于数字电压表而言,功能将会越来越强大。致 谢通过这

35、一阶段的努力,我的毕业论文数字电压表终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在本论文的写作过程中,我的指导老师司新生老师倾注了大量的心血,从选题到开题报告,从写作提纲,都一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。写作毕业论文是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。我将铭记我曾是一名鹤壁职业技术学院机电工程学院的学子,在今后的工作中把“穷究于理

36、成就于工”的优良传统发扬光大。签名: 2011年10月19日参考文献1 陈洪中.数字电压表。水利电力出版社,19892 周立功.单片机实验与实践.北京:北京航空航天大学出版社3 吴国经.单片机应用技术.北京:中国电力出版社,2003.4 阎石.数字电子技术基础.北京:高等教育出版社,20065 谭浩强.c程序设计.北京:清华大学出版社,2005年.6 侯振鹏.嵌入式c语言程序设计.北京:人民邮电出版社,2006.7 李光飞 李良儿.单片机c程序设计.北京:北京航空航天大学出版社,20058 王港元.电工电子实践指导.江西:江西科学技术出版社,2005年附件一(系统电路原理图)附件二(电压表系统

37、程序)/*电压表主程序*/#include<reg52.h> #define uchar unsigned char#define uint unsigned int void result(uchar);uchar value=0; #include"adc0809.h"#include"lcd1602.h"uchar str5 ;uchar volt7;uchar a=0+0x30;uchar str111="tanxiaopin"sbit clk=p07;uint n;void main() /uint i;adc0

38、809_init();lcd_init();while(1)lcd_zifu(str1,0x01);value=ad();/原值 str0=value/100+0x30; str1=value%100/10+0x30; str2=value%10+0x30; result(value);lcd_data(str,0x40);lcd_data(volt,0x46);while(1);void result(uchar v)/转换成电压值float a;a=(v/255.0)*500.0;volt0=(int)a)/100+0x30;volt1='.'volt2=(int)a)%1

39、00/10+0x30;volt3=(int)a)%10+0x30;volt4=' 'volt5='v' void t1(void) interrupt 3 clk=clk; /*adc0809模数转换模块封装函数(头文件)*/void adc0809_init(); uchar ad();/*adc0809模数转换模块程序*/#include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit st=p04;sbit eoc=p05;sbit oe=p06;/sbit

40、clk=p07;sbit adda=p00;sbit addb=p01;sbit addc=p02;sbit ale=p03;uchar v;/保存in0和经ad转换后的数据/*非精确演示函数*/void delay(ms) uint i,j; for(i=ms;i>0;i-) for(j=125;j>0;j-);void adc0809_init()tmod=0x20;th1=(255-250);tl1=(255-250);ea=1;/开总中断et1=1; /开定时器1中断tr1=1; /启动定时器1 st=0; oe=0;ale=0;/*用中断做一个500k hz的时钟信号*/*ad转换函数*/uchar ad()uchar temp=0;st=0;/eoc=1;/ ale=1;adda=0;addb=0;addc=0; st=0; ale=1; st=1; ale=0; st=0; delay(2); while(eoc=0); oe=1; temp=p2; delay(2); oe=0; return temp;/*液晶显示模块封装函数(头文件)*/void lcd

温馨提示

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

评论

0/150

提交评论