单片机课设数字电压表设计Word文档格式.docx

上传人:b****6 文档编号:17708360 上传时间:2022-12-08 格式:DOCX 页数:22 大小:382.62KB
下载 相关 举报
单片机课设数字电压表设计Word文档格式.docx_第1页
第1页 / 共22页
单片机课设数字电压表设计Word文档格式.docx_第2页
第2页 / 共22页
单片机课设数字电压表设计Word文档格式.docx_第3页
第3页 / 共22页
单片机课设数字电压表设计Word文档格式.docx_第4页
第4页 / 共22页
单片机课设数字电压表设计Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机课设数字电压表设计Word文档格式.docx

《单片机课设数字电压表设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课设数字电压表设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

单片机课设数字电压表设计Word文档格式.docx

P1口是一个具有内部上拉电阻的8位双向I/O口,同时也是模拟量输入口,可以对8路模拟量进行模数转换。

5.P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

6.P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口。

P3口亦作为特殊功能(第二功能)使用。

表1STC12C5A32ADP3口第二功能定义

引脚

第二功能

说明

P3.0

RXD

串行输入

P3.1

TXD

串行输出

P3.2

INT0

外部中断0

P3.3

INT1

外部中断1

P3.4

T0/CLKOUT0

定时器0外部计数输入/定时器0时钟频率输出

P3.5

T1/CLKOUT0

定时器1外部计数输入/定时器1时钟频率输出

P3.6

WR

外部数据存储器写选通输出

P3.7

RD

外部数据存储器读选通输出

7.RST:

复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

8.ALE:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

9.PSEN:

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

10.NA/P4.4:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,NA必须接GND。

为了执行内部程序指令,NA应该接VCC。

11.XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

12.XTAL2:

振荡器反相放大器的输出端。

3.2电源设计

该电路通过整流桥整流,各级的电容滤波(滤去交流高频信号),再通过采用CW7805三端稳压片即可满足要求,该电源提供的电能可靠,可以满足实验要求。

图3+5V电源

3.3LED显示电路

采用LED专用显示驱动芯片HD7279实现LED的驱动[4]。

图4HD7279引脚图

表2HD7279引脚及功能

名称

1,2

VDD

正电源(+5V)

3,5

NC

悬空

4

VSS

6

CS

片选信号,低电平有效

7

CLK

同步时钟输入端

8

DATA

串行数据写入/读出端

9

KEY

按键信号输出端

10-16

SG-SA

LED的g-a段驱动输出

17

DP

小数点输出端

18-25

DIG0-DIG7

LED位驱动输出端

26

CLKO

振荡输出端

27

RC

RC振荡器连接端

28

RESET

复位端,低电平有效

图5LED显示电路

3.4键盘电路设计

由于采用两路进行采集,并且要进行查看指定通道的电压值。

所以采用独立式键盘。

用两个按键进行查看其电压值,一键一线,各键相互独立,每个键各连一条I/O口线,通过检测输入线的电平状态就可以判断那个键被按下[8]。

图6键盘电路

3.5晶振电路

单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。

CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。

本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个12MHZ晶振和2个30PF电容即可。

晶振电路的两端分别接于单片机的XTAL1、XTAL2两个端口[11]。

图7晶振电路

3.6复位电路

单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。

图8复位电路

按键手动电平复位是通过RST端经电阻与电源VCC接通来实现的,当按键没有按下时,C3起到隔断直流电源的作用,使RST处于低电平状态。

当S3按下,将C3短路,使电路导通,RST端为高电平,当时间长到单片机的两个机器周期后,单片机就会复位。

复位后,只影响SFR中的内容,内部RAM中的数据不受影响。

外部复位有上电复位和按键电平复位。

由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。

为了便于本设计运行调试,复位电路采用按键复位方式。

3.7报警电路

利用三极管进行放大驱动LED或蜂鸣器进行工作,将1.25V和2.5V作为两路输入的报警值,当结果超过报警值时,指示灯闪烁和蜂鸣器发声,以示警告。

在数字电路中,是以脉冲信号驱动蜂鸣器以产生声音,若要以C51产生声音,可利用程序产生频率,送到IO口,再从该点连接到蜂鸣器的驱动电路,即可驱动蜂鸣器,这里采用的是以PNP晶体管放大电路。

数字微处理电路输出高电位时,由Ic内部流出的电流很小。

虽然我们可以利用高增益晶体管,在连接上拉电阻,以提供较大的驱动电流,以驱动蜂鸣器或其他负载。

而数字微处理电路输出低电位时,Ic可吸入较大电路,连接PNP晶体管构成的简单放大电路,即可提供足够的驱动能力。

图9报警电路

4.系统软件设计

4.1主流序程图[1]

对两路0—5V模拟电压进行循环采集,每路采集3次,取平均值,采集的数存入内存并显示。

对其扫描的过程进行了概括和分析。

4.2显示电路流程图

键盘控制,可查看制定通道的电压值。

显示中,其中最高位显示通道提示符A-B,低三位显示实际的电压。

4.3报警电路流程图

将1.25V和2.5V作为两路输入的报警值,当结果超过报警值时,指示灯闪烁和蜂鸣器发声,以示警告。

5总结

经过两周的努力终于设计完成。

通过本次设计,我对单片机这门课有了进一步的了解。

无论是在硬件连接方面还是在软件编程方面。

以前在学单片机课程时只是对其理论知识有了初步的理解。

通过这次设计,对它的工作原理有了更深的理解。

本设计参考了教材上有关A/D转换,LED显示,键盘电路等部分,实验指导书上关于A/D转换,键盘电路部分。

通过查询大量资料文献,对STC12C5A32AD工作方式有了初步了解。

并通过网上查询,初步掌握PROTEL99SE应用。

在这两周的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高,而且在与老师和同学的交流过程中,互动学习,将知识融会贯通。

更重要的是我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪浅。

要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

不管怎样,这些都是一种锻炼,一种知识的积完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。

总之这次电路的设计和仿真,基本上达到了设计的功能要求。

在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。

参考文献

[1]刘伟,赵俊逸,黄勇.《一种基予C8051F单片机的SOC型数据采录器的设计与实现》[A].天津市计算机学会单片机分会编.《2003年全国单片机及嵌如入式系统学术年会论文集(下册)》[C].北京:

北京航空航天大学出版社,2003.790-794.

[2]吴鹏,夏田.Linux操作系统实时化改造的分析[J].现代计算机,2006,(7):

69—71.

[3]赵春红等.基于PC的开放式数控系统研究[J].机械科学与技术,2005,(9):

1108—1112.

[4]徐爱钧.《智能化测量控制仪表原理与设计》(第二版)[M].北京:

北京航空航天大学出版社,2004:

145-178.

[5]应明仁,壬化成.单片机原理及应用[M].广州:

华南理工大学出版,2005.(7):

200-240.

[6]高峰,《单片微型计算机与接口技术》[M].北京:

科学出版社,2003:

202-232.

[7]李齐雄,郑颜雄,蔡盂吕.11012I’EKIri'

48系列单片机原理及应用实例[M].北京:

北京航空航天大学出版社,2005,(5):

309-333.

[8]解永勃.电压量程自动转换电路[J].电子世界,2003(7):

52—53.

[9]程宇红.基于EPROM的高精度数字电压表设计[J].自动化与仪器仪表,2001(5):

52—54.

[10]苗红霞.单片机实现数字电压表的软硬件设计[J].河海大学常州分校学报,2002(3):

74—79.

[11]吴金戌,沈庆阳,郭庭吉.《8051单片机实践与应用》[M].北京:

清华大学出版社,2002:

67-88.

附录1源程序

***************************************************************

系统初始化

****************************************************************

ORG0000H

AJMPSTART

ORG0003H

AJMPSAMPLE

ORG0013H

AJMPEOC

START:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOV30H,#00H

SETBIT0

SETRIT1

SETBEX0

SETBET0

SETBEA

SETBTR0

HERE:

AJMPHERE

工作内存定义

BITSTDATA20H

TIMEISOKBITBITST.1

TEMPONEOKBITBITST.2

TEMPLDATA26H

TEMPHDATA27H

TEMPHCDATA28H

TEMPLCDATA29H

常数定义

TMELEQU0E0H;

20ms,定时器0时间常数

TMEHEQU0B1H

TMEPHEADEQU36H

中断向量区

ORG000H

LJMPSTART

ORG00BH

LJMPT0IT

定时器0中断服务程序

T0IT:

PUSHPSW

MOVPSW,#10H

MOVTH0,#TIMEH

MOVTL0,#TIMEL

INCR7

CJNER7,#32H,T0ITI

MOVR7,#00H

SETBTIMEISOK

TOIT1:

POPPSW

RETI

主程序

MAIN:

LCALLCLK;

初始化

MOVR4,#8

MOVLED_3,R4

START1:

MOVDPTR,#7FF0H;

指向0通道

MOVX@DPTR,A;

读取转换数值

JBP3.4,AAA1

LCALLDELAY;

调用延时程序

JBP3.4,AAA1;

判断是否按下按钮并开始转换数值

SETBP3.2;

P3.2给高电平锁存地址

INCR4

CJNER4,#9,AAA2

MOVR4,#1

AAA2:

MOVLED_3,R4;

显示所选通道

INCR5

INCDPTR;

指向下一通道

MOVB,R5;

显示通道并重新锁存地址

MOVP0,B

CLRP3.2

JNBP3.4,$

AAA1:

CLRP2.4

SETBP2.4

CLRP2.4

JNBP2.5,$

SETBP2.6

MOVXA,@DPTR;

读取转换数据开始转化为工程量

MOVADC,A

CLRP2.6

LCALLCONV;

调用转换子程序

LCALLDISP;

调用显示子程序

LCALLDELAY;

LJMPSTART1

子程序区

数据采样子程序

****************************************************************

SAMPLE:

SETB00H

MOVDPTR,#0F00H

MOVR6,#08H

MOVR7,#05H

MOVR0,#40H

TRANS:

MOVX@DPTR,A

WAIT:

JB00H,WAIT

SETB00H

INCDPTR

INCR0

DINZR6,#TRAN_S

MOVDPTR,#0F00H

INCR0

DJNZR7,TRAN_S

……

……

RETI

数模转换子程序

****************************************************************

CONV:

MOVA,ADC;

MOVB,#51

DIVAB

MOVLED_2,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP1

ADDA,#5

LOOP1:

MOVLED_1,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOVLED_0,A

处理电压BCD码子程序

CONVTEAMP:

MOVA,TEMPH

ANLA,#80H

JZTEMPC1

CLRC

MOVA,TEMPL

CPLA

ADDA,#01H

MOVTEMPL,A

MOVA,TEMPH

ADDCA,#00H

MOVTEMPH,A

MOVTEMPHC,#0BH

SJMPTEMPCH

TEMPC1:

MOVTEMPHC,#0AH

TEMPC11:

MOVA,TEMPHC

SWAPA

MOVTEMPHC,A

MOVA,TEMPL

ANLA,#0FH

MOVDPTR,#TEMPDOTTAB

MOVCA,@A+DPTR

MOVTEMPLC,A

ANLA,#0F0H

MOVTEMPL,A

MOVA,TEMPH

ORLA,TEMPL

LCALLHEX2BCD1

SWAPA

ORLA,TEMPHC

MOVTEMPHC,A

ORLA,TEMPLC

MOVA,R7

JZTEMPC12

MOVR7,A

MOVA,TEMPHC

ORLA,R7

TEMPC12:

RET

小数部分码表

TEMPDOTTAB:

DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H

DB06H,07H,08H,09H,09H

显示区BCD码电压值刷新子程序

DISPBCD:

MOVA,TEMPLC

MOV70H,A

MOVA,TEMPLC

MOV71H,A

MOVA,TEMPHC

MOV72H,A

MOVA,TEMPHC

MOV73H,A

CJNZA,#010H,DISPBCD0

SJMPDISPBCD2

DISPBCD0:

MOVA,TEMPHC

ANLA,#0FH

JNZDISPBCD2

SWAPA

MOV73H,#0AH

MOV72H,A

DISPBCD2:

显示子程序****************************************************************

DISP:

MOVDPTR,#TABLE;

数码显示子程序

MOVA,LED_3

MOVCA,@A+DPTR

CLRP2.0

MOVP1,A

LCALLDELAY

SETBP2.0

MOVA,LED_0

CLRP2.3

SETBP2.3

MOVA,LED_1

MOVCA

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

当前位置:首页 > 高中教育 > 其它课程

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

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