汇编实例简易数字电压表.docx

上传人:b****6 文档编号:6681035 上传时间:2023-01-08 格式:DOCX 页数:27 大小:197.02KB
下载 相关 举报
汇编实例简易数字电压表.docx_第1页
第1页 / 共27页
汇编实例简易数字电压表.docx_第2页
第2页 / 共27页
汇编实例简易数字电压表.docx_第3页
第3页 / 共27页
汇编实例简易数字电压表.docx_第4页
第4页 / 共27页
汇编实例简易数字电压表.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

汇编实例简易数字电压表.docx

《汇编实例简易数字电压表.docx》由会员分享,可在线阅读,更多相关《汇编实例简易数字电压表.docx(27页珍藏版)》请在冰豆网上搜索。

汇编实例简易数字电压表.docx

汇编实例简易数字电压表

单片机实训

 

制作人:

曾伟陈步青贺艳

班级:

自动化0733

指导老师:

王宏彦

 

长沙民政职业技术学院

电子信息工程系

2009年1月1日

目录

摘要……………………………………………………………………………………………3

关键词…………………………………………………………………………………………3

一、总体设计…………………………………………………………………………………3

1.1总体设计框图…………………………………………………………………………3

1.2方案设计论证与确定...……………………………...…………………………………4

1.3相关知识………………………………………………………………………………..4

二、硬件系统…………………………………………………………………………………5

2.1人机交互模块…………………………………………………………………………..5

2.2显示模块…………………………………………………………………………..5

2.3A/D转换模块…………………………………………………………………………..6

三、软件系统………………………………………………………………………………..7

3.1主程序…………………………………………………………………………..............7

3.2按键模块…………………………………………………………….....................8

3.3显示子程序模块…………………………………………………………......................9

四、测试与分析………………………………………………………...................................9

4.1测试仪器………………………………………………………………………................9

4.2功能测试与数据分析……………………………………………………........................9

4.3分析总结……………………………………………………………………………........9

五、附件……………………………………………………………………………...............10

5.1参考资料……………………………………………………………………………….....10

5.2元器件清单……………………………………………………………….....................10

5.3总设计原理图………………………………………………………………….................11

5.4程序清单……………………………………………………………………….................11

 

摘要

随着时代的发展,数字电子技术已经普及到我们生活,工作,科研,各个领域,直流稳压电数字电压表是常用的电子设备,在现工业控制及测量领域中有着重要的实际应用价值。

本设计基于单片机AT89S51的基础上,利用单片机技术结合A/D转换芯片ADC0809构建了一个直流电压表。

本数字电压表的设计由电源模块、显示电路模块、模数转换电路模块、按键模块四部分组成。

电源提供各个芯片电源所需电压;显示电路用于显示输入电压的大小变化值以及其他数据和内容;转换电路是数字技术和模拟技术的相互转换;按键模块是用于选择电压通道等等。

关键词:

单片机89S51、ADC0809、电压

一、总体设计

1.1总体设计枢图

本设计分为五个模块:

人机交互模块、电源模块、显示模块、单片机最小系统和模数转换模块

主体部分设计图:

 

1.2方案设计论证与确定

(一)A/D转换模块

方案一:

采用常用4位半双积分A/D转换芯片实现。

采用双积分转换方式,比逐次比较式转换精度高,但双积分式A/D转换器转换速率比较慢,也不能实现测量8路电压,故没有采用。

方案二:

采用常用8位8个通道A/D转换芯片ADC0809实现。

ADC0809是8位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据,而且ADC0809与单片机接口简单,转换速率快

所以我们采用了这个方案。

(二)人机交互模块

方案一:

使用行列式按键控制电路此种方法技术比较成熟,这种连接方法占用I/O口线少,但相对而言电路比较繁冗,考虑到成本与简洁性,没有采用。

方案二:

使用单片机本身I/O口通过扫描与编码实现显示与键盘输入。

这种方法不需要外围硬件,接口简单,而且编程也比较简单,所以我们选择了这种方案

(三)显示模块

方案一:

使用LCD液晶显示屏,液晶显示屏能显示汉字,字母和数字等,显示的内容非常丰富,且具有功耗低、可视面积大,分辨率高,但是液晶显示屏价格太高,所以没有采用。

方案二:

使用我们比较熟悉的是数码管显示,些此项目要求显示的内容不是很多,无论是程序编写还是操作,能达到项目的要求,而且价格实惠。

与液晶显示屏相比,所以我们选用了数码管显示。

1.3相关知识

1.3.1 AT89S51简介

 AT89S51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器.具有4K字节可编程闪烁存储器,可擦除的的只读存储器(PEROM),ATMEL的AT89S51是一种高效微控制。

AT89S51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟路。

         

1.3.2ADC0809模数转换芯片

ADC0809是8位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

 

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

二、硬件系统

本系统由电源模块、调压模块、D/A和A/D转换模块、显示与键盘模块组成,图1所示是该直流数控稳压电源的结构原理框图。

2.1 人机交互模块

人机交互模块我用了二个按键,用于切换显示,ADC0809的通道选择等。

下图为按键模块电路部分:

2.2显示模块

显示部分看上去比较简单,但是其功能比较多,它可以显示温度,时间和调试的时间部分等。

所以在编写程序的时候,比较复杂!

我们运用的8550为放大管。

74HC244驱动显示器的a,b,c,d,e,f,g七个发光段,推动发光数码管(LED)进行显示。

下图为数码管显示部分:

2.3A/D转换模块

我们采用的ADC0809是8位8个通道的A/D转换电路,现将A/D转换器工作原理介绍如下:

IN0-IN7:

8条模拟量输入通道

  ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

  地址输入和控制线:

4条

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

  CBA选择的通道

  000IN0

  001IN1

  010IN2

  011IN3

  100IN4

  101IN5

  110IN6

111IN7

下图为ADC0809转换部分:

 

三、软件系统

3.1主程序

主程序框图如下图所示。

3.2LED显示模块

显示模块设计了五个显示模式:

单路选择显示、单路显示、双路选择显示、双路显示、自动循环显示。

显示程序框图如下图所示

 

3.3按键处理程序

按键程序框图如下图所示

四、测试与分析

4.1测试仪器

数字万用表  单片机仿真器 计算机示波器 电烙铁 吸锡器  剥线钳 实验板 电线若干 镊子 等

4.2功能测试与数据记录

(1)测量电压范围为0~5V;

(2)数据记录

通道

输入电压

测量结果

IN0

5V

5.00V

IN1

5V

5.00V

IN2

5V

5.00V

IN3

5V

5.00V

IN4

5V

5.00V

IN5

5V

5.00V

IN6

5V

5.00V

IN7

5V

5.00V

4.3分析总结

通过该制作,使我们进一步了解单片机,增强了我们的动手能力,发挥了我们团队的创造力。

虽然该制作我们取得了成功,但我们设计的按键功能过于复杂,这使得用起来不方便,这点值得改进!

 

五、附件

5.1参考文献

◎周莜龙潘海燕《电子技术基础》电子工业出版社2007年12月

◎赵广林《Protel99SE电路设计与制板》电子工业出版社2007年8月◎周志光刘定良《单片机技术与应用》中南大学出版社2005年8月

5.2元器件清单

器件名称

封装

数量

按键

KEY2

2

0.1uF

RAD0.1

4

4.7K

AXIAL0.3

8

10K

AXIAL0.3

6

10uF

RB.1/.2

1

6M晶振

XTAL1

1

30P

RAD0.1

2

74HC244

DIP20

1

89S51

DIP40-1

1

100Uf

RB.1/.2

1

8050

TO-92A

1

74LS138

DIP16

1

AD0809

DIP28

1

LED

LED-4

2

LED

LED-4

1

圆孔电源插头

POWER3

1

8550

TO-92A

8

10K排电阻

SIP9

3

 

5.3总设计原理图

 

 

5.4程序清单

LED0EQU40H

LED1EQU41H

LED2EQU42H

LED3EQU43H

LED4EQU44H

LED5EQU45H

LED6EQU46H

LED7EQU47H

org0000h

jmpmain

org000BH

LJMPZHONG_TO

ORG0030H

MAIN:

MOVSP,#70H

SETB20H.1

MOVR2,#0;用于选择通道

MOVR3,#4;用于选择单通,双通,循环

mov22h,#0;用于计数

SETB20H.3;标志位,1为单路,0为双路

MOVTMOD,#01H

MOVTH0,#3ch

MOVTL0,#0b0h

SETBEA

setbTR0

SETBET0

MOV34H,#0

MAIN1:

CALLAD_0809

CALLMLOOP

CALLDISP

JBP3.4,MAIN2

CALLDELAY

JBP3.4,MAIN2

SETB20H.1

clrTR0

INCR3

CJNER3,#0,ASD2

CLR20H.1

setb20h.3

jmpasd5

ASD2:

CJNER3,#2,ASD3

CLR20H.1

clr20h.3

jmpasd5

ASD3:

CJNER3,#5,ASD1

MOVR3,#0

clr20h.1

setb20h.3

jmpasd5

ASD1:

CJNER3,#4,ASD5

setb20h.3

SETBTR0

ASD5:

CALLDISP

JNBP3.4,ASD5

MAIN2:

JB20H.1,MAIN1

JBP3.5,MAIN1

CALLDELAY

JBP3.5,MAIN1

INCR2

CJNER2,#8,asd4

MOVR2,#0

ASD4:

CALLDISP

JNBP3.5,ASD4

JMPMAIN1

;;;;;;;;;;;;;;;;;;;中断TO;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ZHONG_TO:

pushACC

MOVTH0,#3ch

MOVTL0,#0b0h

inc22h

mova,22h

cjnea,#40,PP1

mov22h,#0

incr2

cjner2,#8,PP1

MOVR2,#0

PP1:

popACC

RETI

;;;;;;;;;;;;;;;;;;;;;;;;中断INT1;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;INT11:

MOVA,P0

;MOV@R0,A

;SETB20H.0

;RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;;;ad0908采样电压;;;;;;;;;;;;;;;;;;;;;;

AD_0809:

CJNER2,#0,AD1

JMPAD3

AD1:

CJNER2,#1,AD2

AD3:

;MOVDPTR,#0F8FFH;0通道

;MOVX@DPTR,A

clrp2.3

movp2,#38h

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV25h,P0

setbp2.6

clrp2.3

movp2,#39h

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV26h,P0

setbp2.6

RET

AD2:

CJNER2,#2,AD4

JMPAD5

AD4:

CJNER2,#3,AD6

AD5:

movp2,#3ah

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV27h,P0

setbp2.6

clrp2.3

movp2,#3bh

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV28h,P0

setbp2.6

RET

AD6:

CJNER2,#4,AD7

JMPAD9

AD7:

CJNER2,#5,AD8

AD9:

clrp2.3

movp2,#3ch

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV29h,P0

setbp2.6

clrp2.3

movp2,#3dh

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV2ah,P0

setbp2.6

RET

AD8:

CJNER2,#6,AD10

JMPAD11

AD10:

CJNER2,#7,AD12

AD11:

clrp2.3

movp2,#3eh

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV2bh,P0

setbp2.6

clrp2.3

movp2,#3fh

CLRp2.3

setbp2.6

JNBp3.7,$

SETBp2.7

MOV2ch,P0

setbp2.6

AD12:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;数字转换;;;;;;;;;;;;;;;;;;;;;;;;

MLOOP:

CJNER2,#0,DIS1

MOV30H,25H

MOV31H,26H

MOV43H,#0

MOV47H,#1

JMPDIS10

DIS1:

CJNER2,#1,DIS2

MOV30H,25H

MOV31H,26H

MOV43H,#0

MOV47H,#1

JMPDIS10

DIS2:

CJNER2,#2,DIS3

MOV30H,27H

MOV31H,28H

MOV43H,#2

MOV47H,#3

JMPDIS10

DIS3:

CJNER2,#3,DIS4

MOV30H,27H

MOV31H,28H

MOV43H,#2

MOV47H,#3

JMPDIS10

DIS4:

CJNER2,#4,DIS5

MOV30H,29H

MOV31H,2AH

MOV43H,#4

MOV47H,#5

JMPDIS10

DIS5:

CJNER2,#5,DIS6

MOV30H,29H

MOV31H,2AH

MOV43H,#4

MOV47H,#5

JMPDIS10

DIS6:

CJNER2,#6,DIS7

MOV30H,2BH

MOV31H,2CH

MOV43H,#6

MOV47H,#7

JMPDIS10

DIS7:

CJNER2,#7,DIS10

MOV30H,2BH

MOV31H,2CH

MOV43H,#6

MOV47H,#7

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DIS10:

MOVA,30H

MOVB,#51

DIVAB

MOVLED2,A

MOVA,B

clrc

movr4,a

subba,#26

jncaaa1

mova,r4

movb,#10

mulab

MOVB,#51

DIVAB

MOVLED1,A

jmpaaa2

aaa1:

mova,r4

movb,#10

mulab

clrc

subba,#255

movb,#51

DIVAB

adda,#5

MOVLED1,A

aaa2:

MOVA,B

clrc

movr4,a

subba,#26

mova,r4

jncaaa3

movb,#10

mulab

MOVB,#51

DIVAB

MOVLED0,A

jmpaaa4

aaa3:

mova,r4

movb,#10

mulab

clrc

subba,#255

movb,#51

DIVAB

adda,#5

MOVLED0,A

aaa4:

MOVA,31H

MOVB,#51

DIVAB

MOVLED6,A

MOVA,B

clrc

movr4,a

subba,#26

jncaaa5

mova,r4

movb,#10

mulab

MOVB,#51

DIVAB

MOVLED5,A

jmpaaa6

aaa5:

mova,r4

movb,#10

mulab

clrc

subba,#255

movb,#51

DIVAB

adda,#5

MOVLED5,A

aaa6:

MOVA,B

clrc

movr4,a

subba,#26

mova,r4

jncaaa7

movb,#10

mulab

MOVB,#51

DIVAB

MOVLED4,A

jmploop122

aaa7:

mova,r4

movb,#10

mulab

clrc

subba,#255

movb,#51

DIVAB

adda,#5

MOVLED4,A

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

loop122:

CJNER3,#2,LOOP1

JMPLOOP2

LOOP1:

CJNER3,#3,LOOP3

LOOP2:

RET

LOOP3:

CJNER2,#0,DIS11

JMPLOOP11

DIS11:

CJNER2,#1,DIS12

mov40h,44h

MOV41H,45H

MOV42H,46H

JMPLOOP11

DIS12:

CJNER2,#2,DIS13

;MOV30H,27H

JMPLOOP11

DIS13:

CJNER2,#3,DIS14

mov40h,44h

MOV41H,45H

MOV42H,46H

JMPLOOP11

DIS14:

CJNER2,#4,DIS15

JMPLOOP11

DIS15:

CJNER2,#5,DIS16

mov40h,44h

MOV41H,45H

MOV42H,46H

JMPLOOP11

DIS16:

CJNER2,#6,DIS17

;MOV30H,2BH

JMPLOOP11

DIS17:

CJNER2,#7,loop11

;MOV30H,2CH

mov40h,44h

MOV41H,45H

MOV42H,46H

LOOP11:

MOV43H,#10

MOV44H,#10

MOV45H,#10

MOV46H,#10

MOV47H,R2

RET

;;;;;;;;;;;;;;;;;;;;;;;;;j显示;;;;;;;;;;;;;;;;;;

DISP:

JB20H.1,DIS31

INC34H

MOVR4,34H

CJNER4,#30,ZZX

cpl2

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

当前位置:首页 > 工作范文 > 制度规范

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

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