




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重庆三峡学院课 程 设 计 报 告 书题目: 基于单片机的智能数字 电压表设计学院(系): 应用技术学院 年级专业: 08级电信(仪表) 学 号: 学生姓名: 指导教师: 教师职称: 副 教 授 2010年12月25日目录第一章引言21.1设计目的21.2设计任务及要求21.3 设计方案2 第二章数字电压表简介22.1数字电压表的介绍22.2数字电压表工作原理2第三章硬件部分的设计23.1 8255内部结构概述 33.2 at89s52控制电路33.21 at89s524 3.22 74ls37343.23 74ls24553.3时钟电路和复位电路53.4显示电路63.5模数(a/d)转换电路
2、 73.6键盘电路10第四章系统软件的设计114.1程序框图1242主程序 12第五章系统的调试22 5.1硬件调试22 5.2软件调试22第六章心得体会23第七章参考文献23第八章附录24整体电路图24实验结果24 元器件清单25基于单片机的数字电压表的设计重庆三峡学院应用技术学院 第一章 引言摘要:本次设计主要解决a/d转换、数据处理及显示键盘控制等模块。控制系统采用at89s52单片机,a/d转换采用adc0809。显示采用6位led显示数码管的具有电压测量功能的具有一定精度的数字电压表。数字电压表可以测量05v的输入电压值,并在6位led数码管上轮流显示或单路选择显示。测量最小分辨为0
3、.020v,测量误差约为0.02v。关键字:a/d转换 显示电路 at89s52单片机 8255 键盘电路.1设计目的本课程的任务是使学生通过“数字电压表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。.2设计任务及要求基本要求:以单片机及a/d转换器为核心,设计一个智能数字电压表。可以测量05v的直流电压,并实时显示在led或lcd显示器上。第一位显示定时时间的采样值,第二、三位屏敝,第四、五、六位显示电
4、压值,在第四位后加小数点。转换精度20mv。有适当的抗干扰措施。扩展要求:外加键盘控制时间即第一位led。.3设计方案按系统功能实现要求,决定控制系统采用at89s52单片机,a/d转换采用adc0809,显示采用led七段共阴极数码管和74ls20反向驱动电路。系统除能确保复位控制,外加键盘电路进行采样值的控制功能外,还可以方便地进行其它8路模拟量的测量。第二章 智能数字电压表简介2.1数字电压表的介绍数字电压表(digital voltmeter)简称dvm,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。2.2 数字电压表的基本结构及工
5、作原理 电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。目前数字电压表的内部核心部件是a/d转换器, 转换器的精度很大程度上影响着数字电压表的准确度,数字式电压表是由高阻抗电压表头与分压电路组成的。 1.各部分的功能a/d转换器:将输入的模拟信号转换成数字信号。基准电源:提供精密电压,供a/d转换器作参考电压。标度变换:将十六-十进制(bcd)码转换成七段信号。驱动器:驱动显示器的a、b、c、d、e、f、g七个发光段,驱动发光数码管(led)进行显示。显
6、示器:将译码输出的七段信号进行数字显示,读出a/d转换结果。第三章 硬件部分的设计数字电压测量电路由a/d转换、数据处理及显示控制等组成,电路原理图如图所示(见附录图一)。3.1 8255内部结构概述8255管脚图如图1所示8255有3个8位的数据端口,即端口a、端口b、端口c。端口a对应一个8位输入锁存器和一个8位数据输出锁存器/缓冲器。图8255管脚图3.2 at89s52控制电路(如图2)图2 at89s52控制电路3.21 at89s52(图2)at89s52是一个低功耗,高性能cmos 8位单片机at89s52具有如下特点:40个引脚,8k bytes flash片内程序存储器,25
7、6 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器74ls245是我们常用的芯片,用来驱动led或者其他的设备,用法很简单如上图,这里简单的给出一些资料,他是8路同相三态双向总线收发器,可双向传输数据。 at89s52 是一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。 3.22 74ls373(图3)74ls373是常用的8d三态同相锁存器,作用是在单片机系统中扩展外部存储器,其引脚图和功能表如图6-2所示。
8、当门控端g输入正脉冲,且输出控制低电平有效时,d端的数据被锁存到锁存器的输出端,当g为低电平时,输出q保持不变;当为高电平时,输出q是高阻态。图3 74ls373引脚图和功能表3.23 74ls245(图4)74ls245还具有双向三态功能,既可以输出,也可以输入数据。图6-7为74ls245的引脚图和功能表,图中,为允许端,dir为方向控制。图4 74ls245引脚图和功能表74ls245的固定接地,其dir端由单片机的和相“与”后控制。当cpu执行读外部数据存储器(=0)或访问外部程序存储器(=0)时,dir0,驱动器导通方向为从外部到内部总线;否则,=1,=1,使dir=1,驱动器导通方
9、向为从内部总线向外,可供cpu向外传送数据。当片选端/ce低电平有效时,dir=“0”,信号由 b 向 a 传输;(接收)dir=“1”,信号由 a 向 b 传输;(发送)当/ce为高电平时,a、b均为高阻态。3.3时钟电路和复位电路 时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。1 时钟电路(图5a)单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。此次采用内部振荡方式。2 复位电路(图5b)当单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:
10、上电复位和上电或开关复位。本次采用开关复位。图5a 内部振荡电路 图5b 开关复位开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容c3的充电和反相门的作用,使rst持续一段时间的高电平。当单片机已在运行当中时,按下复位键k后松开,也能使rst为一段时间的高电平,从而实现上电或开关复位的操作。3.4显示电路本次设计采用共阴数码管,数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动发光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。
11、但数码管只能是显示09的数据。不能够显示字符。这也是数码管的不足之处。(见图6)图6 共阴数码管这次设计中,采用的是74ls240反向驱动中的/y1到/y8的输出信号驱动数码管的a .b.c.d.e.f.g.dp七段显示。74ls240中的a1a8与8255的pb口相连(段控),8255的pa口为位控。(如图7) 图7 显示电路3.5模数(a/d)转换电路a/d转换器是模拟量输入通道中的一个环节,单片机通过a/d转换器把输入模拟量变成数字量再处理。a/d转换由集成电路0809完成。0809具有8路模拟输入端口,地址线(23- 25脚)可决定对哪一路模拟(in0-in7)输入作a/d转换。22脚
12、为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个高电平脉冲时,就开始a/d转换。7脚为a/d转换结束标志,当a/d转换结束时,7脚输出高电平。9脚为a/d转换数据输出允许控制,当oe脚为高电平时,a/d转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机at89s52的30脚6分频晶振频率再通过74ls90五分频得到500khz时钟。8255的pa0-pa5端口作为六位led数码管显示控制。p0端口作a/d转换数据读入用,p2端口用作0809的a/d转换控制。 adc0809是8位逐次逼近型a/d转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一
13、个a/d 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用a/d 转换器进行转换。a/d转换器的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。(如图8(a) 图8(a) adc0809端子图图8(b) a/d转换电路1. adc0809(1) adc0809内部结构及功能d0d7:8位数字量输出端。in0in7:8路模拟量输入端。adda、addb、addc:地址输入端,用于选通8路(in0-in7)模拟输入中的一路。其与模拟输入通道的关系如表1所示。表1 adda、addb、addc与模拟输入通道的关系addcad
14、dbadda模拟输入通道000in0001in1010in2011in3100in4101in5110in6111in7表1ale: 地址锁存允许信号。输入,高电平有效。用来控制通道选择开关的打开与闭合。ale1时,接通某一路的模拟信号,ale0时,锁存该路的模拟信号。start: a/d转换启动信号,输入,高电平有效。在使用时,该信号通常与ale信号连在一起,以便在锁存通道地址的同时启动a/d转换。clk:时钟脉冲输入端。允许最高输入频率为1280khz,此时其转换时间为75s。若时钟频率下降,时间随之增加。如clk选640khz,则转换时间为100s。若clk选500khz,则转换时间为1
15、28s。oe:数据输出允许端。当oe为高电平时,转换结果数据出现在d7d0引脚。当oe为低电平时,d7d0引脚对外呈高阻状态。eoc:a/d转换结束信号,输出。该信号在adc0809进行a/d转换期间保持低电平,直至a/d转换结束时,eoc从低电平变为高电平。该信号可直接与单片机的i/o口线直接相连,采用查询方式工作;也可把eoc信号取反后接单片机的或,采用中断方式读取a/d转换数据。vref、vref:分别为基准电源的正、负输入端。其典型值为+5v,可与电源电压(+5v)相连。电源电压往往有一定波动,当精度要求较高时,可用高稳定度基准电源输入。当模拟信号电压较低时,基准电压也可取低于5v的数
16、据。vcc:电源输入端,+5v。gnd:地。(2) adc0809与单片机的接口adc0809与单片机的接口如图8(a)(b)所示。由于adc0809具有输出三态锁存器,故其8位数据输出线可直接与单片机数据总线相连。单片机的低8位地址信号在ale作用下锁存在74ls373中。74ls373输出的低3位信号分别加到adc0809的通道选择器addc、addb、adda上,作为通道编码。单片机的p2.6作为片选信号,结合或信号选通芯片。此电路采用通道进行采样,所以其地址为0bfffh。adc0809的ale和start引脚接在一起,当单片机执行外部ram写操作时, adc0809在锁存通道地址的同
17、时也启动转换。当单片机执行外部ram读操作时,oe信号有效,打开三态输出锁存器,读取a/d转换结果。上述操作时,p2.6应为低电平。adc0809的eoc端经反相器连接到单片机的p3.3()引脚。单片机可用查询、延时或中断方式采集a/d转换的数据。adc0809的时钟信号clk可由单片机ale信号经74ls90分频而来。图5(a)(b)中的单片机晶振频率为12mhz,则ale频率是晶振频率的1/6,即2mhz,再经五分频后为500khz。adc0809能够可靠工作。2. 74ls9074ls02具有如下的五种基本工作方式:(分频器)五分频:即由fd、fc、和fb组成的异步五进制计数器工作方式。
18、十分频(8421码):将qa与ck2联接,可构成8421码十分频电路。六分频:在十分频(8421码)的基础上,将qb端接r1,qc端接r2。其计数顺序为000101,当第六个脉冲作用后,出现状态qcqbqa=110,利用qbqc=11反馈到r1和r2的方式使电路置“0”。本电路采用五分频3. 74ls0274ls02引脚功能:实现2输入四或非门功能,常用于各种数字电路中3.6键盘电路(图9)图9 键盘电路(1) 判断键盘上有无键按下。使pa口输出扫描字00h,读pc口状态,若pc0pc3都为1,则无键按下;若不都为1,则有键按下。(2) 消除键抖动影响。在检测到有键闭合后,软件延时1020ms
19、后再检测有无键闭合。如有键闭合予以确认,否则按键抖动处理。(3) 若有键按下,确定按下键的键号。从pa口依次输出不同的列扫描字,当扫描次数为07时,扫描字为feh、fdh、fbh、f7h、efh、dfh、bfh、7fh,即依次使行列式键盘的一根线为0,其余为1。每次都读取pc0pc3的值,若其中某位为0,则这次扫描有键按下。假设pa口输出扫描字f7h时(pa3=0,pa口其余口线=1),若检测到pc0=0,则闭合键的键号为03h;若检测到pc1=0,则闭合键的键号为13h。由此可计算出闭合键的键号值。闭合键的键号=所在行号键盘列数+所在列号(4) 键闭合一次,cpu仅作一次处理。当有键闭合时,
20、cpu暂不作处理,等待键释放以后,就可以根据键号方便的通过散转进入相应键的功能处理程序。第四章 软件系统的设计4.1程序框图系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的a/d转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序和测试之程序之间循环,主程序流程图见:开始初始化调用a/d转换子程序设置延时时间主程序调用子程序显示4.2源程序 eoc bit p1.0vih data 51hvil data 52haddata data 50hzsd bit p1.1 org 0 ljmp main org 001bh ljmp ad_int org 010
21、0h main: mov sp,#53hmov p2,#0ffhmov a,#81hmov dptr,#0ff23hmovx dptr,amov 7eh,#01hmov 7dh,#10hmov 7ch,#10hmov 7bh,#02hmov 7ah,#05hmov 79h,#0h;-采样单元及标度变换单元清0-mov vih, #0mov vil, #0mov addata, #0;- mov r7 , #1;数据采集次数 mov r2 , #20;r2为“50ms”计数器,置入初值100(计5s) mov r3 , #1;r3为秒计数器,置入初值24(计5s) mov tmod , #10h
22、; t1方式1,定时50ms mov th1 , #3ch;定时器初值,定时50ms mov tl1 , #0b0h mov ie , #0;关闭中断 setb et1;定时器t1允许中断 setb ea;cpu开放中断 setb tr1;启动t1中断;- lcall ssee1loop: lcall biaodulcall ptdslcall sseelcall keylcall keypd sjmp loop;等待中断;- org 05d0hptds:mov a , vilanl a, #0fhmov r0,#79h; 保存vil低4位mov r0, amov a, vilswap aan
23、l a , #0fhmov r0, #7ah; 保存vil高4位mov r0, amov a, vihanl a , #0fhmov r0, #7bh; 保存vih高4位mov r0, a inc r0;7ch和7dh两位不显示mov a , #10hmov r0, ainc r0mov a , #10hmov r0, ainc r0mov a , 7eh;7eh位显示“1”mov r0, aret;-显示子程序-org 0d50hssee:setb rs1mov r5,#05hsse2:mov 30h,#20hmov 31h,#7ehmov r7,#06hsse1:mov r1,#20hmo
24、v a,30hcpl amovx r1,amov r0,31hmov a,r0mov dptr,#ddffmovc a,a+dptrmov 3fh , a ; 暂存显示码mov a , 30h cjne a , #04h ,sse3mov a , 3fhclr acc.7sjmp sse4sse3:mov a , 3fhsse4:mov r1,#21hmovx r1,amov a,30hrr amov 30h,adec 31hmov a,#0ffhmovx r1,adjnz r7,sse1djnz r5,sse2clr rs1ret;-初始化显示子程序-org 1d50hssee1:setb
25、rs1mov r5,#05hsse12:mov 30h,#20hmov 31h,#7ehmov r7,#06hsse11:mov r1,#20hmov a,30hcpl amovx r1,amov r0,31hmov a,r0mov dptr,#ddffmovc a,a+dptrmov r1,#21hmovx r1,amov a,30hrr amov 30h,adec 31hmov a,#0ffhmovx r1,adjnz r7,sse11djnz r5,sse12clr rs1ret;-显示代码表-ddff:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80
26、h,90hdb 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,89h,0deh;-ad转换子程序-ad_int: push dplpush dphmov th1 , #3ch ;中断服务程序,重新赋定时器初值 mov tl1 , #0b0hdjnz r2 , return;5s未到,返回mov r2 , #20;重新置“50ms”计数器初值djnz r3 , return;5s未到,返回mov r3 , #1;重新置“5s”计数器初值cpl zsd;1分钟指示灯变换mov dptr , #0ff80h ;in0通道地址ad_lp2:movx dptr,a ;启动a/d转
27、换 jnb eoc ,$ ;转换是否结束?movx a , dptr;读取a/d转换结果mov addata , areturn:pop dph;恢复通道地址pop dplreti;-标度变换-biaodu:mov a,addatamov b,#5mul abmov vih,bmov b,#100mul abmov a,#10xch a,bdiv abswap aorl a,bmov vil,a ret;-键盘扫描-;出口:(a)=键码值ls3: db 07h,04h,08h,05h,09h,06h,0ah db 0bh,01h,00h,02h,0fh,03h,0eh db 0ch,0dhke
28、y: setb rs1 mov r2,#0feh mov r3,#08h mov r0,#00hlp1: mov a,r2 mov r1,#20h movx r1,a rl a mov r2,a mov r1,#22h movx a,r1 cpl a anl a,#0fh jnz lp0 inc r0 djnz r3,lp1 movx a,r1 jb acc.4,xp33 mov a,#20h sjmp xp3xp33: mov a,#20hxp3: clr rs1 retlp0: cpl a jb acc.0,xp0 mov a,#00h sjmp lppxp0: jb acc.1,xp1
29、mov a,#08h sjmp lppxp1: jb acc.2,xp2 mov a,#10h sjmp lppxp2: jb acc.3,xp33 mov a,#18hlpp: add a,r0 clr rs1 cjne a,#10h,lx0lx0: jnc xp35 mov dptr,#ls3 movc a,a+dptrxp35: ret org 0d50hssee2: setb rs1mov r5,#05hsse22: mov 30h,#20hmov 31h,#7ehmov r7,#06hsse23: mov r1,#20hmov a,30hcpl a movx r1,a mov r0,
30、31hmov a,r0mov dptr,#ddffmovc a,a+dptr mov r1,#21hmovx r1,amov a,30hrr a mov 30h,adec 31hmov a,#0ffhmovx r1,adjnz r7,sse23djnz r5,sse22clr rs1ret;-键盘判断-keypd: cjne a,#01h,k1mov 7eh,#01hclr tr1mov r2,#20;修改延时时间mov r3,#1setb tr1sjmp ret1k1: cjne a,#02h,k2mov 7eh,#02hclr tr1mov r2,#40mov r3,#1setb tr1s
31、jmp ret1k2: cjne a,#03h,k3mov 7eh,#03hclr tr1mov r2,#60mov r3,#1setb tr1sjmp ret1 k3: cjne a,#04h,k4mov 7eh,#04hclr tr1mov r2,#80mov r3,#1setb tr1sjmp ret1k4:cjne a,#05h,k5mov 7eh,#05hclr tr1mov r2,#100mov r3,#1setb tr1sjmp ret1k5:cjne a,#06h, k6mov 7eh,#06hclr tr1mov r2,#120mov r3,#1setb tr1sjmp re
32、t1 k6: cjne a,#07h,k7mov 7eh,#07hclr tr1mov r2,#140mov r3,#1setb tr1sjmp ret1k7: cjne a,#08h,k8mov 7eh,#08hclr tr1mov r2,#160mov r3,#1setb tr1sjmp ret1k8:cjne a,#09h,ret1mov 7eh,#09hclr tr1mov r2,#180mov r3,#1setb tr1ret1:retend第五章 系统的调试完成了系统的硬件设计,制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系件和软件调统调试。调试分了硬试5.1硬件调
33、试完成了系统的硬件设计,制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系件和软件调统调试。调试分了硬试硬件调试的主要任务是排除硬件故障,其中包括设计的错误和连线故障等。1.检查所设计的硬件所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。2.将40芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设计的要求,有正常的程序测试硬件电路的好坏。3.将显示子程序保存好asm文件并运行。4.按下复位按键时,通道号将变成0通道,电压也为初始值。5.硬件电路调试与测试均正常。5.2软件的调试软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,同时也能发现硬件的故障。软件调试是一个模块一个模块进行的。首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。最后调试整个程序。尤其注意的是各模块间能否正确的传递参数。1. 检查led显示模块程序。观察在led上是否能够显示相应的字符。2. 检查按键模块程序。3. 检查a/d转换模块程序。可以在硬件电路的输入端输入已知的几个电压,分别观察led上是否显示相应的电压值。(软件调试结果见附录4)4所有程序运行正常后,在这个程序中加入中断延时5s。第六章 心得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年5G网络优化工程师理论考试复习题库(含答案)
- 工会换届工作总结
- 七下语文知识点一单元
- 2024-2025学年下学期高三英语人教版同步经典题精练之语法填空
- 八省部分重点中学2025届高三下学期3月联合测评(T8联考)数学试题
- 幼儿园获奖公开课:小班体育活动《蚂蚁爬》课件
- 企业组长培训心得
- 语文-北京市朝阳区2025年高三年级第二学期质量检测一(朝阳一模)试题和答案
- 地月通信中继设备安装工程2025深空网络接入条款
- 声誉风险培训
- 对5S管理成果的记录和展示
- 人工智能在网络安全中的应用简介
- JGT541-2017 建筑隔震柔性管道
- 造价咨询服务方案技术标工作方案技术措施质量控制及程序运作机制及工作流程组织方案质量控制措施技术措施
- 刑诉章节习题
- 有限空间作业管理台帐(参考模板)
- 景观水池清淤泥施工方案
- 工资分期发放协议
- 中建钢结构施工工艺指导手册
- 索尼摄像机HXR-NX200-操作说明书
- DB32/T 4443-2023 罐区内在役危险化学品(常低压)储罐管理规范
评论
0/150
提交评论