单片机课程设计报告题目:基于8051单片机的数字电压表的设计与仿真教学单位:机电工程系专业:机械设计制造及其自动化班级:0803学号:0811050331姓名:邹高永2011年11月18日11.项目设计目的与要求。目的:1.掌握A/D、D/A转换与单片机接口连接的方法;2.了解A/D芯片ADC0809、D/A芯片DAC0832的转换性能及编程方法;3.通过实验了解单片机扩展A/D、D/A转换芯片的方法,学会和掌握用单片机进行数据采集;要求:将实验箱DJ598上的ADC0809作为A/D转换器,用实验箱上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,在利用DAC0832D/A数模转换器输出,通过数码管显示出结果,构成一个简易数字电压表。2.实验设备及所需元器件(1)DJ-598KC单片机开发系统1台(2)仿真器(EASYPROBE)1只(3)PC机1台3.项目内容及实验方法。使用ADC0809的0通道(IN0),进行0~5V直流电压的A/D转换,并通过DAC0832输出相似的电压值。0通道的电压输入由实验箱模拟量产生模块的电位器调整,电压测试点为AOUT1。顺时针旋转,电压增大,最大5V;逆时针旋转电压减小,最小为0V。将DAC0832得AOUT的输出接数字电压表,使DAC0832的输出电压为0~5V。实验中采用延时方式或查询方式等待A/D转换结果。4.项目电路设计及原理介绍2(1)实验电路及接线图a.单片机与ADC0809实验接线图b.单片机与DAC0832(2)实验步骤:a.按照实验接线图将实验设备及所需元器件连接好b.编制程序,将模拟量转换成数字量c.利用DAC0832D/A数模转换器输出,并通过数码管显示出结果35.控制程序流程图及程序清单ORG0000HDAC0832EQU0FF90HADC0809_0EQU0FF80HLJMPSTRATORG0100HSTART:MOVSP,#60H•MOVA,#81H•MOVDPTR,#0FF23H•MOVX@DPTR,A•;初始化显示缓冲区•MOV7EH,#00H•MOV7DH,#08H•MOV7CH,#00H•MOV7BH,#09H•MOV7AH,#10H•MOV79H,#10H•LO18: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转换的值到显示缓冲区SJMPLO18•ORG05D0H•PTDS:MOVR1,A;拆送累加器A中A/D转换的值显示缓冲区•ACALLPTDS1•MOVA,R1•SWAPA•PTDS1:ANLA,#0FH•MOV@R0,A4•INCR0•RET•ORG0D50H;显示A/D转换的值子程序•SSEE:SETBRS1;切换工作区•MOVR5,#05H•SSE2:MOV30H,#20H•MOV31H,#7EH•MOVR7,#06H•SSE1:MOVR1,#20H•MOVA,30H•CPLA•MOVX@R1,A;字位送入•MOVR0,31H•MOVA,@R0•MOVDPTR,#DDFF•MOVCA,@A+DPTR;取字形代码•MOVR1,#21H•MOVX@R1,A;字形送入•MOVA,30H•RRA;右移•MOV30H,A•DEC31H•MOVA,#0FFH•MOVX@R1,A;关显示•DJNZR7,SSE1;六位显示完了吗?•DJNZR5,SSE2;5次显示完了吗?•CLRRS1•RET•;’0’~’F’字符字型代码表•DDFF:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H•DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND56.项目调试总结及改进意见:本次我所做的设计是8051单片机的数字电压表的设计与仿真,由于对课本知识掌握的不是很好,所以,刚开始的时候感觉有点吃力,尤其是对8051内部的结构与功能不熟悉,导致接线和运行都遇到了较大的困难。后来,通过查阅资料和听老师的讲解,逐步解决了以上困难,顺利完成了本次设计。最后,特别感谢袁益民老师对本次设计的耐心指导,感谢机制0803班全体同学所提供的大力帮助!8.指导教师意见: