简易数字电压表.docx

上传人:b****7 文档编号:9732250 上传时间:2023-02-06 格式:DOCX 页数:25 大小:133.87KB
下载 相关 举报
简易数字电压表.docx_第1页
第1页 / 共25页
简易数字电压表.docx_第2页
第2页 / 共25页
简易数字电压表.docx_第3页
第3页 / 共25页
简易数字电压表.docx_第4页
第4页 / 共25页
简易数字电压表.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

简易数字电压表.docx

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

简易数字电压表.docx

简易数字电压表

河海理工学院课程设计任务书

工学院机械系机械式及制造及其自动化专业08级1班

学号08010505姓名13指导教师465

题目:

简易数字电压表

课程:

单片机应用技术

课程设计时间2011年11月28日至12月11日共2周

课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)

1.设计任务与要求(完成后需提交的文件和图表等)。

(1).分析各部分电路的原理,说明其作用。

(2).用Multisim仿真软件进行局部仿真。

(3).用Protel软件画原理图。

2.安装调试要求

(1)安装时要仔细检查元器件和连接;

(2)进行元器件焊接;

(3)对电路板进行调试。

(4)观察结果并达到设计要求。

3.工作计划(进程安排)

序号

设计内容

所用时间

1

布置任务及调研

3天

3

制作与调试

7天

4

撰写设计报告书

4天

合计

14天

4.主要参考资料

《MCS-51单片机原理接口及应用》王质朴北京理工大学出版社

《单片机课程设计指导》皮大能北京理工大学出版社

系主任审批意见:

审批人签名:

日期:

目录

目录2

一、设计任务与要求3

1、设计任务:

简易数字电压表的设计3

2、设计要求:

1)0—5V电压3

二、硬件硬件框图与说明(元件选择依据即功能说明)3

芯片介绍4

1)8051芯片4

8051单片机简介4

引脚及其功能5

2)ADC0809芯片介绍6

ADC0809芯片简介7

ADC0809的主要特性7

ADC0809的引脚功能7

3)8279芯片介绍8

8279功能介绍9

三、电路原理与说明10

四、软件设计主要模块流程图,源程序清单与注10

设计流程图11

源程序清单与解释12

五、小结20

一、设计任务与要求

1、设计任务:

简易数字电压表的设计

2、设计要求:

1)0—5V电压

2)8路输入电压

3)4位LED或LCD显示

4)结果按十进制显示,芯片自选。

二、硬件硬件框图与说明(元件选择依据即功能说明)

根据8051单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。

该系统以8051和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过三位数码管显示同时用一位数码管显示选择通道。

整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。

单片机8051是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。

正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8051的功能和应用,ADC0809的功能和应用等。

芯片介绍

1)8051芯片

8051是在8031的基础上,片内集成有4KROM,作为程序存储器,是一个程序不超过4K字节的小系统。

ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。

所以8051适合与应用在程序已定,且批量大的单片机产品中。

8051单片机简介

8051单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。

如果按功能划分,它由如下功能部件组成,即中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时种电路,其基本结构依旧是CPU加上外围芯片的传统结构模式。

但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

8051单片机的硬件结构具有功能部件种类全,功能强等特点。

特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。

1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。

MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。

引脚及其功能

 

MCS—51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。

下面按引脚功能分为4个部分叙述个引脚的功能。

A.电源引脚Vcc和Vss

B.外接晶振引脚XTAL1和XTAL2

C.控制信号或与其它电源复用引脚

D.控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

输入/输出(I/O)引脚P口

P0(39脚~22脚),P0.0~P0.7统称为P0口。

当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。

当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。

提供8位双向数据总线。

对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。

P1口(1脚~8脚),P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。

对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:

P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。

对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。

P2口(21脚~28脚),P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。

当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。

对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。

P3口(10脚~17脚),P3.0~P3.7统称为P3口。

它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。

P3口的第2功能见下表

表单片机P3.0管脚含义

引脚

第2功能

P3.0

RXD(串行口输入端0)

P3.1

TXD(串行口输出端)

P3.2

INT0(部中断0请求输入端,低电平有效)

P3.3

INT1(中断1请求输入端,低电平有效)

P3.4

T0(时器/计数器0计数脉冲端)

P3.5

T1(时器/计数器1数脉冲端)

P3.6

WR(部数据存储器写选通信号输出端,低电平有效)

P3.7

RD(部数据存储器读选通信号输出端,低电平有效)

综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:

1、单片机功能多,引脚数少,因而许多引脚具有第2功能;

2、单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。

2)ADC0809芯片介绍

ADC0809芯片简介

ADC0809是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。

目前在8位单片机系统中有着广泛的使用。

ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。

 

ADC0809的主要特性

A、8路8位A/D转换器,即分辨率8位。

B、具有转换起停控制端。

C、转换时间为100μs。

D、单个+5V电源供电。

E、模拟输入电压范围0~+5V,不需零点和满刻度校准。

F、工作温度范围为-40~+85摄氏度。

G、低功耗,约15mW。

ADC0809的引脚功能

ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。

A、IN0~IN7:

8路模拟量输入端。

B、2-1~2-8:

8位数字量输出端。

C、ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路

D、ALE:

地址锁存允许信号,输入,高电平有效。

E、START:

A/D转换启动信号,输入,高电平有效。

F、EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

G、OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

H、CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

I、REF(+)、REF(-):

基准电压。

J、Vcc:

电源,单一+5V,GND:

地。

ADC0809的工作过程是:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

表1.2通道选择表

C

B

A

选择的通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

3)8279芯片介绍

8279芯片在电压表中的功能是驱动LED管显示经单片机数据处理后的十进制电压值。

8279功能介绍

8279是可编程的键盘、显示接口芯片。

它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。

8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。

该芯片能自动消抖并具有双键锁定保护功能。

显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。

(1)数据线

DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令。

(2)地址线

/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片内数据地址,故8279芯片占用2个端口地址。

(3)控制线

CLK:

8279的时钟输入线。

IRQ:

中断请求输出线,高电平有效。

/RD、/WR:

读、写输入控制线。

SL0---SL3:

扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。

RL0---RL7:

回复输入线,它们是键盘或传感器矩阵的信号输入线。

SHIFT:

来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。

在传感器方式和选通方式中,该引脚无用。

CNTL/S:

控制/选通输入线,高电平有效。

键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0---RL7的数据存入FIFORAM中。

OUTA0---OUTA3:

通常作为显示信号的高4位输出线。

OUTB0---OUTB3:

通常作为显示信号的低4位输出线。

/BD:

显示熄灭输出线,低电平有效。

当/BD=0时将显示全熄灭。

三、电路原理与说明

四、软件设计主要模块流程图,源程序清单与注

设计流程图

源程序清单与解释

A_DPORTEQU8000H;0809通道0地址

Z8279EQU08701H;8279状态/命令口地址

D8279EQU08700H;8279数据口地址

LEDMODEQU00H;左边输入八位字符显示

;外部译码键扫描方式,双键互锁

LEDFEQEQU2FH;扫描速率

LEDCLSEQU0C1H;清除显示RAM

LEDWR0EQU80H;设定的将要写入的显示RAM地址

READKBEQU40H;读FIFORAM地址0的命令字

S1EQU78H

S2EQU79H

S3EQU7AH

S4EQU7BH

TDEQU7CH

FLAGEQU7DH

ORG0000H

LJMPMAIN

ORG0003H

LJMPINT_0

ORG0013H

LJMPINT_1

ORG0040H

;***************************************************************************************

MAIN:

MOVSP,#60H

MOVR0,#70H

CLRTD

CLRFLAG

SETBIT1

SETBEX1

SETBEA

LP0:

MOVDPTR,#A_DPORT

LCALLINIT8279

LCALLTEST

LCALLDISPLAY

LJMPLP0

NOP

NOP

NOP

LJMPMAIN

;****************************************************************************************

INT_1:

CLREA

CLREX1

PUSHACC

MOVA,FLAG

CPLA

MOVFLAG,A

SETBEA

SETBEX1

POPACC

RETI

;***********************数据采集***********要求R0=#70H****MOVA,R1********CPLA*********

TEST:

PUSH3

MOVR3,#8

MOVR7,#0FFH;初始化

SETBIT0

SETBEA

SETBEX0;INT0允许

MOVDPTR,#A_DPORT

A_D:

MOVX@DPTR,A;启动A_D

NOP

NOP

CJNER7,#00H,$;等待A_D转换结束

MOV@R0,A;数据输出

INCR0

MOVR7,#0FFH;清读数标志

DJNZR3,A_D

MOVR0,#70H

POP3

RET

;******************************************************

INT_0:

CLREA

CLREX0

MOVXA,@DPTR;读A_D数据

NOP

NOP

MOVR7,#00H;置读数标志

INCDPTR

SETBEA

SETBEX0

RETI

;************************************************************************

INIT8279:

;8279初始化子程序

PUSHDPH;保存现场

PUSHDPL

PUSHACC

LCALLDELAY;延时

MOVDPTR,#Z8279

MOVA,#LEDMOD;置8279工作方式

MOVX@DPTR,A

MOVA,#LEDFEQ;置键盘扫描速率

MOVX@DPTR,A

MOVA,#LEDCLS;清除LED显示

MOVX@DPTR,A

POPACC;恢复现场

POPDPL

POPDPH

RET

DELAY:

;延时子程序

PUSH0;保存现场

PUSH1

MOV0,#0H

DELAY1:

MOV1,#0H

DJNZ1,$

DJNZ0,DELAY1

POP1;恢复现场

POP0

RET

;*******************************************************

;显示字符子程序

;输入:

R4,位置R5,值

DISLED:

PUSHDPH;保存现场

PUSHDPL

PUSHACC

MOVA,#LEDWR0;置显示起始地址

ADDA,R4;加位置偏移量

MOVDPTR,#Z8279

MOVX@DPTR,A;设定显示位置

MOVDPTR,#LEDSEG;置显示常数表起始位置

MOVA,R5

MOVCA,@A+DPTR;查表

MOVDPTR,#D8279

MOVX@DPTR,A;显示数据

POPACC;恢复现场

POPDPL

POPDPH

RET

;********************************************************************

DISPLAY:

MOVA,FLAG

CJNEA,#0FFH,DISP1

DISP2:

MOVR0,#70H

CLRTD

PUSH3

MOVR3,#8

LP2:

MOVA,R0

ADDA,TD

MOVR0,A

LCALLZCBCD

MOVA,S1

ADDA,#16

MOVR5,A

MOVR4,#07

LCALLDISLED

MOVR5,S2

MOVR4,#06

LCALLDISLED

MOVR5,S3

MOVR4,#5

LCALLDISLED

MOVR5,S4

MOVR4,#4

LCALLDISLED

MOVR5,TD

MOVR4,#1

LCALLDISLED

MOVA,TD

INCA

ANLA,#07

MOVTD,A

LCALLDELAY11

DJNZR3,LP2

CLRTD

POP3

MOVR0,#70H

RET

DELAY11:

PUSH5

PUSH6

PUSH7

MOVR5,#200

B2:

MOVR6,#20

B3:

MOVR7,#248

DJNZR7,$

DJNZR6,B3

DJNZR5,B2

POP7

POP6

POP5

RET

;*******************************

DISP1:

PUSH3

MOVR3,#10

MOVR0,#70H

LP1:

LCALLGETKEY

CJNEA,#0FFH,CONT

MOVA,B

CJNEA,#30H,CONT

LCALLCLEAR_T

CONT:

MOVA,R0

ADDA,TD

MOVR0,A

LCALLZCBCD

MOVA,S1

ADDA,#16

MOVR5,A

MOVR4,#07

LCALLDISLED

MOVR5,S2

MOVR4,#06

LCALLDISLED

MOVR5,S3

MOVR4,#5

LCALLDISLED

MOVR5,S4

MOVR4,#4

LCALLDISLED

MOVR5,TD

MOVR4,#1

LCALLDISLED

LCALLDELAY10

DJNZR3,LP1

POP3

MOVR0,#70H

RET

DELAY10:

PUSH5

PUSH6

PUSH7

MOVR5,#5

D2:

MOVR6,#20

D3:

MOVR7,#248

DJNZR7,$

DJNZR6,D3

DJNZR5,D2

POP7

POP6

POP5

RET

;**************************************************************

CLEAR_T:

PUSHACC

MOVA,TD

INCA

ANLA,#07

MOVTD,A

MOVR3,#10

POPACC

RET

;************************************************************

ZCBCD:

MOVA,@R0

MOVB,#51

DIVAB

MOVS1,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOVS2,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5

LOOP3:

MOVS3,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP4

ADDA,#5

LOOP4:

MOVS4,A

RET

;*********************************************************

;读取键盘子程序

;输入:

无;输出:

B:

读到的键码A:

按键的标志

GETKEY:

PUSHDPH;保存现场

PUSHDPL

PUSHPSW

MOVDPTR,#Z8279

MOVXA,@DPTR;读8279状态

ANLA,#07H;屏蔽D7-D3

JNZGETVAL;判断是否有键输入

MOVA,#0H;置标志(无键输入)

SJMPNKBHIT

GETVAL:

MOVA,#READKB;读FIFORAM命令

MOVX@DPTR,A

MOVDPTR,#D8279

MOVXA,@DPTR;读键

ANLA,#3FH;屏蔽SHIFT和CTRL键

MOVDPTR,#KEYCODE;键码表起始地址

MOVCA,@A+DPTR;查表

MOVB,A;置返回键值

MOVA,#0FFH;置标志(有键输入)

NKBHIT:

POPPSW;恢复现场

POPDPL

POPDPH

RET

;*********************************************************

;LE

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

当前位置:首页 > 高等教育 > 哲学

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

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