网站大量收购闲置独家精品文档,联系QQ:2885784924

《基于AT89S51和ADC0809的数字电压表设计》.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《基于AT89S51和ADC0809的数字电压表设计》.doc

基于AT89S51和ADC0809的数字电压表设计 ?? ?本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。 ???? 注:因为ADC0809的通道选择端口是使用插针,做出电路板后再用导线连起来的,在程序里也少了通道选择的语句,请注意一下。 一.原理图 二.仿真图 三.存储空间定义 (1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表所示。 四.程序 ?程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。 数据采集系统:因为ADC0809本身并没有内部时钟,需要外部时钟来提供工作的时钟频率。如果利用单片机ALE端脚提供的频率为6MHZ,而ADC0809工作的频率在10KHZ-1MHZ。因此,需要增加含触发器功能的器件,从面增加了系统的复杂程度。后来,最终用软件编程来提供ADC0809工作的时钟频率,从而解决了这个问题。 显示系统的调试:要显示的数据存放在71H、72H、73H、74H单元中,先在30H~39H分单元中存放0~9的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。在测试的过程中发现小数点没有显示,通过下面几条指令,把小数点显示出来。 MOVC A,@A+DPTR ??????????? CJNE R2,#0FEH,NOT_ONE????? ;不是左边第一个数码管,则转移 ??????????? ORL? A,#80H??????????????? ;左边第一个数码管显示小数点 NOT_ONE:??? MOV P0,A?????????????????? ;数码管段选 ? (1)?汇编语言程序清单 QIAN? EQU? 71H BAI?? EQU? 72H SHI?? EQU? 73H GEWEI EQU? 74H????? ;71H-74H存放显示数据,依次为个位、十位、百位、千位 SHUJU EQU? 70H????????? ;地址70H存放采集数据?? ST? BIT P3.0???????????? ;START和ALE共用一个端口 OE? BIT P3.6 EOC BIT P3.7 CLK BIT P3.3????? ORG? 0000H LJMP? START ORG 0030H TAB:? DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ????????????? START:????? MAIN:????? ?LCALL?? TEST?????????????? ;数据采集函数 LCALL TURNDATA? ???????????;数据处理函数 ?????????? ?LCALL?? DISPLAY??????????? ;显示函数 ? ? ????????LJMP??? MAIN ? ? DELAY:????????? MOV? R7,#06H??? ????? ;约延时1.5ms LOOP1:????? MOV? R6,#0FFH LOOP2:????? DJNZ R6,LOOP2 ??????? ??? DJNZ R7,LOOP1???????? ??????? RET ? ? TEST:??? ?? CLR? ST ???? ?????? CLR? OE ??????? ??? SETB ST ??????? ??? CLR? ST?? ????????????????;ST端口下降沿,开始转换 LOOPCLK:??? SETB CLK?????????????? ???;由软件来提供ADC0809工作的时钟频率 ??????? ??? CLR? CLK ??????? ??? JNB? EOC,LOOPCLK???????? ?;EOC=1时,退出循环 ??????? ??? SETB OE???????? ??????????;转换后数据的传送? ??? ??????? MOV? P1,#0FFH?????????? ??;P1端口读数据,需先给高电平 ??????? ??? MOV? A,P1?????????????? ? ??? ??? ??? CLR? OE ? ? ??????? MOV? SHUJU,A????????????? ;存储数据到地址70H ????? ?RET ? ? TURNDATA:?????? ??? ??? ??? MOV? A,SHUJU ??? ??? ??? MOV? B,#51 ??? ??? ??? DI

文档评论(0)

ycwf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档