简易数字电压表单片机课程设计_第1页
简易数字电压表单片机课程设计_第2页
简易数字电压表单片机课程设计_第3页
简易数字电压表单片机课程设计_第4页
简易数字电压表单片机课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 、设计任务和要求1、设计任务:简易数字电压表的设计2、设计要求:1)05V电压 2)8路输入电压 3)4位LED或LCD显示 4)结果按十进制显示,芯片自选。二、 硬件硬件框图和说明(元件选择依据即功能说明)根据MUC-8088/8086H单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。该系统以8088/8086和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过四位数码管。整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。单片机8088/8086是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8088/8086的功能和使用,ADC0809的功能和使用等。芯片介绍1)8051芯片 8051是在8031的基础上,片内集成有4K ROM,作为程序存储器,是一个程序不超过4K字节的小系统。ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。所以8051适合和使用在程序已定,且批量大的单片机产品中。 8051单片机简介8051单片机是把那些作为控制使用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上2。如果按功能划分,它由如下功能部件组成,即中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口、中断系统和时种电路,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。8051单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。 引脚及其功能MCS51系列单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或和其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。A. 电源引脚Vcc和VssB.外接晶振引脚XTAL1和XTAL2C.控制信号或和其它电源复用引脚D.控制信号或和其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。输入/输出(I/O)引脚P口P0(39脚22脚),P0.0P0.7统称为P0口。当不接外部存储器和不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。P1口(1脚8脚),P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。P2口(21脚28脚),P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。P3口(10脚17脚),P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表表 单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效)综上所述,MCS51系列单片机的引脚作用可归纳为以下两点: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位AD转换器,即分辨率8位。 B、具有转换起停控制端。 C、转换时间为100s。D、单个5V电源供电。E、模拟输入电压范围05V,不需零点和满刻度校准。 F、工作温度范围为-4085摄氏度。 G、低功耗,约15mW。ADC0809的引脚功能ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。 A、IN0IN7:8路模拟量输入端。B、2-12-8:8位数字量输出端。C、ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路D、ALE:地址锁存允许信号,输入,高电平有效。 E、START: AD转换启动信号,输入,高电平有效。 F、EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 G、OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。H、CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。I、REF(+)、REF(-):基准电压。 J、Vcc:电源,单一5V,GND:地。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。表1.2 通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN73)8279芯片介绍8279芯片在电压表中的功能是驱动LED管显示经单片机数据处理后的十进制电压值。 8279功能介绍 8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中使用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。 (1)数据线 DB0DB7是双向三态数据总线,在接口电路中和系统数据总线相连,用以传送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的数据存入FIFO RAM中。 OUTA0-OUTA3:通常作为显示信号的高4位输出线。 OUTB0-OUTB3:通常作为显示信号的低4位输出线。 /BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。 三、电路原理和说明四、软件设计主要模块流程图,源程序清单和注释设计流程图 源程序清单和解释A_DPORT EQU 8000H ;0809通道0地址Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字S1 EQU 78HS2 EQU 79HS3 EQU 7AHS4 EQU 7BHTD EQU 7CHFLAG EQU 7DH ORG 0000H LJMP MAIN ORG 0003H LJMP INT_0 ORG 0013H LJMP INT_1 ORG 0040H;*MAIN: MOV SP,#60H MOV R0,#70H CLR TD CLR FLAG SETB IT1 SETB EX1 SETB EALP0: MOV DPTR,#A_DPORT LCALL INIT8279 LCALL TEST LCALL DISPLAY LJMP LP0 NOP NOP NOP LJMP MAIN;*INT_1: CLR EA CLR EX1 PUSH ACC MOV A,FLAG CPL A MOV FLAG,A SETB EA SETB EX1 POP ACC RETI;*数据采集*要求R0=#70H*MOV A,R1*CPL A*TEST: PUSH 3 MOV R3,#8 MOV R7,#0FFH ;初始化 SETB IT0 SETB EA SETB EX0 ;INT0 允许 MOV DPTR,#A_DPORTA_D: MOVX DPTR,A ;启动 A_D NOP NOP CJNE R7,#00H,$ ;等待 A_D 转换结束 MOV R0,A ;数据输出 INC R0 MOV R7,#0FFH ;清读数标志 DJNZ R3,A_D MOV R0,#70H POP 3 RET;*INT_0: CLR EA CLR EX0 MOVX A,DPTR ;读 A_D 数据 NOP NOP MOV R7,#00H ;置读数标志 INC DPTR SETB EA SETB EX0 RETI ;* INIT8279: ;8279初始化子程序 PUSH DPH ;保存现场 PUSH DPL PUSH ACC LCALL DELAY ;延时 MOV DPTR ,#Z8279 MOV A,#LEDMOD ;置8279工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置键盘扫描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除 LED 显示 MOVX DPTR,A POP ACC ;恢复现场 POP DPL POP DPH RETDELAY: ;延时子程序 PUSH 0 ;保存现场 PUSH 1 MOV 0,#0HDELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1 POP 1 ;恢复现场 POP 0 RET ;* ;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8279 MOVX DPTR,A ;设定显示位置 MOV DPTR,#LEDSEG ;置显示常数表起始位置 MOV A,R5 MOVC A,A+DPTR ;查表 MOV DPTR,#D8279 MOVX DPTR,A ;显示数据 POP ACC ;恢复现场 POP DPL POP DPH RET;*DISPLAY: MOV A,FLAG CJNE A,#0FFH,DISP1DISP2: MOV R0,#70H CLR TD PUSH 3 MOV R3,#8LP2: MOV A,R0 ADD A,TD MOV R0,A LCALL ZCBCD MOV A,S1 ADD A,#16 MOV R5,A MOV R4,#07 LCALL DISLED MOV R5,S2 MOV R4,#06 LCALL DISLED MOV R5,S3 MOV R4,#5 LCALL DISLED MOV R5,S4 MOV R4,#4 LCALL DISLED MOV R5,TD MOV R4,#1 LCALL DISLED MOV A,TD INC A ANL A,#07 MOV TD,A LCALL DELAY11 DJNZ R3,LP2 CLR TD POP 3 MOV R0,#70H RETDELAY11: PUSH 5 PUSH 6 PUSH 7 MOV R5,#200B2: MOV R6,#20B3: MOV R7,#248 DJNZ R7,$ DJNZ R6,B3 DJNZ R5,B2 POP 7 POP 6 POP 5 RET;* DISP1: PUSH 3 MOV R3,#10 MOV R0,#70HLP1: LCALL GETKEY CJNE A,#0FFH,CONT MOV A,B CJNE A,#30H,CONT LCALL CLEAR_TCONT: MOV A,R0 ADD A,TD MOV R0,A LCALL ZCBCD MOV A,S1 ADD A,#16 MOV R5,A MOV R4,#07 LCALL DISLED MOV R5,S2 MOV R4,#06 LCALL DISLED MOV R5,S3 MOV R4,#5 LCALL DISLED MOV R5,S4 MOV R4,#4 LCALL DISLED MOV R5,TD MOV R4,#1 LCALL DISLED LCALL DELAY10 DJNZ R3,LP1 POP 3 MOV R0,#70H RETDELAY10: PUSH 5 PUSH 6 PUSH 7 MOV R5,#5D2: MOV R6,#20D3: MOV R7,#248 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 POP 7 POP 6 POP 5 RET;*CLEAR_T: PUSH ACC MOV A,TD INC A ANL A,#07 MOV TD,A MOV R3,#10 POP ACC RET;*ZCBCD: MOV A,R0 MOV B,#51 DIV AB MOV S1,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5LOOP2: MOV S2,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP3 ADD A,#5LOOP3: MOV S3,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP4 ADD A,#5LOOP4: MOV S4,A RET;*;读取键盘子程序;输入: 无 ; 输出: B: 读到的键码 A: 按键的标志GETKEY: PUSH DPH ;保存现场 PUSH DPL PUSH PSW MOV DPTR,#Z8279 MOVX A,DPTR ;读8279状态 ANL A,#07H ;屏蔽D7-D3 JNZ GETVAL ;判断是否有键输入 MOV A,#0H ;置标志(无键输入) SJMP NKBHITGETVAL: MOV A,#READKB ;读 FIFO RAM 命令 MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论