基于8051单片机的数字电压表的设计与制作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设计一基于8051单片机的数字电压表的设计与制作一、设计目的:(1).掌握A/D、D/A转换与单片机接口连接的方法;(2).了解A/D芯片ADC0809、D/A芯片DAC0832的转换性能及编程方法;(3).通过实验了解单片机系统中扩展A/D、D/A转换芯片的方法,学会和掌握用单片机进行数据采集;二、设计要求:将实验箱DJ598上的ADC0809作为A/D转换器,用实验箱上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,在利用DAC0832D/A数模转换器输出,通过数码管显示出结果,构成一个简易数字电压表。设计内容:使用ADC0809的0通道(IN0),进行0~5V直流电压的A/D转换,并通过DAC0832输出相似的电压值。0通道的电压输入由实验箱模拟量产生模块的电位器调整,电压测试点为AOUT1。顺时针旋转,电压增大,最大5V;逆时针旋转电压减小,最小为0V。将DAC0832得AOUT的输出接数字电压表,使DAC0832的输出电压为0~5V。实验中采用延时方式或查询方式等待A/D转换结果。三、实验电路:1.单片机与ADC0809实验接线图2.程序控制清单对ADC0809的0通道(IN0)进行A/D转换,并把转换结果通过DAC0832输出。采用延时方式等待A/D转换结束,电压输入值由电位器调整。ORG0000HDAC0832EQU0FF90HADC0809_0EQU0FF80HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVP2,#0FFHMOVA,#81HMOVDPTR,#0FF23HMOVX@DPTR,A;初始化显示缓冲区MOV7EH,#00HMOV7DH,#08HMOV7CH,#00HMOV7BH,#09HMOV7AH,#10HMOV79H,#10HLO18:LCALLSSEE;显示A/D转换的结果MOVDPTR,#ADC0809_0MOVA,#00HMOVX@DPTR,A;启动A/D转换MOVR7,#0AHDELAY:NOP;延时100μS,等待A/D转换结束NOPNOPDJNZR7,DELAYNOP;读取A/D转换的结果MOVXA,@DPTRNOP;可在此处设置断点,观察累加器A中MOVDPTR,#DAC0832MOVX@DPTR,ANOP;将结果写入DAC0832转换成电压输出,可测量输出点AOUT;可在此设置断点,比较AOUT1和AOUT得值是否相同MOVR0,#79HLCALLPTDS;送累加器A中A/D转换的值到显示缓冲区SJMPLO18ORG05D0HPTDS:MOVR1,A;拆送累加器A中A/D转换的值显示缓冲区ACALLPTDS1MOVA,R1SWAPAPTDS1:ANLA,#0FHMOV@R0,AINCR0RETORG0D50H;显示A/D转换的值子程序SSEE:SETBRS1;切换工作区MOVR5,#05HSSE2:MOV30H,#20HMOV31H,#7EHMOVR7,#06HSSE1:MOVR1,#20HMOVA,30HCPLAMOVX@R1,A;字位送入MOVR0,31HMOVA,@R0MOVDPTR,#DDFFMOVCA,@A+DPTR;取字形代码MOVR1,#21HMOVX@R1,A;字形送入MOVA,30HRRA;右移MOV30H,ADEC31HMOVA,#0FFHMOVX@R1,A;关显示DJNZR7,SSE1;六位显示完了吗?DJNZR5,SSE2;5次显示完了吗?CLRRS1RET;‘0’‘F’字符字型代码表DDFF:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND四、设计小结设计一个能实现一定功能的电路,需要对课本理论知识有个比较系统的掌握。才能设计出一定的电路,并通过一定的电路连接实现电路。通过电路的设计来巩固自己所学的知识。设计二单片机数字秒表的设计一、设计目的(1)熟悉单片机定时/计数器电路和中断的功能与编制。(2)熟悉8051与8255与LED的接口技术、LED动态显示的控制过程。(3)通过调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,体会大型程序的编制和调试技巧。二、设计要求:利用DJ—598KC单片机仿真实验系统进行模拟,用六位LED数码管显示实时计时值,其中时、分、秒、十分秒值从左到右各用1至两位LED数码显示,显示值为分、秒值0~59,时和十分秒值为0~9,使用KEY0、KEY1、KEY2等3键分别实现启动、停止、清零等功能。方法:用单片机定时器0中断方式,实现100ms定时作为实时时基信号,编程实现十分秒、秒、分计数。用动态显示方式实现秒表计时显示,采用中断或查询方式取得KEY0、KEY1、KEY2的按键输入,实现秒表的启动、停止、清零等功能。三、DJ-598KC实验箱的LED显示电路结构实验线路原理及连接:将KEY0、KEY1、KEY2按键用实验系统上的K1~K3键代起,分别和P1.0~P1.2连接,实现秒表的启动、停止、清零等功能。电路中,8255B口的8个I/O引脚PB0~PB7通过反相器驱动电路连接六位LED的阳极a~g,及dp;8255的A口的六个I/O引脚PA0~PB5通过同相驱动,对6位LED的阴极进行分时选通;这样在任一时刻,可以只有一位LED是点亮的。只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是我们常说的动态扫描电路。LED实现动态显示时,动态扫描的频率有一定的要求。频率太低,LED将出现闪烁现象;如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清。所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改,可参见程序清单中的DELAY延时子程序。四、控制程序框图主程序框图100ms定时中断程序框图五、程序清单主程序(系统初始化程序)ORG0000HSTART:AJMPMAINORG000BHAJMPCTC0ORG0100HMAIN:MOVSP,#60HMOVDPTR,#0FF23HMOVA,#88HMOVX@DPTR,AMAIN1:MOVR0,#79HMOVR7,#06HML1:MOV@R0,#00HINCR0DJNZR7,ML1MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBEACLRET0CLRTR0ML0:LCALLDISPMOVP0,#0FFHJNBP1.0,KEY0JNBP1.1,KEY1JNBP1.2,KEY2SJMPML0KEY0:SETBET0SETBTR0SJMPML0KEY1:CLRET0CLRTR0SJMPML0KEY2:CLREASJMPMAIN1定时/计数器0定时中断程序ORG0200HCTC0:PUSHPSWPUSHACCSETBPSW.3MOVTL0,#0B0HMOVTH0,#3CHMOVR0,#79HMOVA,@R0INCAMOV@R0,AXRLA,#0AHJNZRETOCLRAMOV@R0,AMOVR0,#7BHACALLDAAD1MOVA,R2XRLA,#60HJNZRETOACALLCLR0MOVR0,#7DHACALLDAAD1MOVA,R2XRLA,#60HJNZRETOACALLCLR0MOVR0,#7EHMOVA,@RINCAMOV@R0,AXRLA,#0AHJNZRETOACALLCLR0RETO:POPACCPOPPSWRETI十进制秒、分值加1子程序DAAD1:MOVA,@R0DECR0SWAPAORLA,@R0ADDA,#01HDAAMOVR2,AANLA,#0FHMOV@R0,AMOVA,R2INCR0ANLA,#0F0HSWAPAMOV@R0,ARETCLR0:CLRAMOV@R0,ADECR0MOV@R0,ARETLED显示子程序ORG0300HDISP:MOVR0,#79HMOVR3,#0FEHLD0:MOVA,R3MOVDPTR,#0FF20HMOVX@DPTR,AMOVDPTR,#SEGMOVA,@R0DIR0:MOVCA,@A+DPTRMOVDPTR,#0FF21HDIR1:MOVX@DPTR,AACALLDLINCR0MOVA,R3JBACC.5,LD1RLAMOVR3,ALJMPLD0LD1:RET;延时子程序DL:MOVR6,#01FHDELAY2:MOVR7,#018HDELAY1:DJNZR7,DELAY1DJNZR6,DELAY2RET;字符‘0’‘9’的七段LED代码表SEG:DB0C0H,0F9H,0A4H,0B0HDB99H,92H,82H,0F8H,80H,90HEND六、设计小结此次设计是基于单片机基础上,分别完成了数字电压表的设计与制作、七段LED数码显示接口与控制、以及单片机数字秒表的设计。通过本次设计,我了解了不少单片机方面的知识,并且还学到了一些编程的知识,设计中出现了诸多问题,在老师的帮助下得到解决,总体来说,本次设计使我的专业技能得到了很大的提高。设计三单片机实时交通信号灯控制模拟一、设计要求(1)了解可编程I/O芯片8255的结构功能及编程方法(2)学习掌握用单片机进行交通灯控制的实现方法。(3)掌握用软件编程实现延时的方法。二、设计要求:(1)编程DJ—598KC单片机扩展连接的8255的PA、PB口为输出I/O口,控制DJ—598KC实验箱上的黄、绿、红、三色十二个发光二极管亮灭,并分别用实验箱上的两位七段LED数码倒计时显示两通车道车辆通行时间(即黄、绿、红三色发光二极管亮灭时间),模拟十字路口交通信号灯控制和管理,并完成在DJ—598KC单片机实验箱上的仿真。(2)将8255的PA、PB口输出控制改为用单片机的P1、P3口实现输出控制,再完成控制电路连接设计及控制程序的编制和仿真。三、8255控制电路逻辑图DJ-598KC实验系统LED显示器接口电路连接四、控制程序框图五、8255A的逻辑结构和信号引脚六、DJ-5198KC实验箱8255的I/O口地址分配七、用8255的PA、PB口控制程序清单:ORG0100HHA4S:MOVSP,#60H8255初始化MOVDPTR,#0FF2BHMOVA,#88HMOVX@DPTR,AMOVDPTR,#0FF23HMOVA,#88HMOVX@DPTR,A;四个红灯MOVDPTR,#0FF28HMOVA,#0B6HMOVX@DPTR,AINCDPTRMOVA,#0DHMOVX@DPTR,A;5秒延时MOV2AH,#05HLCALLDELAY;东西绿灯,南北红灯HA4S3:MOVDPTR,#0FF28HMOVA,#75HMOVX@DPTR,AINCDPTRMOVA,#0DHMOVX@DPTR,A;80秒延时MOV2AH,#50HLCALLDELAY;东西黄灯,南北红灯HA4S1:MOVDPTR,#0FF28HMOVA,#0F3HMOVX@DPTR,AINCDPTRMOVA,#0CHMOVX@DPTR,A;10秒延时MOV2AH,#0AHLCALLDELAY;东西红灯,南北绿灯MOVDPTR,#0FF28HMOVA,#0AEHMOVX@DPTR,AINCDPTRMOVA,#0BHMOVX@DPTR,A;50秒延时MOV2AH,#32HLCALLDELAY;东西红灯,南北黄灯HA4S2:MOVDPTR,#0FF28HMOVA,#9EHMOVX@DPTR,AINCDPTRMOVA,#07HMOVX@DPTR,A;10秒延时MOV2AH,#0AHLCALLDELAYLJMPHA4S3;重复东西通行软件秒倒计时延时显示子程序DELAY:LCALLDISP;调用秒值显示子程序DJNZ2AH,DELAY;计数器非零循环RET秒值显示子程序(约1

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功