简易数字电压表单片机课程设计Word格式.docx

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

简易数字电压表单片机课程设计Word格式.docx

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

简易数字电压表单片机课程设计Word格式.docx

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

选择的通道

IN0

1

IN1

IN2

IN3

IN4

IN5

IN6

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

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

SETBEX0;

INT0允许

A_D:

MOVX@DPTR,A;

启动A_D

NOP

CJNER7,#00H,$;

等待A_D转换结束

MOV@R0,A;

数据输出

INCR0

清读数标志

DJNZR3,A_D

MOVR0,#70H

POP3

RET

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

INT_0:

CLREX0

MOVXA,@DPTR;

读A_D数据

MOVR7,#00H;

置读数标志

INCDPTR

SETBEX0

RETI

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

INIT8279:

8279初始化子程序

PUSHDPH;

保存现场

PUSHDPL

LCALLDELAY;

延时

MOVDPTR,#Z8279

MOVA,#LEDMOD;

置8279工作方式

MOVX@DPTR,A

MOVA,#LEDFEQ;

置键盘扫描速率

MOVA,#LEDCLS;

清除LED显示

POPACC;

恢复现场

POPDPL

POPDPH

DELAY:

延时子程序

PUSH0;

PUSH1

MOV0,#0H

DELAY1:

MOV1,#0H

DJNZ1,$

DJNZ0,DELAY1

POP1;

POP0

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

显示字符子程序

输入:

R4,位置R5,值

DISLED:

MOVA,#LEDWR0;

置显示起始地址

ADDA,R4;

加位置偏移量

MOVDPTR,#Z8279

设定显示位置

MOVDPTR,#LEDSEG;

置显示常数表起始位置

MOVA,R5

MOVCA,@A+DPTR;

查表

MOVDPTR,#D8279

显示数据

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

DISPLAY:

CJNEA,#0FFH,DISP1

DISP2:

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

MOVR5,S3

MOVR4,#5

MOVR5,S4

MOVR4,#4

LCALLDISLED

MOVR5,TD

MOVR4,#1

LCALLDISLED

MOVA,TD

INCA

ANLA,#07

MOVTD,A

LCALLDELAY11

DJNZR3,LP2

POP3

DELAY11:

PUSH5

PUSH6

PUSH7

MOVR5,#200

B2:

MOVR6,#20

B3:

MOVR7,#248

DJNZR7,$

DJNZR6,B3

DJNZR5,B2

POP7

POP6

POP5

RET

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

DISP1:

MOVR3,#10

LP1:

LCALLGETKEY

CJNEA,#0FFH,CONT

MOVA,B

CJNEA,#30H,CONT

LCALLCLEAR_T

CONT:

LCALLDELAY10

DJNZR3,LP1

DELAY10:

MOVR5,#5

D2:

D3:

DJNZR6,D3

DJNZR5,D2

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

CLEAR_T:

MOVA,TD

ANLA,#07

MOVR3,#10

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

ZCBCD:

MOVA,@R0

MOVB,#51

DIVAB

MOVS1,A

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOVS2,A

JBF0,LOOP3

LOOP3:

MOVS3,A

JBF0,LOOP4

LOOP4:

MOVS4,A

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

读取键盘子程序

无;

输出:

B:

读到的键码A:

按键的标志

GETKEY:

PUSHPSW

读8279状态

ANLA,#07H;

屏蔽D7-D3

JNZGETVAL;

判断是否有键输入

MOVA,#0H;

置标志(无键输入)

SJMPNKBHIT

GETVAL:

MOVA,#READKB;

读FIFORAM命令

读键

ANLA,#3FH;

屏蔽SHIFT和CTRL键

MOVDPTR,#KEYCODE;

键码表起始地址

MOVB,A;

置返回键值

MOVA,#0FFH;

置标志(有键输入)

NKBHIT:

POPPSW;

LED显示常数表

LEDSEG:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;

'

0,1,2,3,4,5,6,7'

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;

8,9,A,B,C,D,E,F'

DB0BFH,86H,0DBH,0CFH,0E6H,0EDH;

0,1,2,3,4,5,

键盘键码表

KEYCODE:

DB30H,31H,32H,33H,34H,35H,36H,37H;

DB38H,39H,3AH,3BH,3CH,3DH,3EH,3FH;

END

五、小结

此次简易数字电压表的设计可准确得测得0—5V的电压值,通过5个LED数码管显示测得的电压值和所测的电压通道。

主要有用到8051单片机、8279芯片、ADC0809芯片、LED数码管等元器件,通过8051单片机对各芯片的控制实现电压的测量。

本次课程设计的主要任务有:

对硬件的设计及其原理图的绘制、软件的设计、系统的调试。

在这两个星期的时间里很好得完成了任务,虽然说在这期间遇到不少问题,但在全组人员的努力和老师的指导下很快地将问题解决。

通过这次的简易数字电压表的课程设计,加深看我对单片机这门学科的认识,提高了我对单片机的兴趣,明白了单片机在工业控制很其他领域的重要作用。

锻炼了我的动手和自学能力。

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

当前位置:首页 > 工程科技 > 能源化工

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

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