《数字电压表仿真》实验报告1.docx

上传人:b****5 文档编号:12212816 上传时间:2023-04-17 格式:DOCX 页数:12 大小:149.78KB
下载 相关 举报
《数字电压表仿真》实验报告1.docx_第1页
第1页 / 共12页
《数字电压表仿真》实验报告1.docx_第2页
第2页 / 共12页
《数字电压表仿真》实验报告1.docx_第3页
第3页 / 共12页
《数字电压表仿真》实验报告1.docx_第4页
第4页 / 共12页
《数字电压表仿真》实验报告1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《数字电压表仿真》实验报告1.docx

《《数字电压表仿真》实验报告1.docx》由会员分享,可在线阅读,更多相关《《数字电压表仿真》实验报告1.docx(12页珍藏版)》请在冰豆网上搜索。

《数字电压表仿真》实验报告1.docx

《数字电压表仿真》实验报告1

《单片机仿真》课程设计报告

 

题目:

数字电压表的设计

姓名:

杨青昀

学号:

201020305125

专业:

10电气传动一班

【实验准备】

在实验前,我通过上网、上图书馆查找了一些关于单片机AT89S51的硬件及指令系统的资料和ADC0808输出口的应用的资料,结合单片机所学的中断、定时器和AT89S51扩展I/O接口芯片ADC0808的工作方式的知识,并对电路板各个元器件、接线等的清楚认识,完成了对电路板仿真图的绘制,以及初步的程序,并实现了初步的仿真效果。

【设计内容】

设计一个数字电压表。

【设计要求】

所设计的数字电压表可以测量0~5的电压,并在四位LED数码管上显

示出来。

CPU为AT89S51,利用并行口P0口、P2口、P3口,并运用了单片机的扩展输入-输出口以及接口芯片ADC0808。

【设计方案】

一、实验原理方框图:

本程序设计意在展示数字电压表的测量。

通过对一些相关书籍资料的查阅及网上各种作品和代码的浏览,对各种实现代码的比较和优化,总结出本程序,以较优秀的代码实现各种可控的“数字电压表”功能。

硬件系统部分包括显示部分、控制P口的方式部分和控制芯片。

 

1、系统框图如下:

二、电路结构

1、芯片的接线电路原理图:

(1)、ADC0808的21~17引脚作为数字电压表的输出口

(2)、D0~D7—数据输出线。

(3)、START—转换启动信号。

(4)、OE—输出允许信号

(5)、EOC—转换结束状态信号

EOC=0,正在进行转换。

EOC=1,转换结束。

(6)、VCC—+5V电源。

(7)、VREF(+)、VREF(-)—基准参考电压。

(8)、A、B、C—模拟通道地址线。

A为低地址,C为高地址。

2、AT89C51芯片分析

ATMEL的AT89C51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51的芯片引脚图如下:

图一AT89C51引脚图

(1)各引脚的说明和功能分析如下:

VCC:

供电电压。

GND:

接地。

   

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

    

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

    

XTAL2:

来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

3、硬件电路连接图如下:

图二原理图

四、程序流程图

1、主程序:

程序设计思路:

本设计使用89S2051芯片作为控制芯片,总线上的p1.0~p1.7分别与ADC0808的OUT8~OUT1相连。

五、仿真图

图三仿真图

六、实验程序

LED_0EQU30H

LED_1EQU31H

LED_2EQU32H

ADCEQU35H

STBITP3.2

OEBITP3.0

EOCBITP3.1

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVLED_0,#00H

MOVLED_1,#00H

MOVLED_2,#00H

SETBP3.4

SETBP3.5

CLRP3.6

WAIT:

CLRST

SETBST

CLRST

JNBEOC,$

SETBOE

MOVADC,P1

CLROE

LCALLCONVERT

LCALLDISPLAY

SJMPWAIT

CONVERT:

MOVA,ADC

MOVB,#51

DIVAB

MOVLED_2,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOVLED_1,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5

LOOP3:

MOVLED_0,A

RET

DISPLAY:

MOVA,LED_0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

SETBP2.3

MOVP0,A

LCALLDELAY

CLRP2.3

MOVA,LED_1

MOVDPTR,#TABLE

MOVCA,@A+DPTR

SETBP2.2

MOVP0,A

LCALLDELAY

CLRP2.2

MOVA,LED_2

MOVDPTR,#TABLE2

MOVCA,@A+DPTR

SETBP2.1

MOVP0,A

LCALLDELAY

CLRP2.1

RET

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

TABLE2:

DB40H,79H,24H,30H,19H,12H

END

 

七、总结

在去实验室前,我经过多番努力,将电路板上的电路用仿真软件画出,并且确保了每一条连线都包含了,芯片的每一个管脚都清楚的认识到是用来干什么的,怎么连接的,仿真时各个点将会出现什么情况。

尔后,我又进行了初步的编程,将程序模块化,分为了主程序、显示子程序、延时子程序等,但在程序的编程过程中,我不是很了解怎么实现这个过程,导致未能完成该程序的编写。

因此,我和组员在互相讨论了自己的编程思路后,综合了对方的意见,得到了初步的程序,最后经过了一天的努力,我们得到了初步的程序,但在仿真过程中还是未能实现我们所要的结果。

虽然这样,但我们并没有因结果不理想而放弃,于是,我们经过反复不断的修改,得到进一步的程序,第二天又到实验室去调试。

调试的时候总提示有错,然后通过我们的仔细分析、修改,再加反复调试,终于得到了,我们想要的程序。

调好程序后,我们进行了仿真,而在仿真过程中又出现了一些小问题如:

接线的问题,芯片的问题,所接的电阻值过大等,导致LED显示灯不亮。

最后经过细心的检查修改,最终终于得到了我们想要的结果。

单片机设计及仿真是一个很好的实践环节,他将我们所学的课堂知识和实践结合,是我们所学知识得到加固。

这次课程设计的主要收获就是在运用知识的过程中让我对单片机产生了浓厚的兴趣,在数字电压表的制作过程中,对单片机的结构有了更加的了解,将硬件与软件的完美结合更增加了我对这门课程的兴趣,这也许就是主观的学习积极性。

老师的指导也是很重要的,通过老师的指导是我们的实验过程更加轻松,受益匪浅。

总之,这次课程设计不仅使我了解了单片机的开发流程,更加的理解运用了所学的知识,而且更重要的是收获了知识以外的学问,这对于我来说一生都是受用的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1