您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Proteus仿真单片机数字电压表定时器给时钟频率
单片机课程设计报告设计题目:数字电压表专业班级学号学生姓名指导教师设计时间教师评分2015年6月26日目录1.概述.....................................................................................................................11.1目的..........................................................................................................11.2课程设计的组成部分..............................................................................12.数字电压表设计的内容...................................................................................22.1软件仿真电路设计..................................................................................22.1.1设计思路.......................................................................................22.1.2仿真电路图...................................................................................22.1.3设计过程.......................................................................................33..2设计课题软件系统程序清单.................................................................33.总结.....................................................................................................................93.1课程设计进行过程及步骤......................................................................93.2所遇到的问题,你是怎样解决这些问题的........................................123.3体会收获及建议....................................................................................123.4参考资料(书、论文、网络资料)....................................................124.教师评语...........................................................................................................135.成绩...................................................................................................................13TCL549模数转换1.概述1.1目的设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符作者信息,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在液晶显示器上。按退出键完成电压表的测量。1.2课程设计的组成部分本电压表主要由单片机、4*4行列式键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:AT89C51图1.1总体设计方案图本电压表的所有的软件、参数均存放在AT89S52的FlashROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。行列式键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字电压表效果,再利用液晶显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。液晶显示行列式键盘电源及复位电路等2.数字电压表设计的内容2.1软件仿真电路设计2.1.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0809的CLK直接由外部电源提供为500kHz的方波。由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF)ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0,我们的目的就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。2.1.2仿真电路图用Protues软件仿真设计的电路如图3-1所示。图3-1仿真电路2.1.3设计过程系统结构框图系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过按键选择八路通道中的一路,将该路电压送入ADC0809相应通道,单片机软件设置ADC0809开始A/D转换,转换结束ADC0809的EOC端口产生高电平,同时将ADC0809的EO端口置为高电平,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。3..2设计课题软件系统程序清单#includereg52.h#includeintrins.h#defineucharunsignedchar时钟电路复位电路单片机LED显示电路A/D转换测量电压输入电路#defineuintunsignedintsbitCLOCK=P1^4;sbitSTART=P1^5;sbitEOC=P1^6;sbitOE=P1^7;sbitdata0=P1^0;sbitdata1=P1^1;sbitdata2=P1^2;sbitdata3=P1^3;uintA1,A2,A3,A4,adval;uinta;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//gongyinvoiddelayms(uintxms){uinti,j;for(i=xms;i0;i--)for(j=110;j0;j--);}voiddisplay(ucharqian,ucharbai,ucharshi,ucharge){P0=0xff;data0=0;P0=table[qian];delayms(5);data0=1;data1=0;P0=table[bai];delayms(5);data1=1;data2=0;P0=table[shi];delayms(5);data2=1;data3=0;P0=table[ge];delayms(5);data3=1;}voidinit(){TMOD=0x20;TH0=(65536-2)/256;TL0=(65536-2)%256;EA=1;ET0=1;TR0=1;}voidADC0808(){START=0;START=1;START=0;while(!EOC);OE=1;a=P2;OE=0;adval=a*(1.0/256)*5000+20;A1=adval/1000;A2=adval/100%10;A3=adval/10%10;A4=adval%10;display(A1,A2,A3,A4);}voidmain(){init();while(1){ADC0808();}}voidT0_time()interrupt1{TH0=(65536-2)/256;TL0=(65536-2)%256;CLOCK=~CLOCK;}结果:3.总结3.1课程设计进行过程及步骤系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言。主程序流程框图如3.1所示;键盘扫描子程序框图如3.2所示;电压转换流程图如3.3所示;液晶显示程序流程图如图3.4所示;开始调用显示子程序调用键扫子程序NN图3.1.1主程序流程框图开始结束有键闭合键是否释放保存键值调显示子程序调延时去抖动YN有键闭合NNYY电压测量确认键按下?电压测量电压数据处理调用键扫描子程序退出键按下?调用显示子程序结束图3.1.2键盘扫描子程序图3.1.3电压转换流程图CS置0选中芯片模拟采样开始CLK置1CLK置0数据输出送单片机数据处理是否满8次调用显示函数结束YESNO开电源设定控制命令字图3.1.4液晶显示程序图3.2所遇到的问题,你是怎样解决这些问题的翻书,上网查解决方法,问老师3.3体会收获及建议在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,只有我们去试着做了,才能真正的掌握,学习的理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。3.4参考资料(书、论文、网络资料)[1]代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006,第19期.[2]刘文秀.单片机应用系统仿真的研究[J].现代电子技术.2005,第286期.[3]曹巧媛.单片机原理及应用[M],北京:电子工业出版社,1997.7.[4]张洪润.兰清华,单片机应用技术教程[M],北京:清华大学出版社,1997.11.[5]李广第.单片机基础[M],北京航空航天大学出版社,2006.7.串行数据的输出初始化完成[6]DaiQiHua.Proteus-basedcircuitdesignandsimulation[J].Modernelectronictechnology.2006,No.19[7]LiuWenXiu.MicrocontrollerApplicationSystemSimulation[J].Modernelectronictechnology.2005,No.286[8]CaoQiaoYuan.MicrocontrollerTheoryandApplications[M],Beijing:ElectronicIndustryPress,1997.7.[9]ZhangHongrun,LanQinghua,MCUapplica
本文标题:Proteus仿真单片机数字电压表定时器给时钟频率
链接地址:https://www.777doc.com/doc-2852935 .html